diff --git a/src/test/java/test/commerce/CommerceApiApp_specs.java b/src/test/java/test/commerce/CommerceApiApp_specs.java index c205f41..fbcfed5 100644 --- a/src/test/java/test/commerce/CommerceApiApp_specs.java +++ b/src/test/java/test/commerce/CommerceApiApp_specs.java @@ -2,7 +2,12 @@ import commerce.CommerceApiApp; import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder; + +import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(classes = CommerceApiApp.class) public class CommerceApiApp_specs { @@ -10,4 +15,11 @@ public class CommerceApiApp_specs { @Test void 컨텍스트가_초기화된다() { } + + @Test + void PasswordEncoder_빈이_올바르게_설정된다( + @Autowired PasswordEncoder actual + ) { + assertThat(actual).isInstanceOf(Pbkdf2PasswordEncoder.class); + } } diff --git a/src/test/java/test/commerce/api/CommerceApiTest.java b/src/test/java/test/commerce/api/CommerceApiTest.java index 44bcd96..be67746 100644 --- a/src/test/java/test/commerce/api/CommerceApiTest.java +++ b/src/test/java/test/commerce/api/CommerceApiTest.java @@ -11,7 +11,11 @@ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @SpringBootTest( - classes = { CommerceApiApp.class, TestFixtureConfiguration.class }, + classes = { + CommerceApiApp.class, + TestFixtureConfiguration.class, + PasswordEncoderConfiguration.class, + }, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT ) public @interface CommerceApiTest { diff --git a/src/test/java/test/commerce/api/PasswordEncoderConfiguration.java b/src/test/java/test/commerce/api/PasswordEncoderConfiguration.java new file mode 100644 index 0000000..7a9cbff --- /dev/null +++ b/src/test/java/test/commerce/api/PasswordEncoderConfiguration.java @@ -0,0 +1,24 @@ +package test.commerce.api; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Primary; +import org.springframework.security.crypto.password.Pbkdf2PasswordEncoder; + +import static org.springframework.security.crypto.password.Pbkdf2PasswordEncoder.SecretKeyFactoryAlgorithm.PBKDF2WithHmacSHA256; + +public class PasswordEncoderConfiguration { + + public static final int SALT_LENGTH = 16; + public static final int ITERATIONS = 10; + + @Bean + @Primary + Pbkdf2PasswordEncoder testPasswordEncoder() { + return new Pbkdf2PasswordEncoder( + "", + SALT_LENGTH, + ITERATIONS, + PBKDF2WithHmacSHA256 + ); + } +}