/* ==================================================================
* 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.sso.online.database;
import java.util.Collection;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import com.jinhe.tss.component.TxTestSupport;
import com.jinhe.tss.core.sso.online.IOnlineUserManager;
import com.jinhe.tss.core.sso.online.OnlineUser;
//本core模块中的功能由于需要数据库支持,故搬至Component里测试
public class DBOnlineUserManagerTest extends TxTestSupport {
@Autowired IOnlineUserManager manager;
public final void testDBOnlineUserManager() {
Collection<String> onlineUserNames = manager.getOnlineUserNames();
for(String name : onlineUserNames) {
log.debug(name);
}
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());
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")));
assertTrue(manager.getOnlineUsersByToken("notToken").isEmpty());
// 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());
}
}