diff --git a/.gradle/8.4/checksums/checksums.lock b/.gradle/8.4/checksums/checksums.lock index 247d63e..5cff088 100644 Binary files a/.gradle/8.4/checksums/checksums.lock and b/.gradle/8.4/checksums/checksums.lock differ diff --git a/.gradle/8.4/checksums/sha1-checksums.bin b/.gradle/8.4/checksums/sha1-checksums.bin index c598b03..ef10225 100644 Binary files a/.gradle/8.4/checksums/sha1-checksums.bin and b/.gradle/8.4/checksums/sha1-checksums.bin differ diff --git a/.gradle/8.4/executionHistory/executionHistory.bin b/.gradle/8.4/executionHistory/executionHistory.bin index c53b1e1..9e4cd1c 100644 Binary files a/.gradle/8.4/executionHistory/executionHistory.bin and b/.gradle/8.4/executionHistory/executionHistory.bin differ diff --git a/.gradle/8.4/executionHistory/executionHistory.lock b/.gradle/8.4/executionHistory/executionHistory.lock index 82327ff..bbfbb0f 100644 Binary files a/.gradle/8.4/executionHistory/executionHistory.lock and b/.gradle/8.4/executionHistory/executionHistory.lock differ diff --git a/.gradle/8.4/fileHashes/fileHashes.bin b/.gradle/8.4/fileHashes/fileHashes.bin index f22e444..58254b0 100644 Binary files a/.gradle/8.4/fileHashes/fileHashes.bin and b/.gradle/8.4/fileHashes/fileHashes.bin differ diff --git a/.gradle/8.4/fileHashes/fileHashes.lock b/.gradle/8.4/fileHashes/fileHashes.lock index f71bae1..d283c81 100644 Binary files a/.gradle/8.4/fileHashes/fileHashes.lock and b/.gradle/8.4/fileHashes/fileHashes.lock differ diff --git a/.gradle/8.4/fileHashes/resourceHashesCache.bin b/.gradle/8.4/fileHashes/resourceHashesCache.bin index 61d8faf..fa8107b 100644 Binary files a/.gradle/8.4/fileHashes/resourceHashesCache.bin and b/.gradle/8.4/fileHashes/resourceHashesCache.bin differ diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index b00ed9c..cbb6aca 100644 Binary files a/.gradle/buildOutputCleanup/buildOutputCleanup.lock and b/.gradle/buildOutputCleanup/buildOutputCleanup.lock differ diff --git a/.gradle/buildOutputCleanup/outputFiles.bin b/.gradle/buildOutputCleanup/outputFiles.bin index 1cc9f05..92d381f 100644 Binary files a/.gradle/buildOutputCleanup/outputFiles.bin and b/.gradle/buildOutputCleanup/outputFiles.bin differ diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index 66e97ba..49e615c 100644 Binary files a/.gradle/file-system.probe and b/.gradle/file-system.probe differ diff --git a/.idea/modules.xml b/.idea/modules.xml index 264f470..67af37f 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -4,6 +4,7 @@ + diff --git a/.idea/modules/member/lifesub.member.test.iml b/.idea/modules/member/lifesub.member.test.iml new file mode 100644 index 0000000..4a0a830 --- /dev/null +++ b/.idea/modules/member/lifesub.member.test.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle index 30fb9a6..13e3cf9 100644 --- a/build.gradle +++ b/build.gradle @@ -80,8 +80,12 @@ configure(subprojects.findAll { !it.name.endsWith('-biz') && it.name != 'common' // Swagger implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0' + //-- spring security test + testImplementation 'org.springframework.security:spring-security-test' + // Test Containers testImplementation 'org.testcontainers:postgresql' + testImplementation 'org.testcontainers:junit-jupiter' // WebFlux for WebMvc Testing implementation 'org.springframework.boot:spring-boot-starter-webflux' diff --git a/common/build/classes/java/main/com/unicorn/lifesub/common/aop/LoggingAspect.class b/common/build/classes/java/main/com/unicorn/lifesub/common/aop/LoggingAspect.class index b5dc8e8..99a65b3 100644 Binary files a/common/build/classes/java/main/com/unicorn/lifesub/common/aop/LoggingAspect.class and b/common/build/classes/java/main/com/unicorn/lifesub/common/aop/LoggingAspect.class differ diff --git a/common/build/classes/java/main/com/unicorn/lifesub/common/config/JpaConfig.class b/common/build/classes/java/main/com/unicorn/lifesub/common/config/JpaConfig.class index 3e4a525..de34d32 100644 Binary files a/common/build/classes/java/main/com/unicorn/lifesub/common/config/JpaConfig.class and b/common/build/classes/java/main/com/unicorn/lifesub/common/config/JpaConfig.class differ diff --git a/common/build/classes/java/main/com/unicorn/lifesub/common/dto/ApiResponse.class b/common/build/classes/java/main/com/unicorn/lifesub/common/dto/ApiResponse.class index 5af5cdd..7238663 100644 Binary files a/common/build/classes/java/main/com/unicorn/lifesub/common/dto/ApiResponse.class and b/common/build/classes/java/main/com/unicorn/lifesub/common/dto/ApiResponse.class differ diff --git a/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenDTO$JwtTokenDTOBuilder.class b/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenDTO$JwtTokenDTOBuilder.class index 28578d7..9f4c498 100644 Binary files a/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenDTO$JwtTokenDTOBuilder.class and b/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenDTO$JwtTokenDTOBuilder.class differ diff --git a/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenDTO.class b/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenDTO.class index 6f6dac1..f6fcbee 100644 Binary files a/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenDTO.class and b/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenDTO.class differ diff --git a/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenRefreshDTO.class b/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenRefreshDTO.class index 54e2d72..b301d17 100644 Binary files a/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenRefreshDTO.class and b/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenRefreshDTO.class differ diff --git a/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenVerifyDTO.class b/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenVerifyDTO.class index 62830d4..0798d26 100644 Binary files a/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenVerifyDTO.class and b/common/build/classes/java/main/com/unicorn/lifesub/common/dto/JwtTokenVerifyDTO.class differ diff --git a/common/build/classes/java/main/com/unicorn/lifesub/common/entity/BaseTimeEntity.class b/common/build/classes/java/main/com/unicorn/lifesub/common/entity/BaseTimeEntity.class index 7cd57d7..2dfa2b3 100644 Binary files a/common/build/classes/java/main/com/unicorn/lifesub/common/entity/BaseTimeEntity.class and b/common/build/classes/java/main/com/unicorn/lifesub/common/entity/BaseTimeEntity.class differ diff --git a/common/build/classes/java/main/com/unicorn/lifesub/common/exception/BusinessException.class b/common/build/classes/java/main/com/unicorn/lifesub/common/exception/BusinessException.class index a27661c..295bdaa 100644 Binary files a/common/build/classes/java/main/com/unicorn/lifesub/common/exception/BusinessException.class and b/common/build/classes/java/main/com/unicorn/lifesub/common/exception/BusinessException.class differ diff --git a/common/build/classes/java/main/com/unicorn/lifesub/common/exception/ErrorCode.class b/common/build/classes/java/main/com/unicorn/lifesub/common/exception/ErrorCode.class index 9602700..21628ad 100644 Binary files a/common/build/classes/java/main/com/unicorn/lifesub/common/exception/ErrorCode.class and b/common/build/classes/java/main/com/unicorn/lifesub/common/exception/ErrorCode.class differ diff --git a/common/build/classes/java/main/com/unicorn/lifesub/common/exception/InfraException.class b/common/build/classes/java/main/com/unicorn/lifesub/common/exception/InfraException.class index c7bc0d1..280ac99 100644 Binary files a/common/build/classes/java/main/com/unicorn/lifesub/common/exception/InfraException.class and b/common/build/classes/java/main/com/unicorn/lifesub/common/exception/InfraException.class differ diff --git a/common/build/libs/common-1.0.0-plain.jar b/common/build/libs/common-1.0.0-plain.jar index e97c6e6..f7dc5b2 100644 Binary files a/common/build/libs/common-1.0.0-plain.jar and b/common/build/libs/common-1.0.0-plain.jar differ diff --git a/common/build/tmp/compileJava/previous-compilation-data.bin b/common/build/tmp/compileJava/previous-compilation-data.bin index d14d9ec..400550c 100644 Binary files a/common/build/tmp/compileJava/previous-compilation-data.bin and b/common/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/MemberApplication.class b/member/build/classes/java/main/com/unicorn/lifesub/member/MemberApplication.class index 379483c..462ac51 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/MemberApplication.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/MemberApplication.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/config/DataLoader.class b/member/build/classes/java/main/com/unicorn/lifesub/member/config/DataLoader.class index d5967c9..253c565 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/config/DataLoader.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/config/DataLoader.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/config/SecurityConfig.class b/member/build/classes/java/main/com/unicorn/lifesub/member/config/SecurityConfig.class index 4b985a1..7ea7489 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/config/SecurityConfig.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/config/SecurityConfig.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/config/SwaggerConfig.class b/member/build/classes/java/main/com/unicorn/lifesub/member/config/SwaggerConfig.class index baa5b20..0293412 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/config/SwaggerConfig.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/config/SwaggerConfig.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/config/jwt/CustomUserDetailsService.class b/member/build/classes/java/main/com/unicorn/lifesub/member/config/jwt/CustomUserDetailsService.class index 12a3864..8df457a 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/config/jwt/CustomUserDetailsService.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/config/jwt/CustomUserDetailsService.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/config/jwt/JwtAuthenticationFilter.class b/member/build/classes/java/main/com/unicorn/lifesub/member/config/jwt/JwtAuthenticationFilter.class index 325b385..6e2000e 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/config/jwt/JwtAuthenticationFilter.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/config/jwt/JwtAuthenticationFilter.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/config/jwt/JwtTokenProvider.class b/member/build/classes/java/main/com/unicorn/lifesub/member/config/jwt/JwtTokenProvider.class index 351f028..30bc497 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/config/jwt/JwtTokenProvider.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/config/jwt/JwtTokenProvider.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/controller/MemberController.class b/member/build/classes/java/main/com/unicorn/lifesub/member/controller/MemberController.class index 71bced7..36febb3 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/controller/MemberController.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/controller/MemberController.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/domain/Member$MemberBuilder.class b/member/build/classes/java/main/com/unicorn/lifesub/member/domain/Member$MemberBuilder.class index 5b355d3..2c60460 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/domain/Member$MemberBuilder.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/domain/Member$MemberBuilder.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/domain/Member.class b/member/build/classes/java/main/com/unicorn/lifesub/member/domain/Member.class index 7ce52fa..8981801 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/domain/Member.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/domain/Member.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LoginRequest.class b/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LoginRequest.class index 2c29c5e..097fa92 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LoginRequest.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LoginRequest.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LogoutRequest.class b/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LogoutRequest.class index ff852b9..193f517 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LogoutRequest.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LogoutRequest.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LogoutResponse$LogoutResponseBuilder.class b/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LogoutResponse$LogoutResponseBuilder.class index 386a637..f396155 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LogoutResponse$LogoutResponseBuilder.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LogoutResponse$LogoutResponseBuilder.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LogoutResponse.class b/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LogoutResponse.class index 4500a45..2c280a4 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LogoutResponse.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/dto/LogoutResponse.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/repository/entity/MemberEntity$MemberEntityBuilder.class b/member/build/classes/java/main/com/unicorn/lifesub/member/repository/entity/MemberEntity$MemberEntityBuilder.class index 3f3116e..4d728f1 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/repository/entity/MemberEntity$MemberEntityBuilder.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/repository/entity/MemberEntity$MemberEntityBuilder.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/repository/entity/MemberEntity.class b/member/build/classes/java/main/com/unicorn/lifesub/member/repository/entity/MemberEntity.class index 783d6b0..0c5fa98 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/repository/entity/MemberEntity.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/repository/entity/MemberEntity.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/repository/jpa/MemberRepository.class b/member/build/classes/java/main/com/unicorn/lifesub/member/repository/jpa/MemberRepository.class index afcb8c0..5c92437 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/repository/jpa/MemberRepository.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/repository/jpa/MemberRepository.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/service/MemberService.class b/member/build/classes/java/main/com/unicorn/lifesub/member/service/MemberService.class index 4c70138..1944f83 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/service/MemberService.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/service/MemberService.class differ diff --git a/member/build/classes/java/main/com/unicorn/lifesub/member/service/MemberServiceImpl.class b/member/build/classes/java/main/com/unicorn/lifesub/member/service/MemberServiceImpl.class index 3a9a16d..09feebc 100644 Binary files a/member/build/classes/java/main/com/unicorn/lifesub/member/service/MemberServiceImpl.class and b/member/build/classes/java/main/com/unicorn/lifesub/member/service/MemberServiceImpl.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/e2e/MemberE2ETest.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/e2e/MemberE2ETest.class new file mode 100644 index 0000000..2650bf2 Binary files /dev/null and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/e2e/MemberE2ETest.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/e2e/config/TestContainerConfig.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/e2e/config/TestContainerConfig.class new file mode 100644 index 0000000..40678fc Binary files /dev/null and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/e2e/config/TestContainerConfig.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/e2e/support/TestDataManager.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/e2e/support/TestDataManager.class new file mode 100644 index 0000000..182e449 Binary files /dev/null and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/e2e/support/TestDataManager.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/config/TestSecurityConfig.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/config/TestSecurityConfig.class new file mode 100644 index 0000000..7caa802 Binary files /dev/null and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/config/TestSecurityConfig.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/controller/MemberControllerIntegrationTest$TestConfig.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/controller/MemberControllerIntegrationTest$TestConfig.class new file mode 100644 index 0000000..e0086c0 Binary files /dev/null and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/controller/MemberControllerIntegrationTest$TestConfig.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/controller/MemberControllerIntegrationTest.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/controller/MemberControllerIntegrationTest.class new file mode 100644 index 0000000..0571e87 Binary files /dev/null and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/controller/MemberControllerIntegrationTest.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/repository/MemberRepositoryIntegrationTest.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/repository/MemberRepositoryIntegrationTest.class new file mode 100644 index 0000000..71c14f1 Binary files /dev/null and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/repository/MemberRepositoryIntegrationTest.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/service/MemberServiceIntegrationTest.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/service/MemberServiceIntegrationTest.class new file mode 100644 index 0000000..3826ab1 Binary files /dev/null and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/service/MemberServiceIntegrationTest.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/support/TestDataFactory.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/support/TestDataFactory.class new file mode 100644 index 0000000..4ca866e Binary files /dev/null and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/integration/support/TestDataFactory.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/config/jwt/CustomUserDetailsServiceTest.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/config/jwt/CustomUserDetailsServiceUnitTest.class similarity index 75% rename from member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/config/jwt/CustomUserDetailsServiceTest.class rename to member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/config/jwt/CustomUserDetailsServiceUnitTest.class index 712ad7f..9cf3dc3 100644 Binary files a/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/config/jwt/CustomUserDetailsServiceTest.class and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/config/jwt/CustomUserDetailsServiceUnitTest.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/config/jwt/JwtTokenProviderTest.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/config/jwt/JwtTokenProviderUnitTest.class similarity index 81% rename from member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/config/jwt/JwtTokenProviderTest.class rename to member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/config/jwt/JwtTokenProviderUnitTest.class index 8fa38a1..e3f40d7 100644 Binary files a/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/config/jwt/JwtTokenProviderTest.class and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/config/jwt/JwtTokenProviderUnitTest.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/domain/MemberTest.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/domain/MemberUnitTest.class similarity index 80% rename from member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/domain/MemberTest.class rename to member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/domain/MemberUnitTest.class index 4138994..431f078 100644 Binary files a/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/domain/MemberTest.class and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/domain/MemberUnitTest.class differ diff --git a/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/service/MemberServiceImplTest.class b/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/service/MemberServiceImplUnitTest.class similarity index 82% rename from member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/service/MemberServiceImplTest.class rename to member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/service/MemberServiceImplUnitTest.class index 785a028..69d5d81 100644 Binary files a/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/service/MemberServiceImplTest.class and b/member/build/classes/java/test/com/unicorn/lifesub/member/test/unit/service/MemberServiceImplUnitTest.class differ diff --git a/member/build/libs/member-1.0.0-plain.jar b/member/build/libs/member-1.0.0-plain.jar index 8ee2971..ee7a325 100644 Binary files a/member/build/libs/member-1.0.0-plain.jar and b/member/build/libs/member-1.0.0-plain.jar differ diff --git a/member/build/libs/member.jar b/member/build/libs/member.jar index eaae75a..e108711 100644 Binary files a/member/build/libs/member.jar and b/member/build/libs/member.jar differ diff --git a/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.e2e.MemberE2ETest.html b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.e2e.MemberE2ETest.html new file mode 100644 index 0000000..65e0c62 --- /dev/null +++ b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.e2e.MemberE2ETest.html @@ -0,0 +1,2098 @@ + + + + + +Test results - MemberE2ETest + + + + + +
+

MemberE2ETest

+ +
+ + + + + +
+
+ + + + + + + +
+
+
3
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
7.088s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Tests

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
TestMethod nameDurationResult
잘못된 비밀번호로 로그인 실패 시나리오givenInvalidPassword_whenLogin_thenFail()0.831spassed
로그인 성공 시나리오givenValidCredentials_whenLogin_thenSuccess()4.712spassed
로그인 후 로그아웃 시나리오givenValidToken_whenLogout_thenSuccess()1.545spassed
+
+
+

Standard output

+ +
23:44:41.828 [Test worker] INFO org.testcontainers.images.PullPolicy -- Image pull policy will be performed by: DefaultPullPolicy()
+23:44:41.844 [Test worker] INFO org.testcontainers.utility.ImageNameSubstitutor -- Image name substitution will be performed by: DefaultImageNameSubstitutor (composite of 'ConfigurationFileImageNameSubstitutor' and 'PrefixingImageNameSubstitutor')
+23:44:41.887 [Test worker] INFO org.testcontainers.DockerClientFactory -- Testcontainers version: 1.20.4
+23:44:42.390 [Test worker] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Loaded org.testcontainers.dockerclient.UnixSocketClientProviderStrategy from ~/.testcontainers.properties, will try it first
+23:44:43.157 [Test worker] INFO org.testcontainers.dockerclient.DockerClientProviderStrategy -- Found Docker environment with local Unix socket (unix:///var/run/docker.sock)
+23:44:43.160 [Test worker] INFO org.testcontainers.DockerClientFactory -- Docker host IP address is localhost
+23:44:43.260 [Test worker] INFO org.testcontainers.DockerClientFactory -- Connected to docker: 
+  Server Version: 24.0.6
+  API Version: 1.43
+  Operating System: Docker Desktop
+  Total Memory: 5939 MB
+23:44:43.362 [Test worker] INFO tc.testcontainers/ryuk:0.11.0 -- Creating container for image: testcontainers/ryuk:0.11.0
+23:44:45.421 [Test worker] INFO org.testcontainers.utility.RegistryAuthLocator -- Credential helper/store (docker-credential-desktop) does not have credentials for https://index.docker.io/v1/
+23:44:46.230 [Test worker] INFO tc.testcontainers/ryuk:0.11.0 -- Container testcontainers/ryuk:0.11.0 is starting: d5f615c049589516ae3088f80c94d19baf33f598b5b53fe14679e6dc2a1abdba
+23:44:47.698 [Test worker] INFO tc.testcontainers/ryuk:0.11.0 -- Container testcontainers/ryuk:0.11.0 started in PT4.335402S
+23:44:47.722 [Test worker] INFO org.testcontainers.utility.RyukResourceReaper -- Ryuk started - will monitor and terminate Testcontainers containers on JVM exit
+23:44:47.722 [Test worker] INFO org.testcontainers.DockerClientFactory -- Checking the system...
+23:44:47.723 [Test worker] INFO org.testcontainers.DockerClientFactory -- ✔︎ Docker server version should be at least 1.6.0
+23:44:47.727 [Test worker] INFO tc.postgres:13.2-alpine -- Creating container for image: postgres:13.2-alpine
+23:44:47.799 [Test worker] INFO tc.postgres:13.2-alpine -- Container postgres:13.2-alpine is starting: 0a657bb368f3a227c03cbb2512a570076d5a2a107df5e3bae473d7dd1b7738b3
+23:44:50.341 [Test worker] INFO tc.postgres:13.2-alpine -- Container postgres:13.2-alpine started in PT2.613914S
+23:44:50.354 [Test worker] INFO tc.postgres:13.2-alpine -- Container is started (JDBC URL: jdbc:postgresql://localhost:58649/testdb?loggerLevel=OFF)
+23:44:50.806 [Test worker] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [com.unicorn.lifesub.member.test.e2e.MemberE2ETest]: MemberE2ETest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
+23:44:51.293 [Test worker] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration com.unicorn.lifesub.member.MemberApplication for test class com.unicorn.lifesub.member.test.e2e.MemberE2ETest
+
+  .   ____          _            __ _ _
+ /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
+( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
+ \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
+  '  |____| .__|_| |_|_| |_\__, | / / / /
+ =========|_|==============|___/=/_/_/_/
+
+ :: Spring Boot ::                (v3.4.0)
+
+2025-02-14T23:44:53.657+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.l.member.test.e2e.MemberE2ETest      : Starting MemberE2ETest using Java 18.0.2 with PID 99945 (started by ondal in /Users/ondal/home/workspace/lifesub/member)
+2025-02-14T23:44:53.700+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] c.u.l.member.test.e2e.MemberE2ETest      : Running with Spring Boot v3.4.0, Spring v6.2.0
+2025-02-14T23:44:53.726+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.l.member.test.e2e.MemberE2ETest      : The following 1 profile is active: "e2e-test"
+2025-02-14T23:44:59.555+09:00  INFO 99945 --- [member-service-test] [    Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2025-02-14T23:45:01.133+09:00  INFO 99945 --- [member-service-test] [    Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 1502 ms. Found 1 JPA repository interface.
+2025-02-14T23:45:11.432+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port 0 (http)
+2025-02-14T23:45:11.474+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
+2025-02-14T23:45:11.475+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.apache.catalina.core.StandardEngine    : Starting Servlet engine: [Apache Tomcat/10.1.33]
+2025-02-14T23:45:11.741+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
+2025-02-14T23:45:11.750+09:00  INFO 99945 --- [member-service-test] [    Test worker] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 17878 ms
+2025-02-14T23:45:12.567+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
+2025-02-14T23:45:12.705+09:00  INFO 99945 --- [member-service-test] [    Test worker] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 6.6.2.Final
+2025-02-14T23:45:12.800+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.h.c.internal.RegionFactoryInitiator    : HHH000026: Second-level cache disabled
+2025-02-14T23:45:13.788+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.o.j.p.SpringPersistenceUnitInfo      : No LoadTimeWeaver setup: ignoring JPA class transformer
+2025-02-14T23:45:14.089+09:00  INFO 99945 --- [member-service-test] [    Test worker] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
+2025-02-14T23:45:14.541+09:00  INFO 99945 --- [member-service-test] [    Test worker] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@70a91d72
+2025-02-14T23:45:14.547+09:00  INFO 99945 --- [member-service-test] [    Test worker] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Start completed.
+2025-02-14T23:45:14.627+09:00  WARN 99945 --- [member-service-test] [    Test worker] org.hibernate.orm.deprecation            : HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)
+2025-02-14T23:45:14.739+09:00  INFO 99945 --- [member-service-test] [    Test worker] org.hibernate.orm.connections.pooling    : HHH10001005: Database info:
+	Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)']
+	Database driver: undefined/unknown
+	Database version: 13.2
+	Autocommit mode: undefined/unknown
+	Isolation level: undefined/unknown
+	Minimum pool size: undefined/unknown
+	Maximum pool size: undefined/unknown
+2025-02-14T23:45:17.528+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
+2025-02-14T23:45:17.558+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    set client_min_messages = WARNING
+Hibernate: 
+    set client_min_messages = WARNING
+2025-02-14T23:45:17.577+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    alter table if exists member_roles 
+       drop constraint if exists FKkrahbaoj05n0hyabejnnrmft
+Hibernate: 
+    alter table if exists member_roles 
+       drop constraint if exists FKkrahbaoj05n0hyabejnnrmft
+2025-02-14T23:45:17.585+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    drop table if exists member_roles cascade
+Hibernate: 
+    drop table if exists member_roles cascade
+2025-02-14T23:45:17.587+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    drop table if exists members cascade
+Hibernate: 
+    drop table if exists members cascade
+2025-02-14T23:45:17.597+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    create table member_roles (
+        role varchar(255),
+        user_id varchar(255) not null
+    )
+Hibernate: 
+    create table member_roles (
+        role varchar(255),
+        user_id varchar(255) not null
+    )
+2025-02-14T23:45:17.626+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    create table members (
+        created_at timestamp(6),
+        updated_at timestamp(6),
+        password varchar(255) not null,
+        user_id varchar(255) not null,
+        user_name varchar(255) not null,
+        primary key (user_id)
+    )
+Hibernate: 
+    create table members (
+        created_at timestamp(6),
+        updated_at timestamp(6),
+        password varchar(255) not null,
+        user_id varchar(255) not null,
+        user_name varchar(255) not null,
+        primary key (user_id)
+    )
+2025-02-14T23:45:17.639+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    alter table if exists member_roles 
+       add constraint FKkrahbaoj05n0hyabejnnrmft 
+       foreign key (user_id) 
+       references members
+Hibernate: 
+    alter table if exists member_roles 
+       add constraint FKkrahbaoj05n0hyabejnnrmft 
+       foreign key (user_id) 
+       references members
+2025-02-14T23:45:17.657+09:00  INFO 99945 --- [member-service-test] [    Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
+2025-02-14T23:45:19.918+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] SecurityConfig$$SpringCGLIB$$0.passwordEncoder - Args: []
+2025-02-14T23:45:19.938+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] SecurityConfig$$SpringCGLIB$$0.passwordEncoder - Result: org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder@138c2ba
+2025-02-14T23:45:20.914+09:00  WARN 99945 --- [member-service-test] [    Test worker] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
+2025-02-14T23:45:21.025+09:00  INFO 99945 --- [member-service-test] [    Test worker] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name customUserDetailsService
+2025-02-14T23:45:24.285+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] SecurityConfig$$SpringCGLIB$$0.securityFilterChain - Args: [org.springframework.security.config.annotation.web.builders.HttpSecurity@705606]
+2025-02-14T23:45:24.304+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] SecurityConfig$$SpringCGLIB$$0.corsConfigurationSource - Args: []
+2025-02-14T23:45:24.306+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] SecurityConfig$$SpringCGLIB$$0.corsConfigurationSource - Result: org.springframework.web.cors.UrlBasedCorsConfigurationSource@48515dfc
+2025-02-14T23:45:24.594+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] SecurityConfig$$SpringCGLIB$$0.securityFilterChain - Result: DefaultSecurityFilterChain matching [any request] and having filters [DisableEncodeUrl, WebAsyncManagerIntegration, SecurityContextHolder, HeaderWriter, Cors, Logout, JwtAuthentication, RequestCacheAware, SecurityContextHolderAwareRequest, AnonymousAuthentication, SessionManagement, ExceptionTranslation, Authorization]
+2025-02-14T23:45:24.732+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] SecurityConfig$$SpringCGLIB$$0.authenticationManager - Args: [org.springframework.security.config.annotation.authentication.configuration.AuthenticationConfiguration@4f0918]
+2025-02-14T23:45:24.732+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] SecurityConfig$$SpringCGLIB$$0.authenticationManager - Result: org.springframework.security.authentication.ProviderManager@1928930
+2025-02-14T23:45:24.735+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] SwaggerConfig$$SpringCGLIB$$0.openAPI - Args: []
+2025-02-14T23:45:24.738+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] SwaggerConfig$$SpringCGLIB$$0.openAPI - Result: class OpenAPI {
+    openapi: 3.0.1
+    info: class Info {
+        title: 회원 서비스 API
+        description: 회원 서비스 API 명세서입니다.
+        summary: null
+        termsOfService: null
+        contact: null
+        license: null
+        version: v1.0.0
+    }
+    externalDocs: null
+    servers: null
+    security: null
+    tags: null
+    paths: null
+    components: null
+}
+2025-02-14T23:45:27.836+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port 58665 (http) with context path '/'
+2025-02-14T23:45:27.890+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.l.member.test.e2e.MemberE2ETest      : Started MemberE2ETest in 36.261 seconds (process running for 50.71)
+2025-02-14T23:45:27.936+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] DataLoader.run - Args: [[Ljava.lang.String;@43ac0a]
+2025-02-14T23:45:27.987+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.count - Args: []
+2025-02-14T23:45:28.965+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        count(*) 
+    from
+        members me1_0
+Hibernate: 
+    select
+        count(*) 
+    from
+        members me1_0
+2025-02-14T23:45:29.058+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.count - Result: 0
+2025-02-14T23:45:29.307+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@422ecb]
+2025-02-14T23:45:29.354+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:29.489+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@35188cd2
+2025-02-14T23:45:29.493+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@76d112]
+2025-02-14T23:45:29.496+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:29.505+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@1305f8e3
+2025-02-14T23:45:29.507+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@3b6a4b]
+2025-02-14T23:45:29.509+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:29.514+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@4ba39ece
+2025-02-14T23:45:29.515+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@50d3db]
+2025-02-14T23:45:29.517+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:29.526+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@795239f9
+2025-02-14T23:45:29.526+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@e5a65]
+2025-02-14T23:45:29.529+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:29.534+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@41d73414
+2025-02-14T23:45:29.536+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@2f498]
+2025-02-14T23:45:29.536+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:29.540+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@315449e6
+2025-02-14T23:45:29.541+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@6e1949]
+2025-02-14T23:45:29.547+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:29.555+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@1b6d0ee9
+2025-02-14T23:45:29.558+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@612d37]
+2025-02-14T23:45:29.561+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:29.565+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@6e25ae24
+2025-02-14T23:45:29.565+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@20e27a]
+2025-02-14T23:45:29.566+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:29.571+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@3664d285
+2025-02-14T23:45:29.575+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@465777]
+2025-02-14T23:45:29.579+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:29.584+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@510af8e4
+2025-02-14T23:45:29.585+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] DataLoader.run - Result: null
+2025-02-14T23:45:29.619+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:29.649+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:29.659+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:29.674+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:29.699+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:29.719+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:29.736+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:29.768+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:29.784+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:29.796+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:29.834+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:29.885+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:29.892+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:29.908+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:29.914+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:29.918+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:29.923+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:29.928+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:29.940+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:29.947+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:32.579+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring TestDispatcherServlet ''
+2025-02-14T23:45:32.582+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.t.web.servlet.TestDispatcherServlet  : Initializing Servlet ''
+2025-02-14T23:45:32.589+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.t.web.servlet.TestDispatcherServlet  : Completed initialization in 6 ms
+2025-02-14T23:45:32.612+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.deleteAll - Args: []
+2025-02-14T23:45:32.666+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0
+2025-02-14T23:45:32.699+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:32.705+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:32.708+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:32.711+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:32.715+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:32.723+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:32.727+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:32.731+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:32.741+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:32.744+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:32.766+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:32.772+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:32.774+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:32.776+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:32.778+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:32.780+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:32.781+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:32.783+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:32.786+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:32.788+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:32.793+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:32.798+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:32.802+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:32.804+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:32.808+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:32.811+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:32.814+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:32.820+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:32.821+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:32.823+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:32.826+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.deleteAll - Result: null
+2025-02-14T23:45:32.829+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] TestDataManager.setupTestData - Args: []
+2025-02-14T23:45:32.829+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.count - Args: []
+2025-02-14T23:45:32.836+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        count(*) 
+    from
+        members me1_0
+Hibernate: 
+    select
+        count(*) 
+    from
+        members me1_0
+2025-02-14T23:45:32.842+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.count - Result: 0
+2025-02-14T23:45:32.987+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@6b7d46]
+2025-02-14T23:45:32.988+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:32.994+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@45dbf4f6
+2025-02-14T23:45:33.140+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@b17f]
+2025-02-14T23:45:33.142+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:33.150+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@3b8f7c0b
+2025-02-14T23:45:33.151+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] TestDataManager.setupTestData - Result: null
+2025-02-14T23:45:33.152+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:33.156+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:33.169+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:33.173+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:33.461+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] JwtTokenProvider.resolveToken - Args: [org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequest@1f2eb3]
+2025-02-14T23:45:33.462+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] JwtTokenProvider.resolveToken - Result: null
+2025-02-14T23:45:34.042+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] MemberController.login - Args: [com.unicorn.lifesub.member.dto.LoginRequest@7f3964]
+2025-02-14T23:45:34.085+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] MemberServiceImpl.login - Args: [com.unicorn.lifesub.member.dto.LoginRequest@7f3964]
+2025-02-14T23:45:34.110+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.findByUserId - Args: [testuser]
+2025-02-14T23:45:34.183+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:34.200+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:34.213+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.findByUserId - Result: Optional[com.unicorn.lifesub.member.repository.entity.MemberEntity@1d95957c]
+2025-02-14T23:45:34.392+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] JwtTokenProvider.createToken - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@1d95957c1 elements]
+2025-02-14T23:45:34.429+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] JwtTokenProvider.createToken - Result: com.unicorn.lifesub.common.dto.JwtTokenDTO@49c15ad2
+2025-02-14T23:45:34.429+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] MemberServiceImpl.login - Result: com.unicorn.lifesub.common.dto.JwtTokenDTO@49c15ad2
+2025-02-14T23:45:34.443+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] MemberController.login - Result: <200 OK OK,com.unicorn.lifesub.common.dto.ApiResponse@3d2bb013,[]>
+2025-02-14T23:45:35.069+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring TestDispatcherServlet ''
+2025-02-14T23:45:35.072+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.t.web.servlet.TestDispatcherServlet  : Initializing Servlet ''
+2025-02-14T23:45:35.080+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.t.web.servlet.TestDispatcherServlet  : Completed initialization in 7 ms
+2025-02-14T23:45:35.082+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.deleteAll - Args: []
+2025-02-14T23:45:35.102+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0
+2025-02-14T23:45:35.123+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:35.138+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:35.149+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:35.162+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:35.171+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:35.176+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:35.189+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.deleteAll - Result: null
+2025-02-14T23:45:35.196+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] TestDataManager.setupTestData - Args: []
+2025-02-14T23:45:35.198+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.count - Args: []
+2025-02-14T23:45:35.203+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        count(*) 
+    from
+        members me1_0
+Hibernate: 
+    select
+        count(*) 
+    from
+        members me1_0
+2025-02-14T23:45:35.211+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.count - Result: 0
+2025-02-14T23:45:35.492+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@627b9f]
+2025-02-14T23:45:35.551+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:35.604+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@18596d47
+2025-02-14T23:45:35.828+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@2eedd5]
+2025-02-14T23:45:35.830+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:35.836+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@479875b1
+2025-02-14T23:45:35.837+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] TestDataManager.setupTestData - Result: null
+2025-02-14T23:45:35.854+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:35.869+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:35.874+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:35.877+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:35.952+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] JwtTokenProvider.resolveToken - Args: [org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequest@51971d]
+2025-02-14T23:45:35.953+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] JwtTokenProvider.resolveToken - Result: null
+2025-02-14T23:45:35.982+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] MemberController.login - Args: [com.unicorn.lifesub.member.dto.LoginRequest@435ec7]
+2025-02-14T23:45:35.983+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] MemberServiceImpl.login - Args: [com.unicorn.lifesub.member.dto.LoginRequest@435ec7]
+2025-02-14T23:45:35.984+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.findByUserId - Args: [testuser]
+2025-02-14T23:45:36.003+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:36.021+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:36.030+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.findByUserId - Result: Optional[com.unicorn.lifesub.member.repository.entity.MemberEntity@6e0c5743]
+2025-02-14T23:45:36.223+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] JwtTokenProvider.createToken - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@6e0c57431 elements]
+2025-02-14T23:45:36.233+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] JwtTokenProvider.createToken - Result: com.unicorn.lifesub.common.dto.JwtTokenDTO@21f9c71e
+2025-02-14T23:45:36.233+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] MemberServiceImpl.login - Result: com.unicorn.lifesub.common.dto.JwtTokenDTO@21f9c71e
+2025-02-14T23:45:36.240+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] MemberController.login - Result: <200 OK OK,com.unicorn.lifesub.common.dto.ApiResponse@2dc33a2d,[]>
+2025-02-14T23:45:36.290+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] JwtTokenProvider.resolveToken - Args: [org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequest@558035]
+2025-02-14T23:45:36.292+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] JwtTokenProvider.resolveToken - Result: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0dXNlciIsInVzZXJJZCI6InRlc3R1c2VyIiwidXNlck5hbWUiOiJUZXN0IFVzZXIiLCJhdXRoIjpbIlVTRVIiXSwiaWF0IjoxNzM5NTQ0MzM2LCJleHAiOjE3NDMxNDQzMzZ9.KWCTsQpWoPJKfkLLLXWx9xZDahc-dKAGWlt9DS_rrK01jBsqz9dka5l346jf1XCtEfV-4hkRqP0rMI-znOia6A
+2025-02-14T23:45:36.329+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] JwtTokenProvider.validateToken - Args: [eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0dXNlciIsInVzZXJJZCI6InRlc3R1c2VyIiwidXNlck5hbWUiOiJUZXN0IFVzZXIiLCJhdXRoIjpbIlVTRVIiXSwiaWF0IjoxNzM5NTQ0MzM2LCJleHAiOjE3NDMxNDQzMzZ9.KWCTsQpWoPJKfkLLLXWx9xZDahc-dKAGWlt9DS_rrK01jBsqz9dka5l346jf1XCtEfV-4hkRqP0rMI-znOia6A]
+2025-02-14T23:45:36.331+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.l.m.config.jwt.JwtTokenProvider      : ******** validateToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0dXNlciIsInVzZXJJZCI6InRlc3R1c2VyIiwidXNlck5hbWUiOiJUZXN0IFVzZXIiLCJhdXRoIjpbIlVTRVIiXSwiaWF0IjoxNzM5NTQ0MzM2LCJleHAiOjE3NDMxNDQzMzZ9.KWCTsQpWoPJKfkLLLXWx9xZDahc-dKAGWlt9DS_rrK01jBsqz9dka5l346jf1XCtEfV-4hkRqP0rMI-znOia6A
+2025-02-14T23:45:36.428+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] JwtTokenProvider.validateToken - Result: 1
+2025-02-14T23:45:36.444+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] JwtTokenProvider.getAuthentication - Args: [eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0dXNlciIsInVzZXJJZCI6InRlc3R1c2VyIiwidXNlck5hbWUiOiJUZXN0IFVzZXIiLCJhdXRoIjpbIlVTRVIiXSwiaWF0IjoxNzM5NTQ0MzM2LCJleHAiOjE3NDMxNDQzMzZ9.KWCTsQpWoPJKfkLLLXWx9xZDahc-dKAGWlt9DS_rrK01jBsqz9dka5l346jf1XCtEfV-4hkRqP0rMI-znOia6A]
+2025-02-14T23:45:36.456+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] JwtTokenProvider.getAuthentication - Result: UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=testuser, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, CredentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[USER]], Credentials=[PROTECTED], Authenticated=true, Details=null, Granted Authorities=[USER]]
+2025-02-14T23:45:36.495+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] MemberController.logout - Args: [com.unicorn.lifesub.member.dto.LogoutRequest@28fc71]
+2025-02-14T23:45:36.504+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] MemberServiceImpl.logout - Args: [com.unicorn.lifesub.member.dto.LogoutRequest@28fc71]
+2025-02-14T23:45:36.508+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] MemberServiceImpl.logout - Result: com.unicorn.lifesub.member.dto.LogoutResponse@5d88471a
+2025-02-14T23:45:36.510+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] MemberController.logout - Result: <200 OK OK,com.unicorn.lifesub.common.dto.ApiResponse@6a4fb518,[]>
+2025-02-14T23:45:36.666+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring TestDispatcherServlet ''
+2025-02-14T23:45:36.670+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.t.web.servlet.TestDispatcherServlet  : Initializing Servlet ''
+2025-02-14T23:45:36.759+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.t.web.servlet.TestDispatcherServlet  : Completed initialization in 85 ms
+2025-02-14T23:45:36.769+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.deleteAll - Args: []
+2025-02-14T23:45:36.808+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0
+2025-02-14T23:45:36.861+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:36.865+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:36.870+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:36.872+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:36.875+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:36.879+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:36.886+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.deleteAll - Result: null
+2025-02-14T23:45:36.887+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] TestDataManager.setupTestData - Args: []
+2025-02-14T23:45:36.888+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.count - Args: []
+2025-02-14T23:45:36.889+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        count(*) 
+    from
+        members me1_0
+Hibernate: 
+    select
+        count(*) 
+    from
+        members me1_0
+2025-02-14T23:45:36.893+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.count - Result: 0
+2025-02-14T23:45:37.082+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@38dc32]
+2025-02-14T23:45:37.085+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:37.090+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@599fde55
+2025-02-14T23:45:37.250+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@34f344]
+2025-02-14T23:45:37.253+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        r1_0.user_id,
+        r1_0.role,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    left join
+        member_roles r1_0 
+            on me1_0.user_id=r1_0.user_id 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:37.258+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@2b686050
+2025-02-14T23:45:37.258+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] TestDataManager.setupTestData - Result: null
+2025-02-14T23:45:37.262+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:37.266+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:37.268+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:37.270+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:37.278+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] JwtTokenProvider.resolveToken - Args: [org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequest@8b5de]
+2025-02-14T23:45:37.278+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] JwtTokenProvider.resolveToken - Result: null
+2025-02-14T23:45:37.283+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] MemberController.login - Args: [com.unicorn.lifesub.member.dto.LoginRequest@1dba3c]
+2025-02-14T23:45:37.284+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] MemberServiceImpl.login - Args: [com.unicorn.lifesub.member.dto.LoginRequest@1dba3c]
+2025-02-14T23:45:37.284+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [START] $Proxy190.findByUserId - Args: [testuser]
+2025-02-14T23:45:37.286+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:37.290+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:37.293+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] $Proxy190.findByUserId - Result: Optional[com.unicorn.lifesub.member.repository.entity.MemberEntity@7a8ea]
+2025-02-14T23:45:37.442+09:00 ERROR 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [EXCEPTION] MemberServiceImpl.login - Exception: Invalid credentials
+2025-02-14T23:45:37.450+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.lifesub.common.aop.LoggingAspect     : [END] MemberController.login - Result: <401 UNAUTHORIZED Unauthorized,com.unicorn.lifesub.common.dto.ApiResponse@58cce034,[]>
+
+
+
+
+ +
+ + diff --git a/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.integration.controller.MemberControllerIntegrationTest.html b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.integration.controller.MemberControllerIntegrationTest.html new file mode 100644 index 0000000..27286ce --- /dev/null +++ b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.integration.controller.MemberControllerIntegrationTest.html @@ -0,0 +1,151 @@ + + + + + +Test results - MemberControllerIntegrationTest + + + + + +
+

