JwtUtilTest.java
2.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.example.erp.common;
import com.example.erp.common.exception.BizException;
import com.example.erp.common.util.JwtUtil;
import com.example.erp.config.JwtProperties;
import io.jsonwebtoken.Claims;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;
class JwtUtilTest {
private JwtUtil jwtUtil;
@BeforeEach
void setUp() {
JwtProperties props = new JwtProperties();
props.setSecret("testSecretKey32CharactersMinimumXXXXX");
props.setAccessTokenExpiry(86400L);
props.setRefreshTokenExpiry(604800L);
jwtUtil = new JwtUtil(props);
}
@Test
void generateAndParseAccessToken_containsAllClaims() {
String token = jwtUtil.generateAccessToken("u1", "admin", "超级管理员", "b1");
Claims claims = jwtUtil.parseAccessToken(token);
assertEquals("u1", claims.getSubject());
assertEquals("admin", claims.get("username", String.class));
assertEquals("超级管理员", claims.get("userType", String.class));
assertEquals("b1", claims.get("brandId", String.class));
assertNotNull(claims.getExpiration());
}
@Test
void parseRefreshToken_withAccessToken_throws40103() {
String accessToken = jwtUtil.generateAccessToken("u1", "admin", "普通用户", "b1");
BizException ex = assertThrows(BizException.class, () -> jwtUtil.parseRefreshToken(accessToken));
assertEquals(40103, ex.getCode());
}
@Test
void parseAccessToken_withExpiredToken_throws40103() {
JwtProperties expiredProps = new JwtProperties();
expiredProps.setSecret("testSecretKey32CharactersMinimumXXXXX");
expiredProps.setAccessTokenExpiry(-1L);
expiredProps.setRefreshTokenExpiry(604800L);
JwtUtil expiredJwtUtil = new JwtUtil(expiredProps);
String token = expiredJwtUtil.generateAccessToken("u1", "admin", "普通用户", "b1");
BizException ex = assertThrows(BizException.class, () -> jwtUtil.parseAccessToken(token));
assertEquals(40103, ex.getCode());
}
}