/* ==================================================================
* Created [2009-4-27 下午11:32:55] by Jon.King
* ==================================================================
* TSS
* ==================================================================
* mailTo:jinpujun@hotmail.com
* Copyright (c) Jon.King, 2009-2012
* ==================================================================
*/
package com.jinhe.tss.core.sso.online.cache;
import java.util.Collection;
import java.util.Set;
import org.apache.log4j.Logger;
import com.jinhe.tss.core.sso.online.OnlineUser;
import junit.framework.TestCase;
/**
* <p> CacheOnlineUserManagerTest.java </p>
* <p>
* 内存管理方式在线用户管理系统
* </p>
*/
public class CacheOnlineUserManagerTest extends TestCase {
protected Logger log = Logger.getLogger(this.getClass());
private CacheOnlineUserManager manager;
protected void setUp() throws Exception {
super.setUp();
manager = new CacheOnlineUserManager();
}
protected void tearDown() throws Exception {
super.tearDown();
manager = null;
}
public final void testDBOnlineUserManager() {
manager.register("token", "TSS", "sessionId", new Long(1), "Jon.King");
manager.register("token", "TSS1", "sessionId1", new Long(1), "Jon.King");
manager.register("token", "TSS2", "sessionId2", new Long(2), "Jon.King2");
manager.register("token3", "TSS", "sessionId3", new Long(3), "Jon.King3");
Set<OnlineUser> userSet = manager.getOnlineUsersByToken("token");
assertNotNull(userSet);
assertEquals(3, userSet.size());
Collection<String> onlineUserNames = manager.getOnlineUserNames();
for(String name : onlineUserNames) {
log.debug(name);
}
// testGetAllOnlineInfos4Token
Set<OnlineUser> userInfos = manager.getOnlineUsersByToken("token");
assertEquals(3, userInfos.size());
assertTrue(userInfos.contains(new OnlineUser(new Long(1), "TSS", "sessionId", "token")));
assertTrue(userInfos.contains(new OnlineUser(new Long(2), "TSS2", "sessionId2", "token")));
assertTrue(userInfos.contains(new OnlineUser(new Long(1), "TSS1", "sessionId1", "token")));
assertNull(manager.getOnlineUsersByToken("notToken"));
// testIsOnline
assertTrue(manager.isOnline("token"));
assertFalse(manager.isOnline("NotLoginToken"));
// testDelete
assertEquals(3, manager.getOnlineUsersByToken("token").size());
manager.logout("TSS1", "sessionId1");
assertEquals(2, manager.getOnlineUsersByToken("token").size());
manager.logout("TSS", "sessionId3");
assertEquals(2, manager.getOnlineUsersByToken("token").size());
}
}