MemberControllerIntegrationTest

+ +
+ + + + + +
+
+ + + + + + + +
+
+
4
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.781s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Tests

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TestMethod nameDurationResult
로그인 실패 테스트 - 잘못된 요청 형식loginFailInvalidRequest()0.110spassed
로그인 성공 테스트loginSuccess()0.060spassed
로그아웃 실패 테스트 - 잘못된 요청 형식logoutFailInvalidRequest()0.060spassed
로그아웃 성공 테스트logoutSuccess()0.551spassed
+
+
+

Standard output

+ +
+  .   ____          _            __ _ _
+ /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
+( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
+ \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
+  '  |____| .__|_| |_|_| |_\__, | / / / /
+ =========|_|==============|___/=/_/_/_/
+
+ :: Spring Boot ::                (v3.4.0)
+
+2025-02-14T23:45:39.822+09:00  INFO 99945 --- [member-service-test] [    Test worker] .m.t.i.c.MemberControllerIntegrationTest : Starting MemberControllerIntegrationTest using Java 18.0.2 with PID 99945 (started by ondal in /Users/ondal/home/workspace/lifesub/member)
+2025-02-14T23:45:39.825+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] .m.t.i.c.MemberControllerIntegrationTest : Running with Spring Boot v3.4.0, Spring v6.2.0
+2025-02-14T23:45:39.825+09:00  INFO 99945 --- [member-service-test] [    Test worker] .m.t.i.c.MemberControllerIntegrationTest : The following 1 profile is active: "integration-test"
+2025-02-14T23:45:40.778+09:00  WARN 99945 --- [member-service-test] [    Test worker] .s.s.UserDetailsServiceAutoConfiguration : 
+
+Using generated security password: 6aa45464-02a7-4558-8a92-e66c40f4756b
+
+This generated password is for development use only. Your security configuration must be updated before running your application in production.
+
+2025-02-14T23:45:40.793+09:00  INFO 99945 --- [member-service-test] [    Test worker] r$InitializeUserDetailsManagerConfigurer : Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager
+2025-02-14T23:45:42.817+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet ''
+2025-02-14T23:45:42.821+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.t.web.servlet.TestDispatcherServlet  : Initializing Servlet ''
+2025-02-14T23:45:42.830+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.t.web.servlet.TestDispatcherServlet  : Completed initialization in 5 ms
+2025-02-14T23:45:42.954+09:00  INFO 99945 --- [member-service-test] [    Test worker] .m.t.i.c.MemberControllerIntegrationTest : Started MemberControllerIntegrationTest in 3.343 seconds (process running for 65.774)
+2025-02-14T23:45:43.628+09:00  WARN 99945 --- [member-service-test] [    Test worker] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public org.springframework.http.ResponseEntity<com.unicorn.lifesub.common.dto.ApiResponse<com.unicorn.lifesub.common.dto.JwtTokenDTO>> com.unicorn.lifesub.member.controller.MemberController.login(com.unicorn.lifesub.member.dto.LoginRequest) with 2 errors: [Field error in object 'loginRequest' on field 'password': rejected value [null]; codes [NotBlank.loginRequest.password,NotBlank.password,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [loginRequest.password,password]; arguments []; default message [password]]; default message [비밀번호는 필수입니다.]] [Field error in object 'loginRequest' on field 'userId': rejected value [null]; codes [NotBlank.loginRequest.userId,NotBlank.userId,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [loginRequest.userId,userId]; arguments []; default message [userId]]; default message [사용자 ID는 필수입니다.]] ]
+2025-02-14T23:45:43.705+09:00  WARN 99945 --- [member-service-test] [    Test worker] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public org.springframework.http.ResponseEntity<com.unicorn.lifesub.common.dto.ApiResponse<com.unicorn.lifesub.member.dto.LogoutResponse>> com.unicorn.lifesub.member.controller.MemberController.logout(com.unicorn.lifesub.member.dto.LogoutRequest): [Field error in object 'logoutRequest' on field 'userId': rejected value [null]; codes [NotBlank.logoutRequest.userId,NotBlank.userId,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [logoutRequest.userId,userId]; arguments []; default message [userId]]; default message [사용자 ID는 필수입니다.]] ]
+
+
+
+
+ +
+ + diff --git a/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest.html b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest.html new file mode 100644 index 0000000..af32ad6 --- /dev/null +++ b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest.html @@ -0,0 +1,526 @@ + + + + + +Test results - MemberRepositoryIntegrationTest + + + + + +
+

