diff --git a/src/test/java/org/rf/rfserver/config/jwt/JwtFactory.java b/src/test/java/org/rf/rfserver/config/jwt/JwtFactory.java deleted file mode 100644 index 0e083dff..00000000 --- a/src/test/java/org/rf/rfserver/config/jwt/JwtFactory.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.rf.rfserver.config.jwt; - -import io.jsonwebtoken.Header; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import lombok.Builder; - -import java.time.Duration; -import java.util.Collections; -import java.util.Date; -import java.util.Map; - -public class JwtFactory { - private String subject = "test@email.com"; - private Date issuedAt = new Date(); - private Date expiration = new Date(new Date().getTime() + Duration.ofDays(14).toMillis()); - private Map claims = Collections.emptyMap(); - - @Builder - public JwtFactory(String subject, Date issuedAt, Date expiration, - Map claims) { - this.subject = subject != null ? subject : this.subject; - this.issuedAt = issuedAt != null ? issuedAt : this.issuedAt; - this.expiration = expiration != null ? expiration : this.expiration; - this.claims = claims != null ? claims : this.claims; - } - - public static JwtFactory withDefaultValues() { - return JwtFactory.builder().build(); - } - - public String createToken(JwtProperties jwtProperties) { - return Jwts.builder() - .setSubject(subject) - .setHeaderParam(Header.TYPE, Header.JWT_TYPE) - .setIssuer(jwtProperties.getIssuer()) - .setIssuedAt(issuedAt) - .setExpiration(expiration) - .addClaims(claims) - .signWith(SignatureAlgorithm.HS512, jwtProperties.getSecretKey()) - .compact(); - } -} diff --git a/src/test/java/org/rf/rfserver/config/jwt/TokenProviderTest.java b/src/test/java/org/rf/rfserver/config/jwt/TokenProviderTest.java deleted file mode 100644 index 8578d66c..00000000 --- a/src/test/java/org/rf/rfserver/config/jwt/TokenProviderTest.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.rf.rfserver.config.jwt; - -import io.jsonwebtoken.Jwts; -import org.assertj.core.api.Assertions; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.rf.rfserver.domain.User; -import org.rf.rfserver.user.repository.UserRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.security.core.Authentication; -import org.springframework.security.core.userdetails.UserDetails; - -import java.time.Duration; -import java.util.Date; -import java.util.Map; - -import static org.assertj.core.api.Assertions.*; - -@SpringBootTest -public class TokenProviderTest { - @Autowired - private TokenProvider tokenProvider; - @Autowired - private UserRepository userRepository; - @Autowired - private JwtProperties jwtProperties; - - @DisplayName("Token 생성 테스트") - @Test - void generateToken() { - // given - User testUser = userRepository.save(User.builder() - .loginId("umc1234") - .password("1234") - .build()); - //when - String token = tokenProvider.generateToken(testUser, Duration.ofDays(14)); - - //then - Long userId = Jwts.parser() - .setSigningKey(jwtProperties.getSecretKey()) - .parseClaimsJws(token) - .getBody() - .get("id", Long.class); - - assertThat(userId).isEqualTo(testUser.getId()); - } - - @DisplayName("valid 검증 테스트 - 만료 실패") - @Test - void validToken_invalidToken() { - //given - String token = JwtFactory.builder() - .expiration(new Date(new Date().getTime()- Duration.ofDays(7).toMillis())) - .build() - .createToken(jwtProperties); - - //when - boolean result = tokenProvider.validToken(token); - - //then - assertThat(result).isFalse(); - } - - @DisplayName("valid 검증 테스트 - 유효 성공") - @Test - void validToken_validToken() { - //given - String token = JwtFactory.withDefaultValues() - .createToken(jwtProperties); - - //when - boolean result = tokenProvider.validToken(token); - - //then - assertThat(result).isTrue(); - } - - @DisplayName("getAuthentication(): 토큰 기반으로 인증 정보를 가져올 수 있다") - @Test - void getAuthentication() { - //given - String userId = "umc1234"; - String token = JwtFactory.builder() - .subject(userId) - .build() - .createToken(jwtProperties); - - // when - Authentication authentication = tokenProvider.getAuthentication(token); - - //then - assertThat(((UserDetails) authentication.getPrincipal()).getUsername()).isEqualTo(userId); - } - - @DisplayName("getUserId(): 토큰으로 유저 ID 갖올 수 있다") - @Test - void getUserId() { - //given - Long userId = 1L; - String token = JwtFactory.builder() - .claims(Map.of("id", userId)) - .build() - .createToken(jwtProperties); - - //when - Long userIdByToken = tokenProvider.getUserId(token); - - //then - assertThat(userIdByToken).isEqualTo(userId); - - } - -}