Skip to content

Commit 930a832

Browse files
committed
test: 비밀번호 임시 저장소 테스트 작성
1 parent abe5ae5 commit 930a832

1 file changed

Lines changed: 52 additions & 0 deletions

File tree

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package com.example.solidconnection.auth.service;
2+
3+
import static org.assertj.core.api.Assertions.assertThat;
4+
import static org.junit.jupiter.api.Assertions.assertAll;
5+
6+
import com.example.solidconnection.support.TestContainerSpringBootTest;
7+
import java.util.Optional;
8+
import org.junit.jupiter.api.DisplayName;
9+
import org.junit.jupiter.api.Test;
10+
import org.springframework.beans.factory.annotation.Autowired;
11+
import org.springframework.security.crypto.password.PasswordEncoder;
12+
13+
@DisplayName("비밀번호 임시 저장소 테스트")
14+
@TestContainerSpringBootTest
15+
class PasswordTemporaryStorageTest {
16+
17+
@Autowired
18+
private PasswordTemporaryStorage passwordTemporaryStorage;
19+
20+
@Autowired
21+
private PasswordEncoder passwordEncoder;
22+
23+
private final String email = "test@email.com";
24+
private final String rawPassword = "password123";
25+
26+
@Test
27+
void 인코딩된_비밀번호를_임시_저장소에_저장하고_조회한다() {
28+
// when
29+
passwordTemporaryStorage.save(email, rawPassword);
30+
Optional<String> foundPassword = passwordTemporaryStorage.findByEmail(email);
31+
32+
// then
33+
assertThat(foundPassword).isPresent();
34+
assertThat(passwordEncoder.matches(rawPassword, foundPassword.get())).isTrue();
35+
}
36+
37+
@Test
38+
void 비밀번호_조회는_한_번_조회된_후_삭제된다() {
39+
// given
40+
passwordTemporaryStorage.save(email, rawPassword);
41+
42+
// when
43+
Optional<String> foundPassword1 = passwordTemporaryStorage.findByEmail(email);
44+
Optional<String> foundPassword2 = passwordTemporaryStorage.findByEmail(email);
45+
46+
// then
47+
assertAll(
48+
() -> assertThat(foundPassword1).isPresent(),
49+
() -> assertThat(foundPassword2).isEmpty()
50+
);
51+
}
52+
}

0 commit comments

Comments
 (0)