MemberRepositoryIntegrationTest

+ +
+ + + + + +
+
+ + + + + + + +
+
+
4
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.625s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Tests

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TestMethod nameDurationResult
회원 삭제 테스트givenExistingMember_whenDelete_thenCannotFind()0.081spassed
회원 정보 업데이트 테스트givenExistingMember_whenUpdateInfo_thenSuccess()0.178spassed
회원 저장 및 조회 테스트givenMemberEntity_whenSave_thenFindByUserId()0.341spassed
존재하지 않는 회원 조회 테스트givenNonExistentUserId_whenFindByUserId_thenReturnEmpty()0.025spassed
+
+
+

Standard output

+ +
2025-02-14T23:45:43.930+09:00  INFO 99945 --- [member-service-test] [    Test worker] t.c.s.AnnotationConfigContextLoaderUtils : Could not detect default configuration classes for test class [com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest]: MemberRepositoryIntegrationTest does not declare any static, non-private, non-final, nested classes annotated with @Configuration.
+2025-02-14T23:45:44.293+09:00  INFO 99945 --- [member-service-test] [    Test worker] .b.t.c.SpringBootTestContextBootstrapper : Found @SpringBootConfiguration com.unicorn.lifesub.member.MemberApplication for test class com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest
+2025-02-14T23:45:44.315+09:00  INFO 99945 --- [member-service-test] [    Test worker] tc.postgres:13.2-alpine                  : Creating container for image: postgres:13.2-alpine
+2025-02-14T23:45:44.451+09:00  INFO 99945 --- [member-service-test] [    Test worker] tc.postgres:13.2-alpine                  : Container postgres:13.2-alpine is starting: 6b79d075221360d24585825bd669f3f2099a36a70cc40b3b166e8fb6762cc3e9
+2025-02-14T23:45:46.654+09:00  INFO 99945 --- [member-service-test] [    Test worker] tc.postgres:13.2-alpine                  : Container postgres:13.2-alpine started in PT2.338311S
+2025-02-14T23:45:46.673+09:00  INFO 99945 --- [member-service-test] [    Test worker] tc.postgres:13.2-alpine                  : Container is started (JDBC URL: jdbc:postgresql://localhost:58666/member?loggerLevel=OFF)
+
+  .   ____          _            __ _ _
+ /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
+( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
+ \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
+  '  |____| .__|_| |_|_| |_\__, | / / / /
+ =========|_|==============|___/=/_/_/_/
+
+ :: Spring Boot ::                (v3.4.0)
+
+2025-02-14T23:45:47.048+09:00  INFO 99945 --- [member-service-test] [    Test worker] .m.t.i.r.MemberRepositoryIntegrationTest : Starting MemberRepositoryIntegrationTest using Java 18.0.2 with PID 99945 (started by ondal in /Users/ondal/home/workspace/lifesub/member)
+2025-02-14T23:45:47.050+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] .m.t.i.r.MemberRepositoryIntegrationTest : Running with Spring Boot v3.4.0, Spring v6.2.0
+2025-02-14T23:45:47.058+09:00  INFO 99945 --- [member-service-test] [    Test worker] .m.t.i.r.MemberRepositoryIntegrationTest : The following 1 profile is active: "integration-test"
+2025-02-14T23:45:48.793+09:00  INFO 99945 --- [member-service-test] [    Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
+2025-02-14T23:45:48.950+09:00  INFO 99945 --- [member-service-test] [    Test worker] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 107 ms. Found 1 JPA repository interface.
+2025-02-14T23:45:49.932+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
+2025-02-14T23:45:49.958+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.h.c.internal.RegionFactoryInitiator    : HHH000026: Second-level cache disabled
+2025-02-14T23:45:50.150+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.s.o.j.p.SpringPersistenceUnitInfo      : No LoadTimeWeaver setup: ignoring JPA class transformer
+2025-02-14T23:45:50.161+09:00  INFO 99945 --- [member-service-test] [    Test worker] com.zaxxer.hikari.HikariDataSource       : HikariPool-2 - Starting...
+2025-02-14T23:45:50.266+09:00  INFO 99945 --- [member-service-test] [    Test worker] com.zaxxer.hikari.pool.HikariPool        : HikariPool-2 - Added connection org.postgresql.jdbc.PgConnection@54210bb8
+2025-02-14T23:45:50.272+09:00  INFO 99945 --- [member-service-test] [    Test worker] com.zaxxer.hikari.HikariDataSource       : HikariPool-2 - Start completed.
+2025-02-14T23:45:50.290+09:00  WARN 99945 --- [member-service-test] [    Test worker] org.hibernate.orm.deprecation            : HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)
+2025-02-14T23:45:50.300+09:00  INFO 99945 --- [member-service-test] [    Test worker] org.hibernate.orm.connections.pooling    : HHH10001005: Database info:
+	Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-2)']
+	Database driver: undefined/unknown
+	Database version: 13.2
+	Autocommit mode: undefined/unknown
+	Isolation level: undefined/unknown
+	Minimum pool size: undefined/unknown
+	Maximum pool size: undefined/unknown
+2025-02-14T23:45:50.938+09:00  INFO 99945 --- [member-service-test] [    Test worker] o.h.e.t.j.p.i.JtaPlatformInitiator       : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
+2025-02-14T23:45:51.157+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    create table member_roles (
+        user_id varchar(255) not null,
+        role varchar(255)
+    )
+Hibernate: 
+    create table member_roles (
+        user_id varchar(255) not null,
+        role varchar(255)
+    )
+2025-02-14T23:45:51.193+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    create table members (
+        user_id varchar(255) not null,
+        created_at timestamp(6),
+        updated_at timestamp(6),
+        password varchar(255) not null,
+        user_name varchar(255) not null,
+        primary key (user_id)
+    )
+Hibernate: 
+    create table members (
+        user_id varchar(255) not null,
+        created_at timestamp(6),
+        updated_at timestamp(6),
+        password varchar(255) not null,
+        user_name varchar(255) not null,
+        primary key (user_id)
+    )
+2025-02-14T23:45:51.224+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    alter table if exists member_roles 
+       add constraint FKkrahbaoj05n0hyabejnnrmft 
+       foreign key (user_id) 
+       references members
+Hibernate: 
+    alter table if exists member_roles 
+       add constraint FKkrahbaoj05n0hyabejnnrmft 
+       foreign key (user_id) 
+       references members
+2025-02-14T23:45:51.242+09:00  INFO 99945 --- [member-service-test] [    Test worker] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
+2025-02-14T23:45:51.723+09:00  INFO 99945 --- [member-service-test] [    Test worker] .m.t.i.r.MemberRepositoryIntegrationTest : Started MemberRepositoryIntegrationTest in 5.01 seconds (process running for 74.544)
+2025-02-14T23:45:51.942+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:51.963+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:52.003+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:52.033+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:52.180+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:52.188+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:52.195+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:52.203+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:52.284+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    update
+        members 
+    set
+        created_at=?,
+        password=?,
+        updated_at=?,
+        user_name=? 
+    where
+        user_id=?
+Hibernate: 
+    update
+        members 
+    set
+        created_at=?,
+        password=?,
+        updated_at=?,
+        user_name=? 
+    where
+        user_id=?
+2025-02-14T23:45:52.312+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:52.318+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:52.367+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:52.394+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+Hibernate: 
+    insert 
+    into
+        members
+        (created_at, password, updated_at, user_name, user_id) 
+    values
+        (?, ?, ?, ?, ?)
+2025-02-14T23:45:52.400+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+Hibernate: 
+    insert 
+    into
+        member_roles
+        (user_id, role) 
+    values
+        (?, ?)
+2025-02-14T23:45:52.404+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+2025-02-14T23:45:52.408+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+Hibernate: 
+    select
+        r1_0.user_id,
+        r1_0.role 
+    from
+        member_roles r1_0 
+    where
+        r1_0.user_id=?
+2025-02-14T23:45:52.437+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        member_roles 
+    where
+        user_id=?
+2025-02-14T23:45:52.444+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+Hibernate: 
+    delete 
+    from
+        members 
+    where
+        user_id=?
+2025-02-14T23:45:52.453+09:00 DEBUG 99945 --- [member-service-test] [    Test worker] org.hibernate.SQL                        : 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+Hibernate: 
+    select
+        me1_0.user_id,
+        me1_0.created_at,
+        me1_0.password,
+        me1_0.updated_at,
+        me1_0.user_name 
+    from
+        members me1_0 
+    where
+        me1_0.user_id=?
+
+
+
+
+ +
+ + diff --git a/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.integration.service.MemberServiceIntegrationTest.html b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.integration.service.MemberServiceIntegrationTest.html new file mode 100644 index 0000000..1ccd244 --- /dev/null +++ b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.integration.service.MemberServiceIntegrationTest.html @@ -0,0 +1,104 @@ + + + + + +Test results - MemberServiceIntegrationTest + + + + + +
+

