/*
* Copyright (C) 2009 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.harmony.xnet.provider.jsse;
import junit.framework.TestCase;
import javax.net.ssl.SSLSession;
import java.util.Enumeration;
import java.util.Set;
import java.util.HashSet;
public class ClientSessionContextTest extends TestCase {
public void testGetSessionById() {
ClientSessionContext context = new ClientSessionContext(null, null);
SSLSession a = new FakeSession("a");
SSLSession b = new FakeSession("b");
context.putSession(a);
context.putSession(b);
assertSame(a, context.getSession("a".getBytes()));
assertSame(b, context.getSession("b".getBytes()));
assertSame(a, context.getSession("a", 443));
assertSame(b, context.getSession("b", 443));
assertEquals(2, context.sessions.size());
Set<SSLSession> sessions = new HashSet<SSLSession>();
Enumeration ids = context.getIds();
while (ids.hasMoreElements()) {
sessions.add(context.getSession((byte[]) ids.nextElement()));
}
Set<SSLSession> expected = new HashSet<SSLSession>();
expected.add(a);
expected.add(b);
assertEquals(expected, sessions);
}
public void testTrimToSize() {
ClientSessionContext context = new ClientSessionContext(null, null);
FakeSession a = new FakeSession("a");
FakeSession b = new FakeSession("b");
FakeSession c = new FakeSession("c");
FakeSession d = new FakeSession("d");
context.putSession(a);
context.putSession(b);
context.putSession(c);
context.putSession(d);
context.setSessionCacheSize(2);
Set<SSLSession> sessions = new HashSet<SSLSession>();
Enumeration ids = context.getIds();
while (ids.hasMoreElements()) {
sessions.add(context.getSession((byte[]) ids.nextElement()));
}
Set<SSLSession> expected = new HashSet<SSLSession>();
expected.add(c);
expected.add(d);
assertEquals(expected, sessions);
}
}
|