package com.github.ebnew.ki4so.core.authentication.status; import java.util.Date; import java.util.List; import junit.framework.Assert; import org.junit.After; import org.junit.Before; import org.junit.Test; public class DefaultUserLoggedStatusStoreTest { private DefaultUserLoggedStatusStore defaultUserLoggedStatusStore; @Before public void setUp() throws Exception { defaultUserLoggedStatusStore = new DefaultUserLoggedStatusStore(); } @After public void tearDown() throws Exception { defaultUserLoggedStatusStore = null; } @Test public void testAddUserLoggedStatus() { //测试加入空对象的情况。 defaultUserLoggedStatusStore.addUserLoggedStatus(null); //校验结果。 //没有数据。 Assert.assertEquals(0, defaultUserLoggedStatusStore.getLoggedStatus().size()); //没有数据。 Assert.assertEquals(0, defaultUserLoggedStatusStore.getUserIdIndexMap().size()); //测试加入对象中有不合法的属性值的情况。 String userId= "test"; UserLoggedStatus userLoggedStatus = new UserLoggedStatus(userId, ""); defaultUserLoggedStatusStore.addUserLoggedStatus(userLoggedStatus); //校验结果。 //没有数据。 Assert.assertEquals(0, defaultUserLoggedStatusStore.getLoggedStatus().size()); //没有数据。 Assert.assertEquals(0, defaultUserLoggedStatusStore.getUserIdIndexMap().size()); userLoggedStatus = new UserLoggedStatus("", ""); defaultUserLoggedStatusStore.addUserLoggedStatus(userLoggedStatus); //校验结果。 //没有数据。 Assert.assertEquals(0, defaultUserLoggedStatusStore.getLoggedStatus().size()); //没有数据。 Assert.assertEquals(0, defaultUserLoggedStatusStore.getUserIdIndexMap().size()); //测试正常数据的情况。 String appId = "1001"; userLoggedStatus = new UserLoggedStatus(userId, appId); defaultUserLoggedStatusStore.addUserLoggedStatus(userLoggedStatus); //校验结果。 //有数据。 Assert.assertEquals(1, defaultUserLoggedStatusStore.getLoggedStatus().size()); //有数据。 Assert.assertEquals(1, defaultUserLoggedStatusStore.getUserIdIndexMap().size()); Assert.assertEquals(userId, defaultUserLoggedStatusStore.findUserLoggedStatus(userId).get(0).getUserId()); } @Test public void testDeleteUserLoggedStatus() { String userId= "test"; String appId = "1001"; //测试删除异常数据。 defaultUserLoggedStatusStore.deleteUserLoggedStatus("", ""); //测试删除异常数据。 defaultUserLoggedStatusStore.deleteUserLoggedStatus(userId, ""); //测试正常数据。 defaultUserLoggedStatusStore.deleteUserLoggedStatus(userId, appId); } @Test public void testClearUpUserLoggedStatus() { String userId= "test"; //测试清楚异常数据情况。 defaultUserLoggedStatusStore.clearUpUserLoggedStatus(null); defaultUserLoggedStatusStore.clearUpUserLoggedStatus(""); //测试正常数据。 defaultUserLoggedStatusStore.clearUpUserLoggedStatus(userId); Assert.assertEquals(0, defaultUserLoggedStatusStore.getLoggedStatus().size()); //没有数据。 Assert.assertEquals(0, defaultUserLoggedStatusStore.getUserIdIndexMap().size()); } @Test public void testFindUserLoggedStatus() { String userId= "test"; //测试查询异常数据情况。 Assert.assertNull(defaultUserLoggedStatusStore.findUserLoggedStatus(null)); Assert.assertNull(defaultUserLoggedStatusStore.findUserLoggedStatus("")); Assert.assertNull(defaultUserLoggedStatusStore.findUserLoggedStatus(userId)); } /** * 将相关的CRUD方法集成起来测试。只测试正常情况。 */ @Test public void testAll(){ DefaultUserLoggedStatusStore userLoggedStatusStore = new DefaultUserLoggedStatusStore(); //添加3条数据。 userLoggedStatusStore.addUserLoggedStatus(new UserLoggedStatus("test1", "1000", new Date())); userLoggedStatusStore.addUserLoggedStatus(new UserLoggedStatus("test1", "1001", new Date())); userLoggedStatusStore.addUserLoggedStatus(new UserLoggedStatus("test2", "1000", new Date())); //查询其中一个用户。 List<UserLoggedStatus> list = userLoggedStatusStore.findUserLoggedStatus("test1"); Assert.assertEquals(2, list.size()); Assert.assertEquals("1000", list.get(0).getAppId()); Assert.assertEquals("1001", list.get(1).getAppId()); //删除一条数据。 userLoggedStatusStore.deleteUserLoggedStatus("test1", "1001"); list = userLoggedStatusStore.findUserLoggedStatus("test1"); Assert.assertEquals(1, list.size()); Assert.assertEquals("1000", list.get(0).getAppId()); //清空数据。 userLoggedStatusStore.clearUpUserLoggedStatus("test1"); list = userLoggedStatusStore.findUserLoggedStatus("test1"); Assert.assertNull(list); userLoggedStatusStore.clearUpUserLoggedStatus("test2"); list = userLoggedStatusStore.findUserLoggedStatus("test2"); Assert.assertNull(list); } }