MemberServiceIntegrationTest

+ +
+ + + + + +
+
+ + + + + + + +
+
+
2
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
1.729s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Tests

+ + + + + + + + + + + + + + + + + + + + + +
TestMethod nameDurationResult
로그아웃 처리 성공givenUserId_whenLogout_thenSuccess()1.518spassed
유효한 자격증명으로 로그인 성공givenValidCredentials_whenLogin_thenReturnJwtToken()0.211spassed
+
+
+ +
+ + diff --git a/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceTest.html b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceUnitTest.html similarity index 88% rename from member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceTest.html rename to member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceUnitTest.html index 9abc6bc..5c5d6a3 100644 --- a/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceTest.html +++ b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceUnitTest.html @@ -3,17 +3,17 @@ -Test results - CustomUserDetailsServiceTest +Test results - CustomUserDetailsServiceUnitTest
-

CustomUserDetailsServiceTest

+

CustomUserDetailsServiceUnitTest

+com.unicorn.lifesub.member.test.unit.config.jwt > CustomUserDetailsServiceUnitTest
@@ -41,7 +41,7 @@ @@ -78,19 +78,19 @@ - + - + - +
-
1.064s
+
0.112s

duration

givenExistingUserId_whenLoadUser_thenReturnUserDetails givenExistingUserId_whenLoadUser_thenReturnUserDetails()0.008s0.007s passed
givenNonExistentUserId_whenLoadUser_thenThrowException givenNonExistentUserId_whenLoadUser_thenThrowException()0.864s0.064s passed
givenUserWithRoles_whenLoadUser_thenMapAuthoritiesCorrectly givenUserWithRoles_whenLoadUser_thenMapAuthoritiesCorrectly()0.192s0.041s passed
@@ -103,7 +103,7 @@
Generated by -Gradle 8.4 at 2025. 2. 14. 오후 4:50:22

+Gradle 8.4 at 2025. 2. 14. 오후 11:46:27

diff --git a/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.config.jwt.JwtTokenProviderUnitTest.html b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.config.jwt.JwtTokenProviderUnitTest.html new file mode 100644 index 0000000..c36d836 --- /dev/null +++ b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.config.jwt.JwtTokenProviderUnitTest.html @@ -0,0 +1,228 @@ + + + + + +Test results - JwtTokenProviderUnitTest + + + + + +
+

JwtTokenProviderUnitTest

+ +
+ + + + + +
+
+ + + + + + + +
+
+
5
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.833s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Tests

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TestMethod nameDurationResult
givenInvalidToken_whenValidate_thenThrowExceptiongivenInvalidToken_whenValidate_thenThrowException()0.119spassed
givenRequest_whenResolveToken_thenSuccessgivenRequest_whenResolveToken_thenSuccess()0.673spassed
givenToken_whenValidate_thenSuccessgivenToken_whenValidate_thenSuccess()0.006spassed
givenValidMember_whenCreateToken_thenSuccessgivenValidMember_whenCreateToken_thenSuccess()0.028spassed
givenValidToken_whenGetAuthentication_thenSuccessgivenValidToken_whenGetAuthentication_thenSuccess()0.007spassed
+
+
+

Standard output

+ +
2025-02-14T23:45:55.728+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.l.m.config.jwt.JwtTokenProvider      : ******** validateToken: invalid-token
+2025-02-14T23:45:55.759+09:00 ERROR 99945 --- [member-service-test] [    Test worker] c.u.l.m.config.jwt.JwtTokenProvider      : Undefined Error: The token was expected to have 3 parts, but got 0.
+
+com.auth0.jwt.exceptions.JWTDecodeException: The token was expected to have 3 parts, but got 0.
+	at com.auth0.jwt.TokenUtils.wrongNumberOfParts(TokenUtils.java:45) ~[java-jwt-4.4.0.jar:4.4.0]
+	at com.auth0.jwt.TokenUtils.splitToken(TokenUtils.java:23) ~[java-jwt-4.4.0.jar:4.4.0]
+	at com.auth0.jwt.JWTDecoder.<init>(JWTDecoder.java:37) ~[java-jwt-4.4.0.jar:4.4.0]
+	at com.auth0.jwt.JWTVerifier.verify(JWTVerifier.java:444) ~[java-jwt-4.4.0.jar:4.4.0]
+	at com.unicorn.lifesub.member.config.jwt.JwtTokenProvider.validateToken(JwtTokenProvider.java:112) ~[main/:na]
+	at com.unicorn.lifesub.member.test.unit.config.jwt.JwtTokenProviderUnitTest.lambda$givenInvalidToken_whenValidate_thenThrowException$0(JwtTokenProviderUnitTest.java:126) ~[test/:na]
+	at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53) ~[junit-jupiter-api-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35) ~[junit-jupiter-api-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3128) ~[junit-jupiter-api-5.11.3.jar:5.11.3]
+	at com.unicorn.lifesub.member.test.unit.config.jwt.JwtTokenProviderUnitTest.givenInvalidToken_whenValidate_thenThrowException(JwtTokenProviderUnitTest.java:126) ~[test/:na]
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
+	at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na]
+	at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:767) ~[junit-platform-commons-1.11.3.jar:1.11.3]
+	at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$8(TestMethodTestDescriptor.java:217) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68) ~[junit-jupiter-engine-5.11.3.jar:5.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:156) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na]
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na]
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.11.3.jar:1.11.3]
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
+	at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
+	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
+	at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
+	at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) ~[junit-platform-launcher-1.8.2.jar:1.8.2]
+	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119) ~[na:na]
+	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94) ~[na:na]
+	at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89) ~[na:na]
+	at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62) ~[na:na]
+	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na]
+	at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na]
+	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) ~[na:na]
+	at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) ~[na:na]
+	at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) ~[na:na]
+	at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) ~[na:na]
+	at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) ~[na:na]
+	at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) ~[na:na]
+	at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) ~[na:na]
+	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) ~[na:na]
+	at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) ~[na:na]
+	at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) ~[na:na]
+	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113) ~[na:na]
+	at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65) ~[na:na]
+	at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) ~[gradle-worker.jar:na]
+	at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) ~[gradle-worker.jar:na]
+
+2025-02-14T23:45:55.832+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.l.m.config.jwt.JwtTokenProvider      : ******** validateToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0VXNlciIsInVzZXJJZCI6InRlc3RVc2VyIiwidXNlck5hbWUiOiJUZXN0IFVzZXIiLCJhdXRoIjpbIlJPTEVfVVNFUiJdLCJpYXQiOjE3Mzk1NDQzNTUsImV4cCI6MTc0MzE0NDM1NX0.mdBFO7WH3XMHafHC6WpEQ-j8D_uNHq8HnxubMgpfIhq6rkIOdOMO0w1iN0gskTyJOgxGAxe8P5LwynLSUO8jEQ
+2025-02-14T23:45:55.859+09:00  INFO 99945 --- [member-service-test] [    Test worker] c.u.l.m.config.jwt.JwtTokenProvider      : ******** validateToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0VXNlciIsImF1dGgiOlsiUk9MRV9VU0VSIl19.s0nwJ9sbCd7YYRCIj2yGgbuNP3KgpZ5SssKSOoo_FDg8mCrxilGVMaiv2gPGq0q0hx_RC413cAeMM-Y4nurEIw
+
+
+
+
+ +
+ + diff --git a/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.domain.MemberUnitTest.html b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.domain.MemberUnitTest.html new file mode 100644 index 0000000..9e8fa30 --- /dev/null +++ b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.domain.MemberUnitTest.html @@ -0,0 +1,116 @@ + + + + + +Test results - MemberUnitTest + + + + + +
+

MemberUnitTest

+ +
+ + + + + +
+
+ + + + + + + +
+
+
4
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.008s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Tests

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TestMethod nameDurationResult
givenMemberDomain_whenConvertToEntity_thenSuccessgivenMemberDomain_whenConvertToEntity_thenSuccess()0.003spassed
givenMemberEntity_whenConvertToDomain_thenSuccessgivenMemberEntity_whenConvertToDomain_thenSuccess()0spassed
givenMemberInfo_whenBuildMember_thenSuccessgivenMemberInfo_whenBuildMember_thenSuccess()0.002spassed
givenMultipleRoles_whenBuildMember_thenSuccessgivenMultipleRoles_whenBuildMember_thenSuccess()0.003spassed
+
+
+ +
+ + diff --git a/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.service.MemberServiceImplUnitTest.html b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.service.MemberServiceImplUnitTest.html new file mode 100644 index 0000000..d0342c8 --- /dev/null +++ b/member/build/reports/tests/test/classes/com.unicorn.lifesub.member.test.unit.service.MemberServiceImplUnitTest.html @@ -0,0 +1,116 @@ + + + + + +Test results - MemberServiceImplUnitTest + + + + + +
+

MemberServiceImplUnitTest

+ +
+ + + + + +
+
+ + + + + + + +
+
+
4
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.055s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Tests

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TestMethod nameDurationResult
givenInvalidPassword_whenLogin_thenThrowExceptiongivenInvalidPassword_whenLogin_thenThrowException()0.017spassed
givenLogoutRequest_whenLogout_thenSuccessgivenLogoutRequest_whenLogout_thenSuccess()0.010spassed
givenNonExistentUser_whenLogin_thenThrowExceptiongivenNonExistentUser_whenLogin_thenThrowException()0.008spassed
givenValidCredentials_whenLogin_thenSuccessgivenValidCredentials_whenLogin_thenSuccess()0.020spassed
+
+
+ +
+ + diff --git a/member/build/reports/tests/test/index.html b/member/build/reports/tests/test/index.html index 514540c..1460df8 100644 --- a/member/build/reports/tests/test/index.html +++ b/member/build/reports/tests/test/index.html @@ -20,7 +20,7 @@
-
3
+
29

tests

@@ -38,7 +38,7 @@
-
1.064s
+
11.231s

duration

