mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-09-23 04:23:36 +08:00
完善 SaSession 模块相关单元测试
This commit is contained in:
@@ -86,6 +86,8 @@ public class SaTokenConfigTest {
|
||||
SaCookieConfig scc = new SaCookieConfig();
|
||||
config.setCookie(scc);
|
||||
Assertions.assertEquals(config.getCookie(), scc);
|
||||
|
||||
config.toString();
|
||||
}
|
||||
|
||||
// 从文件读取
|
||||
|
@@ -0,0 +1,52 @@
|
||||
package cn.dev33.satoken.core.session;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import cn.dev33.satoken.SaManager;
|
||||
import cn.dev33.satoken.dao.SaTokenDao;
|
||||
import cn.dev33.satoken.session.SaSession;
|
||||
import cn.dev33.satoken.session.SaSessionCustomUtil;
|
||||
|
||||
/**
|
||||
* SaSession 测试
|
||||
*
|
||||
* @author kong
|
||||
* @since: 2022-2-9
|
||||
*/
|
||||
public class SaSessionCustomUtilTest {
|
||||
|
||||
// 测试自定义Session
|
||||
@Test
|
||||
public void testCustomSession() {
|
||||
SaTokenDao dao = SaManager.getSaTokenDao();
|
||||
|
||||
// 刚开始不存在
|
||||
Assertions.assertFalse(SaSessionCustomUtil.isExists("art-1"));
|
||||
SaSession session = dao.getSession("satoken:custom:session:" + "art-1");
|
||||
Assertions.assertNull(session);
|
||||
|
||||
// 调用一下
|
||||
SaSessionCustomUtil.getSessionById("art-1");
|
||||
SaSessionCustomUtil.getSessionById("art-1", false);
|
||||
|
||||
// 就存在了
|
||||
Assertions.assertTrue(SaSessionCustomUtil.isExists("art-1"));
|
||||
SaSession session2 = dao.getSession("satoken:custom:session:" + "art-1");
|
||||
Assertions.assertNotNull(session2);
|
||||
|
||||
// 给删除掉
|
||||
SaSessionCustomUtil.deleteSessionById("art-1");
|
||||
|
||||
// 就又不存在了
|
||||
Assertions.assertFalse(SaSessionCustomUtil.isExists("art-1"));
|
||||
SaSession session3 = dao.getSession("satoken:custom:session:" + "art-1");
|
||||
Assertions.assertNull(session3);
|
||||
|
||||
// 调用了也不会存在
|
||||
SaSessionCustomUtil.getSessionById("art-4", false);
|
||||
SaSession session4 = dao.getSession("satoken:custom:session:" + "art-2");
|
||||
Assertions.assertNull(session4);
|
||||
}
|
||||
|
||||
}
|
@@ -1,9 +1,16 @@
|
||||
package cn.dev33.satoken.core.session;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
import org.junit.jupiter.api.Assertions;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import cn.dev33.satoken.SaManager;
|
||||
import cn.dev33.satoken.session.SaSession;
|
||||
import cn.dev33.satoken.session.TokenSign;
|
||||
|
||||
/**
|
||||
* SaSession 测试
|
||||
@@ -13,12 +20,27 @@ import cn.dev33.satoken.session.SaSession;
|
||||
*/
|
||||
public class SaSessionTest {
|
||||
|
||||
// 基础属性
|
||||
@Test
|
||||
public void test() {
|
||||
public void testProp() {
|
||||
SaSession session = new SaSession("session-1001");
|
||||
Assertions.assertEquals(session.getId(), "session-1001");
|
||||
|
||||
// 属性读取
|
||||
session = new SaSession();
|
||||
session.setId("session-1009");
|
||||
Assertions.assertEquals(session.getId(), "session-1009");
|
||||
|
||||
session.setCreateTime(1662241013902L);
|
||||
Assertions.assertEquals(session.getCreateTime(), 1662241013902L);
|
||||
}
|
||||
|
||||
// 基础存取值
|
||||
@Test
|
||||
public void testSetGet() {
|
||||
|
||||
// 基础取值
|
||||
SaSession session = new SaSession("session-1002");
|
||||
session.set("name", "zhangsan");
|
||||
session.set("age", 18);
|
||||
Assertions.assertEquals(session.get("name"), "zhangsan");
|
||||
@@ -26,6 +48,12 @@ public class SaSessionTest {
|
||||
Assertions.assertEquals((int)session.get("age2", 20), 20);
|
||||
Assertions.assertEquals(session.getModel("age", Double.class).getClass(), Double.class);
|
||||
|
||||
// 原本无值时才会写入
|
||||
session.setByNull("name", "lisi");
|
||||
Assertions.assertEquals(session.get("name"), "zhangsan");
|
||||
session.setByNull("name2", "lisi");
|
||||
Assertions.assertEquals(session.get("name2"), "lisi");
|
||||
|
||||
// 复杂取值
|
||||
class User {
|
||||
String name;
|
||||
@@ -42,17 +70,81 @@ public class SaSessionTest {
|
||||
Assertions.assertNotNull(user2);
|
||||
Assertions.assertEquals(user2.name, "zhangsan");
|
||||
Assertions.assertEquals(user2.age, 18);
|
||||
}
|
||||
|
||||
// 测试有效期
|
||||
@Test
|
||||
public void testSessionTimeout() {
|
||||
// 修改剩余有效期
|
||||
SaSession session = new SaSession("session-1005");
|
||||
SaManager.getSaTokenDao().setSession(session, 20000);
|
||||
session.updateMaxTimeout(100);
|
||||
Assertions.assertTrue(session.getTimeout() <= 100);
|
||||
System.out.println(session.getTimeout());
|
||||
// 仍然是 <=100
|
||||
session.updateMaxTimeout(1000);
|
||||
Assertions.assertTrue(session.getTimeout() <= 100);
|
||||
System.out.println(session.getTimeout());
|
||||
// Min 修改
|
||||
session.updateMinTimeout(-1);
|
||||
System.out.println(session.getTimeout());
|
||||
Assertions.assertTrue(session.getTimeout() == -1);
|
||||
}
|
||||
|
||||
// 测试token 签名
|
||||
@Test
|
||||
public void testTokenSign() {
|
||||
SaSession session = new SaSession("session-1002");
|
||||
|
||||
// Token签名
|
||||
// 添加 Token 签名
|
||||
session.addTokenSign("xxxx-xxxx-xxxx-xxxx-1", "PC");
|
||||
session.addTokenSign("xxxx-xxxx-xxxx-xxxx-2", "APP");
|
||||
|
||||
// 查询
|
||||
Assertions.assertEquals(session.getTokenSignList().size(), 2);
|
||||
Assertions.assertEquals(session.getTokenSign("xxxx-xxxx-xxxx-xxxx-1").getDevice(), "PC");
|
||||
Assertions.assertEquals(session.getTokenSign("xxxx-xxxx-xxxx-xxxx-2").getDevice(), "APP");
|
||||
|
||||
// 删除一个
|
||||
session.removeTokenSign("xxxx-xxxx-xxxx-xxxx-1");
|
||||
Assertions.assertEquals(session.getTokenSignList().size(), 1);
|
||||
}
|
||||
|
||||
// 删除一个不存在的,则不影响 TokenSign 列表
|
||||
session.removeTokenSign("xxxx-xxxx-xxxx-xxxx-999");
|
||||
Assertions.assertEquals(session.getTokenSignList().size(), 1);
|
||||
|
||||
// 重置整个签名列表
|
||||
List<TokenSign> list = Arrays.asList(
|
||||
new TokenSign("xxxx-xxxx-xxxx-xxxx-1", "WEB"),
|
||||
new TokenSign("xxxx-xxxx-xxxx-xxxx-2", "phone"),
|
||||
new TokenSign("xxxx-xxxx-xxxx-xxxx-3", "ipad")
|
||||
);
|
||||
session.setTokenSignList(list);
|
||||
Assertions.assertEquals(session.getTokenSignList().size(), 3);
|
||||
Assertions.assertEquals(session.getTokenSign("xxxx-xxxx-xxxx-xxxx-1").getDevice(), "WEB");
|
||||
Assertions.assertEquals(session.getTokenSign("xxxx-xxxx-xxxx-xxxx-2").getDevice(), "phone");
|
||||
Assertions.assertEquals(session.getTokenSign("xxxx-xxxx-xxxx-xxxx-3").getDevice(), "ipad");
|
||||
}
|
||||
|
||||
// 测试重置 DataMap
|
||||
@Test
|
||||
public void testDataMap() {
|
||||
SaSession session = new SaSession("session-1003");
|
||||
session.set("key1", "value1");
|
||||
session.set("key2", "value2");
|
||||
session.set("key3", "value3");
|
||||
|
||||
// 所有数据
|
||||
Assertions.assertEquals(session.keys().size(), 3);
|
||||
Assertions.assertEquals(session.getDataMap().size(), 3);
|
||||
|
||||
// 重置所有数据
|
||||
Map<String, Object> dataMap = new ConcurrentHashMap<>();
|
||||
dataMap.put("aaa", "111");
|
||||
dataMap.put("bbb", "222");
|
||||
session.refreshDataMap(dataMap);
|
||||
Assertions.assertEquals(session.keys().size(), 2);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -17,7 +17,6 @@ import cn.dev33.satoken.exception.NotPermissionException;
|
||||
import cn.dev33.satoken.exception.NotRoleException;
|
||||
import cn.dev33.satoken.exception.NotSafeException;
|
||||
import cn.dev33.satoken.session.SaSession;
|
||||
import cn.dev33.satoken.session.SaSessionCustomUtil;
|
||||
import cn.dev33.satoken.stp.SaLoginConfig;
|
||||
import cn.dev33.satoken.stp.SaLoginModel;
|
||||
import cn.dev33.satoken.stp.StpLogic;
|
||||
@@ -315,31 +314,6 @@ public class BasicsTest {
|
||||
Assertions.assertEquals(tokenSession.getId(), tokenSession2.getId());
|
||||
}
|
||||
|
||||
// 测试自定义Session
|
||||
@Test
|
||||
public void testCustomSession() {
|
||||
// 刚开始不存在
|
||||
Assertions.assertFalse(SaSessionCustomUtil.isExists("art-1"));
|
||||
SaSession session = dao.getSession("satoken:custom:session:" + "art-1");
|
||||
Assertions.assertNull(session);
|
||||
|
||||
// 调用一下
|
||||
SaSessionCustomUtil.getSessionById("art-1");
|
||||
|
||||
// 就存在了
|
||||
Assertions.assertTrue(SaSessionCustomUtil.isExists("art-1"));
|
||||
SaSession session2 = dao.getSession("satoken:custom:session:" + "art-1");
|
||||
Assertions.assertNotNull(session2);
|
||||
|
||||
// 给删除掉
|
||||
SaSessionCustomUtil.deleteSessionById("art-1");
|
||||
|
||||
// 就又不存在了
|
||||
Assertions.assertFalse(SaSessionCustomUtil.isExists("art-1"));
|
||||
SaSession session3 = dao.getSession("satoken:custom:session:" + "art-1");
|
||||
Assertions.assertNull(session3);
|
||||
}
|
||||
|
||||
// 测试:根据账号id踢人
|
||||
@Test
|
||||
public void kickoutByLoginId() {
|
||||
|
Reference in New Issue
Block a user