diff --git a/src/test/java/com/ddf/vodsystem/security/TokenServiceTest.java b/src/test/java/com/ddf/vodsystem/security/TokenServiceTest.java index 418f11b..a9e56ef 100644 --- a/src/test/java/com/ddf/vodsystem/security/TokenServiceTest.java +++ b/src/test/java/com/ddf/vodsystem/security/TokenServiceTest.java @@ -304,6 +304,24 @@ class TokenServiceTest { .orElseThrow(() -> new AssertionError("no unused token was saved")); assertNull(newToken.getTokenFamily().getRevokedAt()); } - } + @Test + void unusedToken_newTokenIsDifferentFromOldToken() { + TokenFamily tokenFamily = new TokenFamily(); + tokenFamily.setId(1L); + tokenFamily.setUser(createUser(1L, "user", "user")); + tokenFamily.setExpiresAt(Instant.now(clock).plusSeconds(10)); + + RefreshToken refreshToken = new RefreshToken(); + refreshToken.setTokenHash(rawToken.getBytes()); + refreshToken.setTokenFamily(tokenFamily); + refreshToken.setExpiresAt(Instant.now(clock).plusSeconds(10)); + + when(refreshTokenRepository.findByHash(any())) + .thenReturn(Optional.of(refreshToken)); + + TokenService.Rotation rotation = tokenService.rotate(rawToken); + assertNotEquals(rawToken, rotation.newRefreshToken()); + } + } } \ No newline at end of file