@@ -80,12 +80,72 @@ -com.unicorn.lifesub.member.test.unit.config.jwt +com.unicorn.lifesub.member.test.e2e 3 0 0 -1.064s +7.088s +100% + + + +com.unicorn.lifesub.member.test.integration.controller + +4 +0 +0 +0.781s +100% + + + +com.unicorn.lifesub.member.test.integration.repository + +4 +0 +0 +0.625s +100% + + + +com.unicorn.lifesub.member.test.integration.service + +2 +0 +0 +1.729s +100% + + + +com.unicorn.lifesub.member.test.unit.config.jwt + +8 +0 +0 +0.945s +100% + + + +com.unicorn.lifesub.member.test.unit.domain + +4 +0 +0 +0.008s +100% + + + +com.unicorn.lifesub.member.test.unit.service + +4 +0 +0 +0.055s 100% @@ -107,12 +167,82 @@ -com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceTest +com.unicorn.lifesub.member.test.e2e.MemberE2ETest 3 0 0 -1.064s +7.088s +100% + + + +com.unicorn.lifesub.member.test.integration.controller.MemberControllerIntegrationTest + +4 +0 +0 +0.781s +100% + + + +com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest + +4 +0 +0 +0.625s +100% + + + +com.unicorn.lifesub.member.test.integration.service.MemberServiceIntegrationTest + +2 +0 +0 +1.729s +100% + + + +com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceUnitTest + +3 +0 +0 +0.112s +100% + + + +com.unicorn.lifesub.member.test.unit.config.jwt.JwtTokenProviderUnitTest + +5 +0 +0 +0.833s +100% + + + +com.unicorn.lifesub.member.test.unit.domain.MemberUnitTest + +4 +0 +0 +0.008s +100% + + + +com.unicorn.lifesub.member.test.unit.service.MemberServiceImplUnitTest + +4 +0 +0 +0.055s 100% @@ -126,7 +256,7 @@ Generated by -Gradle 8.4 at 2025. 2. 14. 오후 4:50:22

+Gradle 8.4 at 2025. 2. 14. 오후 11:46:27

diff --git a/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.e2e.html b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.e2e.html new file mode 100644 index 0000000..0568bc1 --- /dev/null +++ b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.e2e.html @@ -0,0 +1,103 @@ + + + + + +Test results - Package com.unicorn.lifesub.member.test.e2e + + + + + +
+

Package com.unicorn.lifesub.member.test.e2e

+ +
+ + + + + +
+
+ + + + + + + +
+
+
3
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
7.088s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Classes

+ + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+MemberE2ETest +3007.088s100%
+
+
+ +
+ + diff --git a/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.integration.controller.html b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.integration.controller.html new file mode 100644 index 0000000..afd150e --- /dev/null +++ b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.integration.controller.html @@ -0,0 +1,103 @@ + + + + + +Test results - Package com.unicorn.lifesub.member.test.integration.controller + + + + + +
+

Package com.unicorn.lifesub.member.test.integration.controller

+ +
+ + + + + +
+
+ + + + + + + +
+
+
4
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.781s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Classes

+ + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+MemberControllerIntegrationTest +4000.781s100%
+
+
+ +
+ + diff --git a/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.integration.repository.html b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.integration.repository.html new file mode 100644 index 0000000..4a2f4eb --- /dev/null +++ b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.integration.repository.html @@ -0,0 +1,103 @@ + + + + + +Test results - Package com.unicorn.lifesub.member.test.integration.repository + + + + + +
+

Package com.unicorn.lifesub.member.test.integration.repository

+ +
+ + + + + +
+
+ + + + + + + +
+
+
4
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.625s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Classes

+ + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+MemberRepositoryIntegrationTest +4000.625s100%
+
+
+ +
+ + diff --git a/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.integration.service.html b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.integration.service.html new file mode 100644 index 0000000..15e4733 --- /dev/null +++ b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.integration.service.html @@ -0,0 +1,103 @@ + + + + + +Test results - Package com.unicorn.lifesub.member.test.integration.service + + + + + +
+

Package com.unicorn.lifesub.member.test.integration.service

+ +
+ + + + + +
+
+ + + + + + + +
+
+
2
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
1.729s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Classes

+ + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+MemberServiceIntegrationTest +2001.729s100%
+
+
+ +
+ + diff --git a/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.unit.config.jwt.html b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.unit.config.jwt.html index 7ba68f9..e41653e 100644 --- a/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.unit.config.jwt.html +++ b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.unit.config.jwt.html @@ -22,7 +22,7 @@
-
3
+
8

tests

@@ -40,7 +40,7 @@
-
1.064s
+
0.945s

duration

@@ -78,12 +78,22 @@ -CustomUserDetailsServiceTest +CustomUserDetailsServiceUnitTest 3 0 0 -1.064s +0.112s +100% + + + +JwtTokenProviderUnitTest + +5 +0 +0 +0.833s 100% @@ -96,7 +106,7 @@ Generated by -Gradle 8.4 at 2025. 2. 14. 오후 4:50:22

+Gradle 8.4 at 2025. 2. 14. 오후 11:46:27

diff --git a/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.unit.domain.html b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.unit.domain.html new file mode 100644 index 0000000..863e1b0 --- /dev/null +++ b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.unit.domain.html @@ -0,0 +1,103 @@ + + + + + +Test results - Package com.unicorn.lifesub.member.test.unit.domain + + + + + +
+

Package com.unicorn.lifesub.member.test.unit.domain

+ +
+ + + + + +
+
+ + + + + + + +
+
+
4
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.008s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Classes

+ + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+MemberUnitTest +4000.008s100%
+
+
+ +
+ + diff --git a/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.unit.service.html b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.unit.service.html new file mode 100644 index 0000000..129d480 --- /dev/null +++ b/member/build/reports/tests/test/packages/com.unicorn.lifesub.member.test.unit.service.html @@ -0,0 +1,103 @@ + + + + + +Test results - Package com.unicorn.lifesub.member.test.unit.service + + + + + +
+

Package com.unicorn.lifesub.member.test.unit.service

+ +
+ + + + + +
+
+ + + + + + + +
+
+
4
+

tests

+
+
+
+
0
+

failures

+
+
+
+
0
+

ignored

+
+
+
+
0.055s
+

duration

+
+
+
+
+
+
100%
+

successful

+
+
+
+
+ +
+

Classes

+ + + + + + + + + + + + + + + + + + + +
ClassTestsFailuresIgnoredDurationSuccess rate
+MemberServiceImplUnitTest +4000.055s100%
+
+
+ +
+ + diff --git a/member/build/resources/test/application-e2e-test.yml b/member/build/resources/test/application-e2e-test.yml new file mode 100644 index 0000000..eaf4824 --- /dev/null +++ b/member/build/resources/test/application-e2e-test.yml @@ -0,0 +1,35 @@ +# src/test/resources/application-e2e-test.yml + +spring: + application: + name: member-service-test + jpa: + hibernate: + ddl-auto: create-drop + show-sql: true + properties: + hibernate: + format_sql: true + dialect: org.hibernate.dialect.PostgreSQLDialect + +# JWT 설정 +jwt: + secret-key: testSecretKeyForE2ETestingPurposesOnlyDoNotUseInProduction + access-token-validity: 3600000 # 1시간 + refresh-token-validity: 86400000 # 24시간 + +allowed-origins: http://localhost:3000 + +# 로깅 설정 +logging: + level: + com.unicorn: DEBUG + org.hibernate.SQL: DEBUG + org.hibernate.type.descriptor.sql.BasicBinder: TRACE + +# 테스트용 사용자 설정 +test: + user: + id: testuser + password: Test1234! + name: Test User \ No newline at end of file diff --git a/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.e2e.MemberE2ETest.xml b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.e2e.MemberE2ETest.xml new file mode 100644 index 0000000..c0242e0 --- /dev/null +++ b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.e2e.MemberE2ETest.xml @@ -0,0 +1,1988 @@ + + + + + + + +2025-02-14T23:45:35.069+09:00 INFO 99945 --- [member-service-test] [ Test worker] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring TestDispatcherServlet '' +2025-02-14T23:45:35.072+09:00 INFO 99945 --- [member-service-test] [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-02-14T23:45:35.080+09:00 INFO 99945 --- [member-service-test] [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 7 ms +2025-02-14T23:45:35.082+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] $Proxy190.deleteAll - Args: [] +2025-02-14T23:45:35.102+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 +Hibernate: + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 +2025-02-14T23:45:35.123+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + r1_0.user_id, + r1_0.role + from + member_roles r1_0 + where + r1_0.user_id=? +Hibernate: + select + r1_0.user_id, + r1_0.role + from + member_roles r1_0 + where + r1_0.user_id=? +2025-02-14T23:45:35.138+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + r1_0.user_id, + r1_0.role + from + member_roles r1_0 + where + r1_0.user_id=? +Hibernate: + select + r1_0.user_id, + r1_0.role + from + member_roles r1_0 + where + r1_0.user_id=? +2025-02-14T23:45:35.149+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + delete + from + member_roles + where + user_id=? +Hibernate: + delete + from + member_roles + where + user_id=? +2025-02-14T23:45:35.162+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + delete + from + member_roles + where + user_id=? +Hibernate: + delete + from + member_roles + where + user_id=? +2025-02-14T23:45:35.171+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + delete + from + members + where + user_id=? +Hibernate: + delete + from + members + where + user_id=? +2025-02-14T23:45:35.176+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + delete + from + members + where + user_id=? +Hibernate: + delete + from + members + where + user_id=? +2025-02-14T23:45:35.189+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] $Proxy190.deleteAll - Result: null +2025-02-14T23:45:35.196+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] TestDataManager.setupTestData - Args: [] +2025-02-14T23:45:35.198+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] $Proxy190.count - Args: [] +2025-02-14T23:45:35.203+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + count(*) + from + members me1_0 +Hibernate: + select + count(*) + from + members me1_0 +2025-02-14T23:45:35.211+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] $Proxy190.count - Result: 0 +2025-02-14T23:45:35.492+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@627b9f] +2025-02-14T23:45:35.551+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + r1_0.user_id, + r1_0.role, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 + left join + member_roles r1_0 + on me1_0.user_id=r1_0.user_id + where + me1_0.user_id=? +Hibernate: + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + r1_0.user_id, + r1_0.role, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 + left join + member_roles r1_0 + on me1_0.user_id=r1_0.user_id + where + me1_0.user_id=? +2025-02-14T23:45:35.604+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@18596d47 +2025-02-14T23:45:35.828+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@2eedd5] +2025-02-14T23:45:35.830+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + r1_0.user_id, + r1_0.role, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 + left join + member_roles r1_0 + on me1_0.user_id=r1_0.user_id + where + me1_0.user_id=? +Hibernate: + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + r1_0.user_id, + r1_0.role, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 + left join + member_roles r1_0 + on me1_0.user_id=r1_0.user_id + where + me1_0.user_id=? +2025-02-14T23:45:35.836+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@479875b1 +2025-02-14T23:45:35.837+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] TestDataManager.setupTestData - Result: null +2025-02-14T23:45:35.854+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + insert + into + members + (created_at, password, updated_at, user_name, user_id) + values + (?, ?, ?, ?, ?) +Hibernate: + insert + into + members + (created_at, password, updated_at, user_name, user_id) + values + (?, ?, ?, ?, ?) +2025-02-14T23:45:35.869+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + insert + into + members + (created_at, password, updated_at, user_name, user_id) + values + (?, ?, ?, ?, ?) +Hibernate: + insert + into + members + (created_at, password, updated_at, user_name, user_id) + values + (?, ?, ?, ?, ?) +2025-02-14T23:45:35.874+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + insert + into + member_roles + (user_id, role) + values + (?, ?) +Hibernate: + insert + into + member_roles + (user_id, role) + values + (?, ?) +2025-02-14T23:45:35.877+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + insert + into + member_roles + (user_id, role) + values + (?, ?) +Hibernate: + insert + into + member_roles + (user_id, role) + values + (?, ?) +2025-02-14T23:45:35.952+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] JwtTokenProvider.resolveToken - Args: [org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequest@51971d] +2025-02-14T23:45:35.953+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] JwtTokenProvider.resolveToken - Result: null +2025-02-14T23:45:35.982+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] MemberController.login - Args: [com.unicorn.lifesub.member.dto.LoginRequest@435ec7] +2025-02-14T23:45:35.983+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] MemberServiceImpl.login - Args: [com.unicorn.lifesub.member.dto.LoginRequest@435ec7] +2025-02-14T23:45:35.984+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] $Proxy190.findByUserId - Args: [testuser] +2025-02-14T23:45:36.003+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 + where + me1_0.user_id=? +Hibernate: + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 + where + me1_0.user_id=? +2025-02-14T23:45:36.021+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + r1_0.user_id, + r1_0.role + from + member_roles r1_0 + where + r1_0.user_id=? +Hibernate: + select + r1_0.user_id, + r1_0.role + from + member_roles r1_0 + where + r1_0.user_id=? +2025-02-14T23:45:36.030+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] $Proxy190.findByUserId - Result: Optional[com.unicorn.lifesub.member.repository.entity.MemberEntity@6e0c5743] +2025-02-14T23:45:36.223+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] JwtTokenProvider.createToken - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@6e0c57431 elements] +2025-02-14T23:45:36.233+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] JwtTokenProvider.createToken - Result: com.unicorn.lifesub.common.dto.JwtTokenDTO@21f9c71e +2025-02-14T23:45:36.233+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] MemberServiceImpl.login - Result: com.unicorn.lifesub.common.dto.JwtTokenDTO@21f9c71e +2025-02-14T23:45:36.240+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] MemberController.login - Result: <200 OK OK,com.unicorn.lifesub.common.dto.ApiResponse@2dc33a2d,[]> +2025-02-14T23:45:36.290+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] JwtTokenProvider.resolveToken - Args: [org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequest@558035] +2025-02-14T23:45:36.292+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] JwtTokenProvider.resolveToken - Result: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0dXNlciIsInVzZXJJZCI6InRlc3R1c2VyIiwidXNlck5hbWUiOiJUZXN0IFVzZXIiLCJhdXRoIjpbIlVTRVIiXSwiaWF0IjoxNzM5NTQ0MzM2LCJleHAiOjE3NDMxNDQzMzZ9.KWCTsQpWoPJKfkLLLXWx9xZDahc-dKAGWlt9DS_rrK01jBsqz9dka5l346jf1XCtEfV-4hkRqP0rMI-znOia6A +2025-02-14T23:45:36.329+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] JwtTokenProvider.validateToken - Args: [eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0dXNlciIsInVzZXJJZCI6InRlc3R1c2VyIiwidXNlck5hbWUiOiJUZXN0IFVzZXIiLCJhdXRoIjpbIlVTRVIiXSwiaWF0IjoxNzM5NTQ0MzM2LCJleHAiOjE3NDMxNDQzMzZ9.KWCTsQpWoPJKfkLLLXWx9xZDahc-dKAGWlt9DS_rrK01jBsqz9dka5l346jf1XCtEfV-4hkRqP0rMI-znOia6A] +2025-02-14T23:45:36.331+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.l.m.config.jwt.JwtTokenProvider : ******** validateToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0dXNlciIsInVzZXJJZCI6InRlc3R1c2VyIiwidXNlck5hbWUiOiJUZXN0IFVzZXIiLCJhdXRoIjpbIlVTRVIiXSwiaWF0IjoxNzM5NTQ0MzM2LCJleHAiOjE3NDMxNDQzMzZ9.KWCTsQpWoPJKfkLLLXWx9xZDahc-dKAGWlt9DS_rrK01jBsqz9dka5l346jf1XCtEfV-4hkRqP0rMI-znOia6A +2025-02-14T23:45:36.428+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] JwtTokenProvider.validateToken - Result: 1 +2025-02-14T23:45:36.444+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] JwtTokenProvider.getAuthentication - Args: [eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0dXNlciIsInVzZXJJZCI6InRlc3R1c2VyIiwidXNlck5hbWUiOiJUZXN0IFVzZXIiLCJhdXRoIjpbIlVTRVIiXSwiaWF0IjoxNzM5NTQ0MzM2LCJleHAiOjE3NDMxNDQzMzZ9.KWCTsQpWoPJKfkLLLXWx9xZDahc-dKAGWlt9DS_rrK01jBsqz9dka5l346jf1XCtEfV-4hkRqP0rMI-znOia6A] +2025-02-14T23:45:36.456+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] JwtTokenProvider.getAuthentication - Result: UsernamePasswordAuthenticationToken [Principal=org.springframework.security.core.userdetails.User [Username=testuser, Password=[PROTECTED], Enabled=true, AccountNonExpired=true, CredentialsNonExpired=true, AccountNonLocked=true, Granted Authorities=[USER]], Credentials=[PROTECTED], Authenticated=true, Details=null, Granted Authorities=[USER]] +2025-02-14T23:45:36.495+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] MemberController.logout - Args: [com.unicorn.lifesub.member.dto.LogoutRequest@28fc71] +2025-02-14T23:45:36.504+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] MemberServiceImpl.logout - Args: [com.unicorn.lifesub.member.dto.LogoutRequest@28fc71] +2025-02-14T23:45:36.508+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] MemberServiceImpl.logout - Result: com.unicorn.lifesub.member.dto.LogoutResponse@5d88471a +2025-02-14T23:45:36.510+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] MemberController.logout - Result: <200 OK OK,com.unicorn.lifesub.common.dto.ApiResponse@6a4fb518,[]> +2025-02-14T23:45:36.666+09:00 INFO 99945 --- [member-service-test] [ Test worker] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring TestDispatcherServlet '' +2025-02-14T23:45:36.670+09:00 INFO 99945 --- [member-service-test] [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' +2025-02-14T23:45:36.759+09:00 INFO 99945 --- [member-service-test] [ Test worker] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 85 ms +2025-02-14T23:45:36.769+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] $Proxy190.deleteAll - Args: [] +2025-02-14T23:45:36.808+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 +Hibernate: + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 +2025-02-14T23:45:36.861+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + r1_0.user_id, + r1_0.role + from + member_roles r1_0 + where + r1_0.user_id=? +Hibernate: + select + r1_0.user_id, + r1_0.role + from + member_roles r1_0 + where + r1_0.user_id=? +2025-02-14T23:45:36.865+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + r1_0.user_id, + r1_0.role + from + member_roles r1_0 + where + r1_0.user_id=? +Hibernate: + select + r1_0.user_id, + r1_0.role + from + member_roles r1_0 + where + r1_0.user_id=? +2025-02-14T23:45:36.870+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + delete + from + member_roles + where + user_id=? +Hibernate: + delete + from + member_roles + where + user_id=? +2025-02-14T23:45:36.872+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + delete + from + member_roles + where + user_id=? +Hibernate: + delete + from + member_roles + where + user_id=? +2025-02-14T23:45:36.875+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + delete + from + members + where + user_id=? +Hibernate: + delete + from + members + where + user_id=? +2025-02-14T23:45:36.879+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + delete + from + members + where + user_id=? +Hibernate: + delete + from + members + where + user_id=? +2025-02-14T23:45:36.886+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] $Proxy190.deleteAll - Result: null +2025-02-14T23:45:36.887+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] TestDataManager.setupTestData - Args: [] +2025-02-14T23:45:36.888+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] $Proxy190.count - Args: [] +2025-02-14T23:45:36.889+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + count(*) + from + members me1_0 +Hibernate: + select + count(*) + from + members me1_0 +2025-02-14T23:45:36.893+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] $Proxy190.count - Result: 0 +2025-02-14T23:45:37.082+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@38dc32] +2025-02-14T23:45:37.085+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + r1_0.user_id, + r1_0.role, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 + left join + member_roles r1_0 + on me1_0.user_id=r1_0.user_id + where + me1_0.user_id=? +Hibernate: + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + r1_0.user_id, + r1_0.role, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 + left join + member_roles r1_0 + on me1_0.user_id=r1_0.user_id + where + me1_0.user_id=? +2025-02-14T23:45:37.090+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@599fde55 +2025-02-14T23:45:37.250+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] $Proxy190.save - Args: [com.unicorn.lifesub.member.repository.entity.MemberEntity@34f344] +2025-02-14T23:45:37.253+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + r1_0.user_id, + r1_0.role, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 + left join + member_roles r1_0 + on me1_0.user_id=r1_0.user_id + where + me1_0.user_id=? +Hibernate: + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + r1_0.user_id, + r1_0.role, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 + left join + member_roles r1_0 + on me1_0.user_id=r1_0.user_id + where + me1_0.user_id=? +2025-02-14T23:45:37.258+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] $Proxy190.save - Result: com.unicorn.lifesub.member.repository.entity.MemberEntity@2b686050 +2025-02-14T23:45:37.258+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] TestDataManager.setupTestData - Result: null +2025-02-14T23:45:37.262+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + insert + into + members + (created_at, password, updated_at, user_name, user_id) + values + (?, ?, ?, ?, ?) +Hibernate: + insert + into + members + (created_at, password, updated_at, user_name, user_id) + values + (?, ?, ?, ?, ?) +2025-02-14T23:45:37.266+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + insert + into + members + (created_at, password, updated_at, user_name, user_id) + values + (?, ?, ?, ?, ?) +Hibernate: + insert + into + members + (created_at, password, updated_at, user_name, user_id) + values + (?, ?, ?, ?, ?) +2025-02-14T23:45:37.268+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + insert + into + member_roles + (user_id, role) + values + (?, ?) +Hibernate: + insert + into + member_roles + (user_id, role) + values + (?, ?) +2025-02-14T23:45:37.270+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + insert + into + member_roles + (user_id, role) + values + (?, ?) +Hibernate: + insert + into + member_roles + (user_id, role) + values + (?, ?) +2025-02-14T23:45:37.278+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] JwtTokenProvider.resolveToken - Args: [org.springframework.security.web.header.HeaderWriterFilter$HeaderWriterRequest@8b5de] +2025-02-14T23:45:37.278+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] JwtTokenProvider.resolveToken - Result: null +2025-02-14T23:45:37.283+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] MemberController.login - Args: [com.unicorn.lifesub.member.dto.LoginRequest@1dba3c] +2025-02-14T23:45:37.284+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] MemberServiceImpl.login - Args: [com.unicorn.lifesub.member.dto.LoginRequest@1dba3c] +2025-02-14T23:45:37.284+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [START] $Proxy190.findByUserId - Args: [testuser] +2025-02-14T23:45:37.286+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 + where + me1_0.user_id=? +Hibernate: + select + me1_0.user_id, + me1_0.created_at, + me1_0.password, + me1_0.updated_at, + me1_0.user_name + from + members me1_0 + where + me1_0.user_id=? +2025-02-14T23:45:37.290+09:00 DEBUG 99945 --- [member-service-test] [ Test worker] org.hibernate.SQL : + select + r1_0.user_id, + r1_0.role + from + member_roles r1_0 + where + r1_0.user_id=? +Hibernate: + select + r1_0.user_id, + r1_0.role + from + member_roles r1_0 + where + r1_0.user_id=? +2025-02-14T23:45:37.293+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] $Proxy190.findByUserId - Result: Optional[com.unicorn.lifesub.member.repository.entity.MemberEntity@7a8ea] +2025-02-14T23:45:37.442+09:00 ERROR 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [EXCEPTION] MemberServiceImpl.login - Exception: Invalid credentials +2025-02-14T23:45:37.450+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.lifesub.common.aop.LoggingAspect : [END] MemberController.login - Result: <401 UNAUTHORIZED Unauthorized,com.unicorn.lifesub.common.dto.ApiResponse@58cce034,[]> +]]> + + diff --git a/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.integration.controller.MemberControllerIntegrationTest.xml b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.integration.controller.MemberControllerIntegrationTest.xml new file mode 100644 index 0000000..0638706 --- /dev/null +++ b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.integration.controller.MemberControllerIntegrationTest.xml @@ -0,0 +1,36 @@ + + + + + + + + > com.unicorn.lifesub.member.controller.MemberController.login(com.unicorn.lifesub.member.dto.LoginRequest) with 2 errors: [Field error in object 'loginRequest' on field 'password': rejected value [null]; codes [NotBlank.loginRequest.password,NotBlank.password,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [loginRequest.password,password]; arguments []; default message [password]]; default message [비밀번호는 필수입니다.]] [Field error in object 'loginRequest' on field 'userId': rejected value [null]; codes [NotBlank.loginRequest.userId,NotBlank.userId,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [loginRequest.userId,userId]; arguments []; default message [userId]]; default message [사용자 ID는 필수입니다.]] ] +2025-02-14T23:45:43.705+09:00 WARN 99945 --- [member-service-test] [ Test worker] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MethodArgumentNotValidException: Validation failed for argument [0] in public org.springframework.http.ResponseEntity> com.unicorn.lifesub.member.controller.MemberController.logout(com.unicorn.lifesub.member.dto.LogoutRequest): [Field error in object 'logoutRequest' on field 'userId': rejected value [null]; codes [NotBlank.logoutRequest.userId,NotBlank.userId,NotBlank.java.lang.String,NotBlank]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [logoutRequest.userId,userId]; arguments []; default message [userId]]; default message [사용자 ID는 필수입니다.]] ] +]]> + + diff --git a/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest.xml b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest.xml new file mode 100644 index 0000000..811d032 --- /dev/null +++ b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.integration.repository.MemberRepositoryIntegrationTest.xml @@ -0,0 +1,411 @@ + + + + + + + + + + diff --git a/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.integration.service.MemberServiceIntegrationTest.xml b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.integration.service.MemberServiceIntegrationTest.xml new file mode 100644 index 0000000..b198490 --- /dev/null +++ b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.integration.service.MemberServiceIntegrationTest.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceTest.xml b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceUnitTest.xml similarity index 63% rename from member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceTest.xml rename to member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceUnitTest.xml index 52ead08..2611576 100644 --- a/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceTest.xml +++ b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.config.jwt.CustomUserDetailsServiceUnitTest.xml @@ -1,9 +1,9 @@ - + - - - + + + diff --git a/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.config.jwt.JwtTokenProviderUnitTest.xml b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.config.jwt.JwtTokenProviderUnitTest.xml new file mode 100644 index 0000000..e78396b --- /dev/null +++ b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.config.jwt.JwtTokenProviderUnitTest.xml @@ -0,0 +1,108 @@ + + + + + + + + + (JWTDecoder.java:37) ~[java-jwt-4.4.0.jar:4.4.0] + at com.auth0.jwt.JWTVerifier.verify(JWTVerifier.java:444) ~[java-jwt-4.4.0.jar:4.4.0] + at com.unicorn.lifesub.member.config.jwt.JwtTokenProvider.validateToken(JwtTokenProvider.java:112) ~[main/:na] + at com.unicorn.lifesub.member.test.unit.config.jwt.JwtTokenProviderUnitTest.lambda$givenInvalidToken_whenValidate_thenThrowException$0(JwtTokenProviderUnitTest.java:126) ~[test/:na] + at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53) ~[junit-jupiter-api-5.11.3.jar:5.11.3] + at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35) ~[junit-jupiter-api-5.11.3.jar:5.11.3] + at org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3128) ~[junit-jupiter-api-5.11.3.jar:5.11.3] + at com.unicorn.lifesub.member.test.unit.config.jwt.JwtTokenProviderUnitTest.givenInvalidToken_whenValidate_thenThrowException(JwtTokenProviderUnitTest.java:126) ~[test/:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na] + at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:767) ~[junit-platform-commons-1.11.3.jar:1.11.3] + at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$8(TestMethodTestDescriptor.java:217) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68) ~[junit-jupiter-engine-5.11.3.jar:5.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:156) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) ~[na:na] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:160) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:146) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:144) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:143) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:100) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) ~[junit-platform-engine-1.11.3.jar:1.11.3] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) ~[junit-platform-launcher-1.8.2.jar:1.8.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) ~[junit-platform-launcher-1.8.2.jar:1.8.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) ~[junit-platform-launcher-1.8.2.jar:1.8.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) ~[junit-platform-launcher-1.8.2.jar:1.8.2] + at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) ~[junit-platform-launcher-1.8.2.jar:1.8.2] + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) ~[junit-platform-launcher-1.8.2.jar:1.8.2] + at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) ~[junit-platform-launcher-1.8.2.jar:1.8.2] + at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) ~[junit-platform-launcher-1.8.2.jar:1.8.2] + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119) ~[na:na] + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94) ~[na:na] + at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89) ~[na:na] + at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62) ~[na:na] + at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] + at java.base/java.lang.reflect.Method.invoke(Method.java:577) ~[na:na] + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) ~[na:na] + at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) ~[na:na] + at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) ~[na:na] + at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) ~[na:na] + at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) ~[na:na] + at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) ~[na:na] + at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) ~[na:na] + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113) ~[na:na] + at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65) ~[na:na] + at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) ~[gradle-worker.jar:na] + at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) ~[gradle-worker.jar:na] + +2025-02-14T23:45:55.832+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.l.m.config.jwt.JwtTokenProvider : ******** validateToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0VXNlciIsInVzZXJJZCI6InRlc3RVc2VyIiwidXNlck5hbWUiOiJUZXN0IFVzZXIiLCJhdXRoIjpbIlJPTEVfVVNFUiJdLCJpYXQiOjE3Mzk1NDQzNTUsImV4cCI6MTc0MzE0NDM1NX0.mdBFO7WH3XMHafHC6WpEQ-j8D_uNHq8HnxubMgpfIhq6rkIOdOMO0w1iN0gskTyJOgxGAxe8P5LwynLSUO8jEQ +2025-02-14T23:45:55.859+09:00 INFO 99945 --- [member-service-test] [ Test worker] c.u.l.m.config.jwt.JwtTokenProvider : ******** validateToken: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ0ZXN0VXNlciIsImF1dGgiOlsiUk9MRV9VU0VSIl19.s0nwJ9sbCd7YYRCIj2yGgbuNP3KgpZ5SssKSOoo_FDg8mCrxilGVMaiv2gPGq0q0hx_RC413cAeMM-Y4nurEIw +]]> + + diff --git a/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.domain.MemberUnitTest.xml b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.domain.MemberUnitTest.xml new file mode 100644 index 0000000..1773d09 --- /dev/null +++ b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.domain.MemberUnitTest.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.service.MemberServiceImplUnitTest.xml b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.service.MemberServiceImplUnitTest.xml new file mode 100644 index 0000000..6d692c5 --- /dev/null +++ b/member/build/test-results/test/TEST-com.unicorn.lifesub.member.test.unit.service.MemberServiceImplUnitTest.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/member/build/test-results/test/binary/output.bin b/member/build/test-results/test/binary/output.bin index e69de29..cbef11a 100644 Binary files a/member/build/test-results/test/binary/output.bin and b/member/build/test-results/test/binary/output.bin differ diff --git a/member/build/test-results/test/binary/output.bin.idx b/member/build/test-results/test/binary/output.bin.idx index f76dd23..2cb8745 100644 Binary files a/member/build/test-results/test/binary/output.bin.idx and b/member/build/test-results/test/binary/output.bin.idx differ diff --git a/member/build/test-results/test/binary/results.bin b/member/build/test-results/test/binary/results.bin index aa55725..208a3bc 100644 Binary files a/member/build/test-results/test/binary/results.bin and b/member/build/test-results/test/binary/results.bin differ diff --git a/member/build/tmp/compileJava/previous-compilation-data.bin b/member/build/tmp/compileJava/previous-compilation-data.bin index c0eda13..c1a8a3f 100644 Binary files a/member/build/tmp/compileJava/previous-compilation-data.bin and b/member/build/tmp/compileJava/previous-compilation-data.bin differ diff --git a/member/build/tmp/compileTestJava/previous-compilation-data.bin b/member/build/tmp/compileTestJava/previous-compilation-data.bin index 096f65b..f8f3070 100644 Binary files a/member/build/tmp/compileTestJava/previous-compilation-data.bin and b/member/build/tmp/compileTestJava/previous-compilation-data.bin differ diff --git a/member/src/main/java/com/unicorn/lifesub/member/config/SecurityConfig.java b/member/src/main/java/com/unicorn/lifesub/member/config/SecurityConfig.java index db32ca8..a3c68e7 100644 --- a/member/src/main/java/com/unicorn/lifesub/member/config/SecurityConfig.java +++ b/member/src/main/java/com/unicorn/lifesub/member/config/SecurityConfig.java @@ -1,8 +1,8 @@ package com.unicorn.lifesub.member.config; import com.unicorn.lifesub.member.config.jwt.CustomUserDetailsService; -import com.unicorn.lifesub.member.config.jwt.JwtTokenProvider; import com.unicorn.lifesub.member.config.jwt.JwtAuthenticationFilter; +import com.unicorn.lifesub.member.config.jwt.JwtTokenProvider; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/member/src/main/java/com/unicorn/lifesub/member/controller/MemberController.java b/member/src/main/java/com/unicorn/lifesub/member/controller/MemberController.java index 47884cc..67e9f02 100644 --- a/member/src/main/java/com/unicorn/lifesub/member/controller/MemberController.java +++ b/member/src/main/java/com/unicorn/lifesub/member/controller/MemberController.java @@ -2,12 +2,17 @@ package com.unicorn.lifesub.member.controller; import com.unicorn.lifesub.common.dto.ApiResponse; import com.unicorn.lifesub.common.dto.JwtTokenDTO; -import com.unicorn.lifesub.member.dto.*; +import com.unicorn.lifesub.common.exception.BusinessException; +import com.unicorn.lifesub.common.exception.InfraException; +import com.unicorn.lifesub.member.dto.LoginRequest; +import com.unicorn.lifesub.member.dto.LogoutRequest; +import com.unicorn.lifesub.member.dto.LogoutResponse; import com.unicorn.lifesub.member.service.MemberService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -24,8 +29,18 @@ public class MemberController { @Operation(summary = "로그인", description = "사용자 ID와 비밀번호로 로그인합니다.") @PostMapping("/login") public ResponseEntity> login(@Valid @RequestBody LoginRequest request) { - JwtTokenDTO response = memberService.login(request); - return ResponseEntity.ok(ApiResponse.success(response)); + try { + JwtTokenDTO response = memberService.login(request); + return ResponseEntity.ok(ApiResponse.success(response)); + } catch (BusinessException e) { + return ResponseEntity + .status(HttpStatus.UNAUTHORIZED) + .body(ApiResponse.error(e.getErrorCode())); + } catch (InfraException e) { + return ResponseEntity + .status(HttpStatus.UNAUTHORIZED) + .body(ApiResponse.error(e.getErrorCode())); + } } @Operation(summary = "로그아웃", description = "현재 로그인된 사용자를 로그아웃합니다.") diff --git a/member/src/main/java/com/unicorn/lifesub/member/repository/entity/MemberEntity.java b/member/src/main/java/com/unicorn/lifesub/member/repository/entity/MemberEntity.java index 332495a..b5bff16 100644 --- a/member/src/main/java/com/unicorn/lifesub/member/repository/entity/MemberEntity.java +++ b/member/src/main/java/com/unicorn/lifesub/member/repository/entity/MemberEntity.java @@ -55,4 +55,8 @@ public class MemberEntity extends BaseTimeEntity { .roles(member.getRoles()) .build(); } + + public void updateUserName(String userName) { + this.userName = userName; + } } diff --git a/member/src/main/java/com/unicorn/lifesub/member/service/MemberServiceImpl.java b/member/src/main/java/com/unicorn/lifesub/member/service/MemberServiceImpl.java index a5bae5d..fca8527 100644 --- a/member/src/main/java/com/unicorn/lifesub/member/service/MemberServiceImpl.java +++ b/member/src/main/java/com/unicorn/lifesub/member/service/MemberServiceImpl.java @@ -33,15 +33,15 @@ public class MemberServiceImpl implements MemberService { MemberEntity member = memberRepository.findByUserId(request.getUserId()) .orElseThrow(() -> new InfraException(ErrorCode.MEMBER_NOT_FOUND)); + if (!passwordEncoder.matches(request.getPassword(), member.getPassword())) { + throw new BusinessException(ErrorCode.INVALID_CREDENTIALS); + } + // 사용자의 권한 정보 생성 Collection authorities = member.getRoles().stream() .map(SimpleGrantedAuthority::new) .collect(Collectors.toList()); - if (!passwordEncoder.matches(request.getPassword(), member.getPassword())) { - throw new BusinessException(ErrorCode.INVALID_CREDENTIALS); - } - return jwtTokenProvider.createToken(member, authorities); } diff --git a/member/src/test/java/com/unicorn/lifesub/member/test/e2e/MemberE2ETest.java b/member/src/test/java/com/unicorn/lifesub/member/test/e2e/MemberE2ETest.java new file mode 100644 index 0000000..b2b6258 --- /dev/null +++ b/member/src/test/java/com/unicorn/lifesub/member/test/e2e/MemberE2ETest.java @@ -0,0 +1,144 @@ +package com.unicorn.lifesub.member.test.e2e; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.unicorn.lifesub.common.dto.ApiResponse; +import com.unicorn.lifesub.common.dto.JwtTokenDTO; +import com.unicorn.lifesub.member.dto.LoginRequest; +import com.unicorn.lifesub.member.dto.LogoutRequest; +import com.unicorn.lifesub.member.repository.jpa.MemberRepository; +import com.unicorn.lifesub.member.test.e2e.config.TestContainerConfig; +import com.unicorn.lifesub.member.test.e2e.support.TestDataManager; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.http.MediaType; +import org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.web.reactive.server.WebTestClient; +import org.springframework.test.web.servlet.client.MockMvcWebTestClient; +import org.springframework.web.context.WebApplicationContext; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +@ActiveProfiles("e2e-test") +class MemberE2ETest extends TestContainerConfig { + + @Autowired + private WebApplicationContext context; + + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private TestDataManager testDataManager; + + @Autowired + private MemberRepository memberRepository; + + private WebTestClient webClient; + + @Value("${test.user.id}") + private String TEST_USER_ID; + + @Value("${test.user.password}") + private String TEST_PASSWORD; + + @BeforeEach + void setUp() { + webClient = MockMvcWebTestClient + .bindToApplicationContext(context) + .apply(SecurityMockMvcConfigurers.springSecurity()) + .configureClient() + .build(); + + memberRepository.deleteAll(); + testDataManager.setupTestData(); + } + + @Test + @DisplayName("로그인 성공 시나리오") + void givenValidCredentials_whenLogin_thenSuccess() { + // Given + LoginRequest loginRequest = createLoginRequest(TEST_USER_ID, TEST_PASSWORD); + + // When & Then + webClient.post().uri("/api/auth/login") + .contentType(MediaType.APPLICATION_JSON) + .bodyValue(loginRequest) + .exchange() + .expectStatus().isOk() + .expectBody(ApiResponse.class) + .value(response -> { + assertThat(response.getStatus()).isEqualTo(200); + + JwtTokenDTO jwtToken = objectMapper.convertValue(response.getData(), JwtTokenDTO.class); + assertThat(jwtToken.getAccessToken()).isNotNull(); + assertThat(jwtToken.getRefreshToken()).isNotNull(); + }); + } + + @Test + @DisplayName("잘못된 비밀번호로 로그인 실패 시나리오") + void givenInvalidPassword_whenLogin_thenFail() { + // Given + LoginRequest loginRequest = createLoginRequest(TEST_USER_ID, "wrongpassword"); + + // When & Then + webClient.post().uri("/api/auth/login") + .contentType(MediaType.APPLICATION_JSON) + .bodyValue(loginRequest) + .exchange() + .expectStatus().isUnauthorized() + .expectBody(ApiResponse.class) + .value(response -> { + assertThat(response.getStatus()).isEqualTo(210); + assertThat(response.getMessage()).isEqualTo("Invalid credentials"); + }); + } + + @Test + @DisplayName("로그인 후 로그아웃 시나리오") + void givenValidToken_whenLogout_thenSuccess() { + // Given - 먼저 로그인 + LoginRequest loginRequest = createLoginRequest(TEST_USER_ID, TEST_PASSWORD); + + ApiResponse loginResponse = webClient.post().uri("/api/auth/login") + .contentType(MediaType.APPLICATION_JSON) + .bodyValue(loginRequest) + .exchange() + .expectStatus().isOk() + .expectBody(ApiResponse.class) + .returnResult() + .getResponseBody(); + + JwtTokenDTO tokenDTO = objectMapper.convertValue(loginResponse.getData(), JwtTokenDTO.class); + + // When - 로그아웃 + LogoutRequest logoutRequest = new LogoutRequest(); + logoutRequest.setUserId(TEST_USER_ID); + + // Then + webClient.post().uri("/api/auth/logout") + .contentType(MediaType.APPLICATION_JSON) + .header("Authorization", "Bearer " + tokenDTO.getAccessToken()) + .bodyValue(logoutRequest) + .exchange() + .expectStatus().isOk() + .expectBody(ApiResponse.class) + .value(response -> { + assertThat(response.getStatus()).isEqualTo(200); + assertThat(response.getMessage()).contains("Success"); + }); + } + + private LoginRequest createLoginRequest(String userId, String password) { + LoginRequest request = new LoginRequest(); + request.setUserId(userId); + request.setPassword(password); + return request; + } +} \ No newline at end of file diff --git a/member/src/test/java/com/unicorn/lifesub/member/test/e2e/config/TestContainerConfig.java b/member/src/test/java/com/unicorn/lifesub/member/test/e2e/config/TestContainerConfig.java new file mode 100644 index 0000000..1f138a4 --- /dev/null +++ b/member/src/test/java/com/unicorn/lifesub/member/test/e2e/config/TestContainerConfig.java @@ -0,0 +1,25 @@ +// TestContainerConfig.java +package com.unicorn.lifesub.member.test.e2e.config; + +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; +import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +@Testcontainers +public class TestContainerConfig { + @Container + static PostgreSQLContainer postgreSQLContainer = new PostgreSQLContainer<>("postgres:13.2-alpine") + .withDatabaseName("testdb") + .withUsername("test") + .withPassword("test"); + + @DynamicPropertySource + static void registerPgProperties(DynamicPropertyRegistry registry) { + registry.add("spring.datasource.url", postgreSQLContainer::getJdbcUrl); + registry.add("spring.datasource.username", postgreSQLContainer::getUsername); + registry.add("spring.datasource.password", postgreSQLContainer::getPassword); + registry.add("spring.jpa.hibernate.ddl-auto", () -> "create-drop"); + } +} \ No newline at end of file diff --git a/member/src/test/java/com/unicorn/lifesub/member/test/e2e/support/TestDataManager.java b/member/src/test/java/com/unicorn/lifesub/member/test/e2e/support/TestDataManager.java new file mode 100644 index 0000000..0e3570b --- /dev/null +++ b/member/src/test/java/com/unicorn/lifesub/member/test/e2e/support/TestDataManager.java @@ -0,0 +1,68 @@ +// TestDataManager.java +package com.unicorn.lifesub.member.test.e2e.support; + +import com.unicorn.lifesub.member.repository.entity.MemberEntity; +import com.unicorn.lifesub.member.repository.jpa.MemberRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Component; +import org.springframework.transaction.annotation.Transactional; + +import java.util.HashSet; +import java.util.Set; + +@Component +@RequiredArgsConstructor +public class TestDataManager { + private final MemberRepository memberRepository; + private final PasswordEncoder passwordEncoder; + + @Value("${test.user.id}") + private String TEST_USER_ID; + + @Value("${test.user.password}") + private String TEST_PASSWORD; + + @Value("${test.user.name}") + private String TEST_USER_NAME; + + @Transactional + public void setupTestData() { + if (memberRepository.count() == 0) { + // 기본 테스트 사용자 생성 + createTestUser(); + // 추가 테스트 데이터 생성 + createAdditionalTestData(); + } + } + + private void createTestUser() { + Set userRoles = new HashSet<>(); + userRoles.add("USER"); + + MemberEntity testUser = MemberEntity.builder() + .userId(TEST_USER_ID) + .userName(TEST_USER_NAME) + .password(passwordEncoder.encode(TEST_PASSWORD)) // 암호화된 비밀번호 저장 + .roles(userRoles) + .build(); + + memberRepository.save(testUser); + } + + private void createAdditionalTestData() { + // 계정 잠금 테스트용 사용자 + Set userRoles = new HashSet<>(); + userRoles.add("USER"); + + MemberEntity lockTestUser = MemberEntity.builder() + .userId("locktest") + .userName("Lock Test User") + .password(passwordEncoder.encode("lockpass")) + .roles(userRoles) + .build(); + + memberRepository.save(lockTestUser); + } +} \ No newline at end of file diff --git a/member/src/test/java/com/unicorn/lifesub/member/test/integration/config/TestSecurityConfig.java b/member/src/test/java/com/unicorn/lifesub/member/test/integration/config/TestSecurityConfig.java new file mode 100644 index 0000000..b961987 --- /dev/null +++ b/member/src/test/java/com/unicorn/lifesub/member/test/integration/config/TestSecurityConfig.java @@ -0,0 +1,23 @@ +package com.unicorn.lifesub.member.test.integration.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; +import org.springframework.security.web.SecurityFilterChain; + +@Configuration +@Profile("integration-test") +public class TestSecurityConfig { + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { + http + .csrf(AbstractHttpConfigurer::disable) + .authorizeHttpRequests(auth -> auth + .requestMatchers("/api/auth/**").permitAll() + .anyRequest().authenticated() + ); + return http.build(); + } +} diff --git a/member/src/test/java/com/unicorn/lifesub/member/test/integration/controller/MemberControllerIntegrationTest.java b/member/src/test/java/com/unicorn/lifesub/member/test/integration/controller/MemberControllerIntegrationTest.java new file mode 100644 index 0000000..171c1fe --- /dev/null +++ b/member/src/test/java/com/unicorn/lifesub/member/test/integration/controller/MemberControllerIntegrationTest.java @@ -0,0 +1,179 @@ +package com.unicorn.lifesub.member.test.integration.controller; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.unicorn.lifesub.common.dto.JwtTokenDTO; +import com.unicorn.lifesub.member.controller.MemberController; +import com.unicorn.lifesub.member.dto.LoginRequest; +import com.unicorn.lifesub.member.dto.LogoutRequest; +import com.unicorn.lifesub.member.dto.LogoutResponse; +import com.unicorn.lifesub.member.service.MemberService; +import com.unicorn.lifesub.member.test.integration.config.TestSecurityConfig; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Import; +import org.springframework.http.MediaType; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.mock; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +/** + * MemberController 통합 테스트 클래스 + * 회원 인증 관련 API의 요청/응답을 검증합니다. + * + * @author Tera + * @version 1.0 + */ +@WebMvcTest(MemberController.class) +@Import({MemberControllerIntegrationTest.TestConfig.class, TestSecurityConfig.class}) +@ActiveProfiles("integration-test") +class MemberControllerIntegrationTest { + @Autowired + private MockMvc mockMvc; + + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private MemberService memberService; + + /** + * 테스트를 위한 설정 클래스입니다. + * Controller와 의존성들을 직접 등록하여 테스트 환경을 구성합니다. + * + * @implNote 1. Controller와 필요한 빈들을 직접 등록하여 의존성을 명확히 합니다. + * 2. Service는 Mockito를 통해 mock 객체로 대체하여 테스트를 격리합니다. + */ + @Configuration + static class TestConfig implements WebMvcConfigurer { + + /** + * MemberController 빈을 등록합니다. + * memberService()를 통해 Mock 객체를 주입받아 Controller를 생성합니다. + * + * @return MemberController 인스턴스 + */ + @Bean + public MemberController memberController() { + return new MemberController(memberService()); + } + + /** + * MemberService Mock 객체를 생성하여 반환합니다. + * 실제 Service 구현체 대신 Mock 객체를 사용하여 테스트를 격리합니다. + * + * @return MemberService Mock 객체 + */ + @Bean + public MemberService memberService() { + return mock(MemberService.class); + } + } + + /** + * 로그인 성공 케이스를 테스트합니다. + * 올바른 사용자 ID와 비밀번호로 요청 시 JWT 토큰이 정상적으로 발급되는지 검증합니다. + * + * @throws Exception MockMvc 수행 중 발생할 수 있는 예외 + */ + @Test + @DisplayName("로그인 성공 테스트") + void loginSuccess() throws Exception { + // Given: 테스트에 필요한 요청 데이터와 응답 객체를 준비 + LoginRequest request = new LoginRequest(); + request.setUserId("testUser"); + request.setPassword("testPass"); + + JwtTokenDTO tokenDTO = JwtTokenDTO.builder() + .accessToken("test-access-token") + .refreshToken("test-refresh-token") + .build(); + + given(memberService.login(any(LoginRequest.class))).willReturn(tokenDTO); + + // When & Then: API 호출 결과 검증 + mockMvc.perform(post("/api/auth/login") + .contentType(MediaType.APPLICATION_JSON) + .content(objectMapper.writeValueAsString(request))) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.status").value(200)) + .andExpect(jsonPath("$.data.accessToken").value("test-access-token")) + .andExpect(jsonPath("$.data.refreshToken").value("test-refresh-token")); + } + + /** + * 로그인 실패 케이스를 테스트합니다. + * 잘못된 형식의 요청 데이터로 API 호출 시 적절한 에러 응답이 반환되는지 검증합니다. + * + * @throws Exception MockMvc 수행 중 발생할 수 있는 예외 + */ + @Test + @DisplayName("로그인 실패 테스트 - 잘못된 요청 형식") + void loginFailInvalidRequest() throws Exception { + // Given: 검증에 실패하도록 필수 필드가 비어있는 요청 객체 생성 + LoginRequest request = new LoginRequest(); + + // When & Then: API 호출 결과 검증 + mockMvc.perform(post("/api/auth/login") + .contentType(MediaType.APPLICATION_JSON) + .content(objectMapper.writeValueAsString(request))) + .andExpect(status().isBadRequest()); + } + + /** + * 로그아웃 성공 케이스를 테스트합니다. + * 정상적인 로그아웃 요청 시 성공 응답이 반환되는지 검증합니다. + * + * @throws Exception MockMvc 수행 중 발생할 수 있는 예외 + */ + @Test + @DisplayName("로그아웃 성공 테스트") + void logoutSuccess() throws Exception { + // Given: 테스트에 필요한 요청 데이터와 응답 객체를 준비 + LogoutRequest request = new LogoutRequest(); + request.setUserId("testUser"); + + LogoutResponse response = LogoutResponse.builder() + .message("로그아웃이 완료되었습니다.") + .build(); + + given(memberService.logout(any(LogoutRequest.class))).willReturn(response); + + // When & Then: API 호출 결과 검증 + mockMvc.perform(post("/api/auth/logout") + .contentType(MediaType.APPLICATION_JSON) + .content(objectMapper.writeValueAsString(request))) + .andExpect(status().isOk()) + .andExpect(jsonPath("$.status").value(200)) + .andExpect(jsonPath("$.data.message").value("로그아웃이 완료되었습니다.")); + } + + /** + * 로그아웃 실패 케이스를 테스트합니다. + * 잘못된 형식의 요청 데이터로 API 호출 시 적절한 에러 응답이 반환되는지 검증합니다. + * + * @throws Exception MockMvc 수행 중 발생할 수 있는 예외 + */ + @Test + @DisplayName("로그아웃 실패 테스트 - 잘못된 요청 형식") + void logoutFailInvalidRequest() throws Exception { + // Given: 검증에 실패하도록 필수 필드가 비어있는 요청 객체 생성 + LogoutRequest request = new LogoutRequest(); + + // When & Then: API 호출 결과 검증 + mockMvc.perform(post("/api/auth/logout") + .contentType(MediaType.APPLICATION_JSON) + .content(objectMapper.writeValueAsString(request))) + .andExpect(status().isBadRequest()); + } +} \ No newline at end of file diff --git a/member/src/test/java/com/unicorn/lifesub/member/test/integration/repository/MemberRepositoryIntegrationTest.java b/member/src/test/java/com/unicorn/lifesub/member/test/integration/repository/MemberRepositoryIntegrationTest.java new file mode 100644 index 0000000..0d94e50 --- /dev/null +++ b/member/src/test/java/com/unicorn/lifesub/member/test/integration/repository/MemberRepositoryIntegrationTest.java @@ -0,0 +1,149 @@ +package com.unicorn.lifesub.member.test.integration.repository; + +import com.unicorn.lifesub.member.repository.entity.MemberEntity; +import com.unicorn.lifesub.member.repository.jpa.MemberRepository; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.DynamicPropertyRegistry; +import org.springframework.test.context.DynamicPropertySource; +import org.testcontainers.containers.PostgreSQLContainer; +import org.testcontainers.junit.jupiter.Container; +import org.testcontainers.junit.jupiter.Testcontainers; + +import java.util.HashSet; +import java.util.Optional; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * MemberRepository 통합 테스트 + * TestContainers를 사용하여 실제 PostgreSQL DB와의 상호작용을 테스트합니다. + */ +@DataJpaTest +@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) +@Testcontainers +@ActiveProfiles("integration-test") +class MemberRepositoryIntegrationTest { + @Container + static PostgreSQLContainer postgreSQLContainer = new PostgreSQLContainer<>("postgres:13.2-alpine") + .withDatabaseName("member") + .withUsername("test") + .withPassword("test"); + + @DynamicPropertySource + static void registerPgProperties(DynamicPropertyRegistry registry) { + registry.add("spring.datasource.url", postgreSQLContainer::getJdbcUrl); + registry.add("spring.datasource.username", postgreSQLContainer::getUsername); + registry.add("spring.datasource.password", postgreSQLContainer::getPassword); + } + + @Autowired + private MemberRepository memberRepository; + + @Autowired + private TestEntityManager entityManager; + + @Test + @DisplayName("회원 저장 및 조회 테스트") + void givenMemberEntity_whenSave_thenFindByUserId() { + // Given + String userId = "testUser"; + Set roles = new HashSet<>(); + roles.add("USER"); + + MemberEntity member = MemberEntity.builder() + .userId(userId) + .userName("Test User") + .password("encodedPassword") + .roles(roles) + .build(); + + // When + entityManager.persistAndFlush(member); + entityManager.clear(); // 1차 캐시 클리어 + + // Then + Optional foundMember = memberRepository.findByUserId(userId); + assertThat(foundMember).isPresent(); + assertThat(foundMember.get().getUserId()).isEqualTo(userId); + assertThat(foundMember.get().getUserName()).isEqualTo("Test User"); + assertThat(foundMember.get().getRoles()).containsExactly("USER"); + } + + @Test + @DisplayName("존재하지 않는 회원 조회 테스트") + void givenNonExistentUserId_whenFindByUserId_thenReturnEmpty() { + // Given + String nonExistentUserId = "nonexistent"; + + // When + Optional result = memberRepository.findByUserId(nonExistentUserId); + + // Then + assertThat(result).isEmpty(); + } + + @Test + @DisplayName("회원 정보 업데이트 테스트") + void givenExistingMember_whenUpdateInfo_thenSuccess() { + // Given + String userId = "testUser"; + Set roles = new HashSet<>(); + roles.add("USER"); + + MemberEntity member = MemberEntity.builder() + .userId(userId) + .userName("Original Name") + .password("originalPassword") + .roles(roles) + .build(); + + entityManager.persistAndFlush(member); + entityManager.clear(); + + // When + MemberEntity foundMember = memberRepository.findByUserId(userId).get(); + foundMember.updateUserName("Updated Name"); + entityManager.persistAndFlush(foundMember); + entityManager.clear(); + + // Then + MemberEntity updatedMember = memberRepository.findByUserId(userId).get(); + assertThat(updatedMember.getUserName()).isEqualTo("Updated Name"); + } + + @Test + @DisplayName("회원 삭제 테스트") + void givenExistingMember_whenDelete_thenCannotFind() { + // Given + String userId = "testUser"; + Set roles = new HashSet<>(); + roles.add("USER"); + + MemberEntity member = MemberEntity.builder() + .userId(userId) + .userName("Test User") + .password("password") + .roles(roles) + .build(); + + entityManager.persistAndFlush(member); + entityManager.clear(); + + // When + MemberEntity foundMember = memberRepository.findByUserId(userId).get(); + memberRepository.delete(foundMember); + entityManager.flush(); + entityManager.clear(); + + // Then + Optional deletedMember = memberRepository.findByUserId(userId); + assertThat(deletedMember).isEmpty(); + } +} \ No newline at end of file diff --git a/member/src/test/java/com/unicorn/lifesub/member/test/integration/service/MemberServiceIntegrationTest.java b/member/src/test/java/com/unicorn/lifesub/member/test/integration/service/MemberServiceIntegrationTest.java new file mode 100644 index 0000000..f0b0e27 --- /dev/null +++ b/member/src/test/java/com/unicorn/lifesub/member/test/integration/service/MemberServiceIntegrationTest.java @@ -0,0 +1,87 @@ +package com.unicorn.lifesub.member.test.integration.service; + +import com.unicorn.lifesub.common.dto.JwtTokenDTO; +import com.unicorn.lifesub.member.config.jwt.JwtTokenProvider; +import com.unicorn.lifesub.member.dto.LoginRequest; +import com.unicorn.lifesub.member.dto.LogoutRequest; +import com.unicorn.lifesub.member.dto.LogoutResponse; +import com.unicorn.lifesub.member.repository.entity.MemberEntity; +import com.unicorn.lifesub.member.repository.jpa.MemberRepository; +import com.unicorn.lifesub.member.service.MemberServiceImpl; +import com.unicorn.lifesub.member.test.integration.config.TestSecurityConfig; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.context.annotation.Import; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.test.context.ActiveProfiles; + +import java.util.Optional; + +import static com.unicorn.lifesub.member.test.integration.support.TestDataFactory.*; +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.verify; + +@ExtendWith(MockitoExtension.class) +@Import(TestSecurityConfig.class) +@ActiveProfiles("integration-test") +class MemberServiceIntegrationTest { + + @Mock + private MemberRepository memberRepository; + + @Mock + private PasswordEncoder passwordEncoder; + + @Mock + private JwtTokenProvider jwtTokenProvider; + + @InjectMocks + private MemberServiceImpl memberService; + + @Test + @DisplayName("유효한 자격증명으로 로그인 성공") + void givenValidCredentials_whenLogin_thenReturnJwtToken() { + // Given + LoginRequest loginRequest = createLoginRequest(); + MemberEntity memberEntity = createMemberEntity(); + + given(memberRepository.findByUserId(TEST_USER_ID)).willReturn(Optional.of(memberEntity)); + given(passwordEncoder.matches(TEST_PASSWORD, memberEntity.getPassword())).willReturn(true); + given(jwtTokenProvider.createToken(eq(memberEntity), any())).willReturn( + new JwtTokenDTO("accessToken", "refreshToken")); + + // When + JwtTokenDTO result = memberService.login(loginRequest); + + // Then + assertThat(result).isNotNull(); + assertThat(result.getAccessToken()).isEqualTo("accessToken"); + assertThat(result.getRefreshToken()).isEqualTo("refreshToken"); + + verify(memberRepository).findByUserId(TEST_USER_ID); + verify(passwordEncoder).matches(TEST_PASSWORD, memberEntity.getPassword()); + verify(jwtTokenProvider).createToken(eq(memberEntity), any()); + } + + @Test + @DisplayName("로그아웃 처리 성공") + void givenUserId_whenLogout_thenSuccess() { + // Given + LogoutRequest request = new LogoutRequest(); + request.setUserId(TEST_USER_ID); + + // When + LogoutResponse response = memberService.logout(request); + + // Then + assertThat(response).isNotNull(); + assertThat(response.getMessage()).contains("로그아웃"); + } +} \ No newline at end of file diff --git a/member/src/test/java/com/unicorn/lifesub/member/test/integration/support/TestDataFactory.java b/member/src/test/java/com/unicorn/lifesub/member/test/integration/support/TestDataFactory.java new file mode 100644 index 0000000..fa6f3a8 --- /dev/null +++ b/member/src/test/java/com/unicorn/lifesub/member/test/integration/support/TestDataFactory.java @@ -0,0 +1,32 @@ +package com.unicorn.lifesub.member.test.integration.support; + +import com.unicorn.lifesub.member.repository.entity.MemberEntity; +import com.unicorn.lifesub.member.dto.LoginRequest; + +import java.util.HashSet; +import java.util.Set; + +public class TestDataFactory { + public static final String TEST_USER_ID = "testUser"; + public static final String TEST_PASSWORD = "Password123!"; + public static final String TEST_USERNAME = "Test User"; + + public static MemberEntity createMemberEntity() { + Set roles = new HashSet<>(); + roles.add("ROLE_USER"); + + return MemberEntity.builder() + .userId(TEST_USER_ID) + .userName(TEST_USERNAME) + .password(TEST_PASSWORD) + .roles(roles) + .build(); + } + + public static LoginRequest createLoginRequest() { + LoginRequest request = new LoginRequest(); + request.setUserId(TEST_USER_ID); + request.setPassword(TEST_PASSWORD); + return request; + } +} \ No newline at end of file diff --git a/member/src/test/java/com/unicorn/lifesub/member/test/unit/config/jwt/CustomUserDetailsServiceTest.java b/member/src/test/java/com/unicorn/lifesub/member/test/unit/config/jwt/CustomUserDetailsServiceUnitTest.java similarity index 99% rename from member/src/test/java/com/unicorn/lifesub/member/test/unit/config/jwt/CustomUserDetailsServiceTest.java rename to member/src/test/java/com/unicorn/lifesub/member/test/unit/config/jwt/CustomUserDetailsServiceUnitTest.java index b4490f0..7b04137 100644 --- a/member/src/test/java/com/unicorn/lifesub/member/test/unit/config/jwt/CustomUserDetailsServiceTest.java +++ b/member/src/test/java/com/unicorn/lifesub/member/test/unit/config/jwt/CustomUserDetailsServiceUnitTest.java @@ -25,7 +25,7 @@ import static org.mockito.BDDMockito.given; * Spring Security의 UserDetailsService 구현체 검증 */ @ExtendWith(MockitoExtension.class) -class CustomUserDetailsServiceTest { +class CustomUserDetailsServiceUnitTest { @InjectMocks private CustomUserDetailsService userDetailsService; diff --git a/member/src/test/java/com/unicorn/lifesub/member/test/unit/config/jwt/JwtTokenProviderTest.java b/member/src/test/java/com/unicorn/lifesub/member/test/unit/config/jwt/JwtTokenProviderUnitTest.java similarity index 99% rename from member/src/test/java/com/unicorn/lifesub/member/test/unit/config/jwt/JwtTokenProviderTest.java rename to member/src/test/java/com/unicorn/lifesub/member/test/unit/config/jwt/JwtTokenProviderUnitTest.java index f20b05d..339e6a0 100644 --- a/member/src/test/java/com/unicorn/lifesub/member/test/unit/config/jwt/JwtTokenProviderTest.java +++ b/member/src/test/java/com/unicorn/lifesub/member/test/unit/config/jwt/JwtTokenProviderUnitTest.java @@ -26,7 +26,7 @@ import static org.mockito.Mockito.when; * JWT 토큰 제공자 테스트 클래스 * 토큰 생성, 검증, 파싱 등의 기능을 검증 */ -class JwtTokenProviderTest { +class JwtTokenProviderUnitTest { private JwtTokenProvider jwtTokenProvider; private static final String SECRET_KEY = "test-secret-key"; diff --git a/member/src/test/java/com/unicorn/lifesub/member/test/unit/domain/MemberTest.java b/member/src/test/java/com/unicorn/lifesub/member/test/unit/domain/MemberUnitTest.java similarity index 99% rename from member/src/test/java/com/unicorn/lifesub/member/test/unit/domain/MemberTest.java rename to member/src/test/java/com/unicorn/lifesub/member/test/unit/domain/MemberUnitTest.java index 0a0ef86..0a745e6 100644 --- a/member/src/test/java/com/unicorn/lifesub/member/test/unit/domain/MemberTest.java +++ b/member/src/test/java/com/unicorn/lifesub/member/test/unit/domain/MemberUnitTest.java @@ -14,7 +14,7 @@ import static org.assertj.core.api.Assertions.assertThat; * Member 도메인 객체 테스트 클래스 * 도메인 객체의 생성 및 엔티티 변환 로직을 검증 */ -class MemberTest { +class MemberUnitTest { // 테스트용 상수 정의 private static final String TEST_USER_ID = "testUser"; diff --git a/member/src/test/java/com/unicorn/lifesub/member/test/unit/service/MemberServiceImplTest.java b/member/src/test/java/com/unicorn/lifesub/member/test/unit/service/MemberServiceImplUnitTest.java similarity index 99% rename from member/src/test/java/com/unicorn/lifesub/member/test/unit/service/MemberServiceImplTest.java rename to member/src/test/java/com/unicorn/lifesub/member/test/unit/service/MemberServiceImplUnitTest.java index 43c6f05..755042c 100644 --- a/member/src/test/java/com/unicorn/lifesub/member/test/unit/service/MemberServiceImplTest.java +++ b/member/src/test/java/com/unicorn/lifesub/member/test/unit/service/MemberServiceImplUnitTest.java @@ -33,7 +33,7 @@ import static org.mockito.Mockito.when; * 주요 비즈니스 로직인 로그인/로그아웃 기능을 검증 */ @ExtendWith(MockitoExtension.class) -class MemberServiceImplTest { +class MemberServiceImplUnitTest { @InjectMocks private MemberServiceImpl memberService; diff --git a/member/src/test/resources/application-e2e-test.yml b/member/src/test/resources/application-e2e-test.yml new file mode 100644 index 0000000..eaf4824 --- /dev/null +++ b/member/src/test/resources/application-e2e-test.yml @@ -0,0 +1,35 @@ +# src/test/resources/application-e2e-test.yml + +spring: + application: + name: member-service-test + jpa: + hibernate: + ddl-auto: create-drop + show-sql: true + properties: + hibernate: + format_sql: true + dialect: org.hibernate.dialect.PostgreSQLDialect + +# JWT 설정 +jwt: + secret-key: testSecretKeyForE2ETestingPurposesOnlyDoNotUseInProduction + access-token-validity: 3600000 # 1시간 + refresh-token-validity: 86400000 # 24시간 + +allowed-origins: http://localhost:3000 + +# 로깅 설정 +logging: + level: + com.unicorn: DEBUG + org.hibernate.SQL: DEBUG + org.hibernate.type.descriptor.sql.BasicBinder: TRACE + +# 테스트용 사용자 설정 +test: + user: + id: testuser + password: Test1234! + name: Test User \ No newline at end of file