diff --git a/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/auth/restclient/dto/KakaoTokenResponse.java b/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/auth/restclient/dto/KakaoTokenResponse.java index 889afeaa..8c4d7f5c 100644 --- a/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/auth/restclient/dto/KakaoTokenResponse.java +++ b/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/auth/restclient/dto/KakaoTokenResponse.java @@ -2,30 +2,11 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -@Setter -@Getter -@NoArgsConstructor -@AllArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) -public class KakaoTokenResponse { - - @JsonProperty("token_type") - private String tokenType; - - @JsonProperty("access_token") - private String accessToken; - - @JsonProperty("expires_in") - private Integer expiresIn; - - @JsonProperty("refresh_token") - private String refreshToken; - - @JsonProperty("refresh_token_expires_in") - private Integer refreshTokenExpiresIn; -} +public record KakaoTokenResponse( + @JsonProperty("token_type") String tokenType, + @JsonProperty("access_token") String accessToken, + @JsonProperty("expires_in") Integer expiresIn, + @JsonProperty("refresh_token") String refreshToken, + @JsonProperty("refresh_token_expires_in") Integer refreshTokenExpiresIn) {} diff --git a/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/auth/restclient/dto/KakaoUserInfoResponse.java b/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/auth/restclient/dto/KakaoUserInfoResponse.java index 5c7c417f..c088880e 100644 --- a/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/auth/restclient/dto/KakaoUserInfoResponse.java +++ b/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/auth/restclient/dto/KakaoUserInfoResponse.java @@ -2,18 +2,12 @@ import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.AllArgsConstructor; -import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.Setter; -@Setter -@Getter -@NoArgsConstructor -@AllArgsConstructor @JsonIgnoreProperties(ignoreUnknown = true) -public class KakaoUserInfoResponse { +public record KakaoUserInfoResponse( + @JsonProperty("id") Long id, @JsonProperty("kakao_account") KakaoAccount kakaoAccount) { - @JsonProperty("id") - Long id; + @JsonIgnoreProperties(ignoreUnknown = true) + public record KakaoAccount( + @JsonProperty("name") String name, @JsonProperty("email") String email) {} } diff --git a/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/auth/service/OauthService.java b/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/auth/service/OauthService.java index 77980a71..08aad9f5 100644 --- a/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/auth/service/OauthService.java +++ b/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/auth/service/OauthService.java @@ -47,30 +47,21 @@ public class OauthService { public Long kakaoLogin(final KakaoLoginCommand command) { final KakaoTokenResponse token = getKakaoToken(command.authorizationCode(), command.redirectUri()); - log.info("kakao 토큰 받아오기 완료"); - final KakaoUserInfoResponse userInfo = getKakaoUserInfo(token.getAccessToken()); - log.info("kakao 사용자 정보 받아오기 완료"); + final KakaoUserInfoResponse userInfo = getKakaoUserInfo(token.accessToken()); - final String oauthId = userInfo.getId().toString(); - final Member member = findKakaoMember(oauthId); - if (member == null) { - return signupKakaoMember(command.authorizationCode()).getId(); - } - return member.getId(); - } - - private Member signupKakaoMember(final String oauthId) { - final Member member = memberRepository.save(Member.create()); - socialAccountRepository.save(SocialAccount.kakaoSignup(oauthId, member)); - return member; - } - - private Member findKakaoMember(final String oauthId) { + final String oauthId = userInfo.id().toString(); return socialAccountRepository .findByOauthIdAndSocialProviderAndDeletedAtIsNull(oauthId, SocialProvider.KAKAO) .map(SocialAccount::getMember) - .filter(member -> member.getDeletedAt() == null) - .orElse(null); + .map( + it -> { + it.updateUserInfo(userInfo.kakaoAccount().name(), userInfo.kakaoAccount().email()); + return it.getId(); + }) + .orElseGet( + () -> + kakaoSignUp( + oauthId, userInfo.kakaoAccount().name(), userInfo.kakaoAccount().email())); } private KakaoUserInfoResponse getKakaoUserInfo(final String accessToken) { @@ -88,6 +79,12 @@ private KakaoTokenResponse getKakaoToken( return kakaoAuthClient.requestToken(params); } + private Long kakaoSignUp(final String oauthId, final String name, final String email) { + final Member member = memberRepository.save(Member.create(name, email)); + socialAccountRepository.save(SocialAccount.kakaoSignup(oauthId, member)); + return member.getId(); + } + @Transactional public Long appleLogin(final AppleLoginCommand command) { AppleIdToken appleIdToken = AppleIdToken.of(command.idToken()); @@ -99,12 +96,7 @@ public Long appleLogin(final AppleLoginCommand command) { authorization.getSub(), SocialProvider.APPLE) .map(account -> account.getMember().getId()) .orElseGet( - () -> { - final Member member = memberRepository.save(Member.create()); - socialAccountRepository.save( - SocialAccount.appleSignUp(authorization.getSub(), member)); - return member.getId(); - }); + () -> appleSignup(authorization.getSub(), command.name(), authorization.getEmail())); } private AppleAuthorization decodeAppleIdTokenPayload(final String appleJwtClaims) { @@ -116,4 +108,10 @@ private AppleAuthorization decodeAppleIdTokenPayload(final String appleJwtClaims throw CustomException.INVALID_APPLE_ID_TOKEN; } } + + private Long appleSignup(final String oauthId, final String name, final String email) { + final Member member = memberRepository.save(Member.create(name, email)); + socialAccountRepository.save(SocialAccount.appleSignUp(oauthId, member)); + return member.getId(); + } } diff --git a/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/member/model/Member.java b/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/member/model/Member.java index b91755a9..db4b8145 100644 --- a/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/member/model/Member.java +++ b/jaknaeso-core/src/main/java/org/nexters/jaknaesocore/domain/member/model/Member.java @@ -19,8 +19,17 @@ public class Member extends BaseTimeEntity { @OneToMany(mappedBy = "member") private List socialAccounts; - public static Member create() { - return new Member(); + private String name; + + private String email; + + private Member(final String name, final String email) { + this.name = name; + this.email = email; + } + + public static Member create(final String name, final String email) { + return new Member(name, email); } public void softDelete() { @@ -29,4 +38,9 @@ public void softDelete() { } super.softDelete(); } + + public void updateUserInfo(final String name, final String email) { + this.name = name; + this.email = email; + } } diff --git a/jaknaeso-core/src/main/resources/sql/037/001_alter_table_member_add_name_col_add_email_col.sql b/jaknaeso-core/src/main/resources/sql/037/001_alter_table_member_add_name_col_add_email_col.sql new file mode 100644 index 00000000..64f2a78c --- /dev/null +++ b/jaknaeso-core/src/main/resources/sql/037/001_alter_table_member_add_name_col_add_email_col.sql @@ -0,0 +1,3 @@ +alter table member + add name varchar(60) + add email varchar(255); \ No newline at end of file diff --git a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/auth/service/OauthServiceIntegrationTest.java b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/auth/service/OauthServiceIntegrationTest.java index ede61328..55d3e3a3 100644 --- a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/auth/service/OauthServiceIntegrationTest.java +++ b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/auth/service/OauthServiceIntegrationTest.java @@ -2,13 +2,21 @@ import static org.assertj.core.api.Assertions.tuple; import static org.assertj.core.api.BDDAssertions.then; +import static org.junit.jupiter.api.Assertions.assertAll; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.BDDMockito.given; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.nexters.jaknaesocore.common.support.IntegrationTest; +import org.nexters.jaknaesocore.domain.auth.restclient.dto.KakaoTokenResponse; +import org.nexters.jaknaesocore.domain.auth.restclient.dto.KakaoUserInfoResponse; +import org.nexters.jaknaesocore.domain.auth.restclient.dto.KakaoUserInfoResponse.KakaoAccount; import org.nexters.jaknaesocore.domain.auth.service.dto.AppleLoginCommand; +import org.nexters.jaknaesocore.domain.auth.service.dto.KakaoLoginCommand; import org.nexters.jaknaesocore.domain.member.model.Member; import org.nexters.jaknaesocore.domain.member.repository.MemberRepository; import org.nexters.jaknaesocore.domain.socialaccount.model.SocialAccount; @@ -30,6 +38,23 @@ void tearDown() { memberRepository.deleteAllInBatch(); } + private SocialAccount createSocialAccount( + final Member member, final String oauthId, final SocialProvider socialProvider) { + return SocialAccountFixture.builder() + .member(member) + .oauthId(oauthId) + .socialProvider(socialProvider) + .build(); + } + + private AppleLoginCommand createAppleLoginCommand(String idToken, String name) { + return new AppleLoginCommand(idToken, name); + } + + private KakaoLoginCommand createKakaoLoginCommand(String authorizationCode, String redirectUri) { + return new KakaoLoginCommand(authorizationCode, redirectUri); + } + @Nested @DisplayName("appleLogin 메소드는 ") class appleLogin { @@ -45,7 +70,10 @@ void shouldSignIn() { "eyJraWQiOiJBSURPRkZDTzJDM05EUVBGQUJDVEFDT1VDU1ZZQUdTR09ZUEJNVU5KS1FEUVFBQUEyTVE2USIsImFsZyI6IlJTMjU2In0.eyJzdWIiOiIwMDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIiLCJhdF9oYXNoIjoiUlZfdkZKZnFhdDBGMmFZdHVQUlNlZyIsImF1ZCI6ImNvbS5leGFtcGxlLmFwcGxpbmUud2ViIiwiYXV0aF90aW1lIjoxNjA1MzcxNTU5LCJpc3MiOiJodHRwczovL2lkLmFwcGxlLmNvbSIsImV4cCI6MTYwNTM3NTE1OSwiaWF0IjoxNjA1MzcxNTU5LCJub25jZSI6Ijc5NDc5NTg4MzA1NDQ2OTQzNiIsImVtYWlsIjoidGVzdEBleGFtcGxlLmNvbSIsImVtYWlsX3ZlcmlmaWVkIjp0cnVlfQ.VkmD8KcTtCmN65DPwhAPoOeRuXmsLqnm1z8pWa_qHG3xD2LBJgj9YOZPUKseOlfrOz5e5JgIR1qPdWiL2QFuyjCQZ0PSG0hV1xtQ_yYbVHeqLaID0AgcV8Hxldg9hFvF_jvM8G_mo0S9-D8gOR4kbQ"; sut.appleLogin(createAppleLoginCommand(idToken, "홍길동")); - then(memberRepository.findAll()).hasSize(1); + then(memberRepository.findAll()) + .hasSize(1) + .extracting("name", "email") + .containsExactly(tuple("홍길동", "test@example.com")); then(socialAccountRepository.findAll()) .hasSize(1) .extracting("oauthId", "socialProvider") @@ -60,7 +88,7 @@ class whenMemberFound { @Test @DisplayName("토큰을 발행한다.") void shouldIssueToken() { - final Member member = memberRepository.save(Member.create()); + final Member member = memberRepository.save(Member.create("홍길동", "hong-gildong@naver.com")); final String oauthId = "001234567890123456789012"; socialAccountRepository.save(createSocialAccount(member, oauthId, SocialProvider.APPLE)); @@ -74,16 +102,58 @@ void shouldIssueToken() { } } - private SocialAccount createSocialAccount( - final Member member, final String oauthId, final SocialProvider socialProvider) { - return SocialAccountFixture.builder() - .member(member) - .oauthId(oauthId) - .socialProvider(socialProvider) - .build(); - } + @Nested + @DisplayName("kakaoLogin 메소드는") + class kakaoLogin { + + @BeforeEach + void setUp() { + given(kakaoAuthClient.requestToken(any())) + .willReturn(new KakaoTokenResponse("bearer", "access token", 1, "refresh token", 1)); + given(kakaoClient.requestUserInfo("Bearer access token")) + .willReturn(new KakaoUserInfoResponse(1L, new KakaoAccount("홍길동", "test@example.com"))); + } - private AppleLoginCommand createAppleLoginCommand(String idToken, String name) { - return new AppleLoginCommand(idToken, name); + @Nested + @DisplayName("id값과 일치하는 유저를 찾지 못하면") + class whenMemberNotFound { + + @Test + @DisplayName("회원가입을 진행한다.") + void shouldSignIn() { + sut.kakaoLogin(createKakaoLoginCommand("카카오 인가 코드", "카카오 로그인 리다이렉트 URI")); + + assertAll( + () -> + then(memberRepository.findAll()) + .hasSize(1) + .extracting("name", "email") + .containsExactly(tuple("홍길동", "test@example.com")), + () -> + then(socialAccountRepository.findAll()) + .hasSize(1) + .extracting("oauthId", "socialProvider") + .containsExactlyInAnyOrder(tuple("1", SocialProvider.KAKAO))); + } + } + + @Nested + @DisplayName("id값과 일치하는 유저를 찾으면") + class whenMemberFound { + + @Test + @DisplayName("로그인을 진행한다.") + void shouldSignIn() { + final Member member = memberRepository.save(Member.create("홍길동", "test@example.com")); + final String oauthId = "1"; + socialAccountRepository.save(createSocialAccount(member, oauthId, SocialProvider.KAKAO)); + + sut.kakaoLogin(createKakaoLoginCommand("카카오 인가 코드", "카카오 로그인 리다이렉트 URI")); + + assertAll( + () -> then(memberRepository.findAll()).hasSize(1), + () -> then(socialAccountRepository.findAll()).hasSize(1)); + } + } } } diff --git a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/auth/service/OauthServiceTest.java b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/auth/service/OauthServiceTest.java deleted file mode 100644 index 3727b0f9..00000000 --- a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/auth/service/OauthServiceTest.java +++ /dev/null @@ -1,116 +0,0 @@ -package org.nexters.jaknaesocore.domain.auth.service; - -import static org.assertj.core.api.BDDAssertions.then; -import static org.assertj.core.api.BDDAssertions.thenThrownBy; -import static org.mockito.ArgumentMatchers.any; -import static org.mockito.BDDMockito.given; -import static org.nexters.jaknaesocore.domain.socialaccount.model.SocialProvider.KAKAO; - -import java.util.Optional; -import org.junit.jupiter.api.Test; -import org.nexters.jaknaesocore.common.support.ServiceTest; -import org.nexters.jaknaesocore.domain.auth.restclient.dto.KakaoTokenResponse; -import org.nexters.jaknaesocore.domain.auth.restclient.dto.KakaoUserInfoResponse; -import org.nexters.jaknaesocore.domain.auth.service.dto.KakaoLoginCommand; -import org.nexters.jaknaesocore.domain.member.model.Member; -import org.nexters.jaknaesocore.domain.socialaccount.model.SocialAccount; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.test.util.ReflectionTestUtils; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.MultiValueMap; -import org.springframework.web.client.RestClientException; - -class OauthServiceTest extends ServiceTest { - - static final String BEARER_PREFIX = "Bearer "; - - @Autowired OauthService oauthService; - - @Test - void 처음_카카오_계정으로_로그인하면_소셜_계정과_멤버를_생성하고_생성한_멤버_아이디를_반환한다() { - Long oauthId = 1L; - Member newMember = createMemberWithId(1L); - SocialAccount newAccount = SocialAccount.kakaoSignup(oauthId.toString(), newMember); - - KakaoLoginCommand command = new KakaoLoginCommand("authorization code", "redirect-uri"); - - given(kakaoAuthClient.requestToken(makeKakaoTokenRequestParams(command.authorizationCode()))) - .willReturn(new KakaoTokenResponse("bearer", "access token", 1, "refresh token", 1)); - given(kakaoClient.requestUserInfo(BEARER_PREFIX + "access token")) - .willReturn(new KakaoUserInfoResponse(oauthId)); - given( - socialAccountRepository.findByOauthIdAndSocialProviderAndDeletedAtIsNull( - oauthId.toString(), KAKAO)) - .willReturn(Optional.empty()); - given(memberRepository.save(any(Member.class))).willReturn(newMember); - given(socialAccountRepository.save(newAccount)).willReturn(newAccount); - - then(oauthService.kakaoLogin(command)).isEqualTo(1L); - } - - @Test - void 카카오_계정으로_로그인하면_소셜_계정으로_멤버를_조회하고_조회한_멤버_아이디를_반환한다() { - Long oauthId = 1L; - Member member = createMemberWithId(1L); - SocialAccount account = createSocialAccountWithOauthIdAndMember(oauthId.toString(), member); - - KakaoLoginCommand command = new KakaoLoginCommand("authorization code", "redirect-uri"); - - given(kakaoAuthClient.requestToken(makeKakaoTokenRequestParams(command.authorizationCode()))) - .willReturn(new KakaoTokenResponse("bearer", "access token", 1, "refresh token", 1)); - given(kakaoClient.requestUserInfo(BEARER_PREFIX + "access token")) - .willReturn(new KakaoUserInfoResponse(oauthId)); - given( - socialAccountRepository.findByOauthIdAndSocialProviderAndDeletedAtIsNull( - oauthId.toString(), KAKAO)) - .willReturn(Optional.of(account)); - - then(oauthService.kakaoLogin(command)).isEqualTo(1L); - } - - @Test - void 카카오_토큰_API_호출에_실패하면_RestClientException를_반환한다() { - KakaoLoginCommand command = new KakaoLoginCommand("authorization code", "redirect-uri"); - - given(kakaoAuthClient.requestToken(makeKakaoTokenRequestParams(command.authorizationCode()))) - .willThrow(RestClientException.class); - - thenThrownBy(() -> oauthService.kakaoLogin(command)).isInstanceOf(RestClientException.class); - } - - @Test - void 카카오_사용자_정보_API_호출에_실패하면_RestClientException를_반환한다() { - KakaoLoginCommand command = new KakaoLoginCommand("authorization code", "redirect-uri"); - - given(kakaoAuthClient.requestToken(makeKakaoTokenRequestParams(command.authorizationCode()))) - .willReturn(new KakaoTokenResponse("bearer", "access token", 1, "refresh token", 1)); - given(kakaoClient.requestUserInfo(BEARER_PREFIX + "access token")) - .willThrow(RestClientException.class); - - thenThrownBy(() -> oauthService.kakaoLogin(command)).isInstanceOf(RestClientException.class); - } - - private Member createMemberWithId(final Long id) { - Member member = Member.create(); - ReflectionTestUtils.setField(member, "id", id); - return member; - } - - private SocialAccount createSocialAccountWithOauthIdAndMember( - final String oauthId, final Member member) { - SocialAccount account = SocialAccount.kakaoSignup(oauthId, member); - ReflectionTestUtils.setField(account, "member", member); - return account; - } - - private MultiValueMap makeKakaoTokenRequestParams( - final String authorizationCode) { - MultiValueMap params = new LinkedMultiValueMap<>(); - params.add("grant_type", "authorization_code"); - params.add("client_id", "client-id"); - params.add("client_secret", "client-secret"); - params.add("code", authorizationCode); - params.add("redirect_uri", "redirect-uri"); - return params; - } -} diff --git a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/member/repository/MemberRepositoryTest.java b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/member/repository/MemberRepositoryTest.java index 4829a264..040975bf 100644 --- a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/member/repository/MemberRepositoryTest.java +++ b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/member/repository/MemberRepositoryTest.java @@ -16,7 +16,7 @@ class MemberRepositoryTest extends RepositoryTest { @Test void 아이디에_해당하는_멤버를_조회한다() { - Member member = memberRepository.save(Member.create()); + Member member = memberRepository.save(Member.create("name", "email")); then(memberRepository.findMember(member.getId())).isEqualTo(member); } diff --git a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/member/service/MemberServiceIntegrationTest.java b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/member/service/MemberServiceIntegrationTest.java index f17c9692..8552c8ca 100644 --- a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/member/service/MemberServiceIntegrationTest.java +++ b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/member/service/MemberServiceIntegrationTest.java @@ -28,7 +28,7 @@ void tearDown() { @Test void 멤버를_삭제한다() { - Member member = memberRepository.save(Member.create()); + Member member = memberRepository.save(Member.create("name", "email")); sut.deleteMember(member.getId()); @@ -39,7 +39,7 @@ void tearDown() { @Test void 멤버_삭제_시_멤버의_소셜_계정도_함께_삭제한다() { - Member member = memberRepository.save(Member.create()); + Member member = memberRepository.save(Member.create("name", "email")); SocialAccount account = socialAccountRepository.save(SocialAccount.kakaoSignup("oauthId1", member)); diff --git a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/socialaccount/repository/SocialAccountRepositoryTest.java b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/socialaccount/repository/SocialAccountRepositoryTest.java index ab6bce85..0751b6f8 100644 --- a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/socialaccount/repository/SocialAccountRepositoryTest.java +++ b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/socialaccount/repository/SocialAccountRepositoryTest.java @@ -19,7 +19,7 @@ class SocialAccountRepositoryTest extends RepositoryTest { @Test void oauthId와_socialProvider에_해당하는_소셜_계정을_조회한다() { - Member member = memberRepository.save(Member.create()); + Member member = memberRepository.save(Member.create("name", "email")); socialAccountRepository.save(SocialAccount.kakaoSignup("oauthId1", member)); Optional actual1 = @@ -34,7 +34,7 @@ class SocialAccountRepositoryTest extends RepositoryTest { @Test void oauthId와_socialProvider에_해당하는_소셜_계정_존재_여부를_조회한다() { - Member member = memberRepository.save(Member.create()); + Member member = memberRepository.save(Member.create("name", "email")); socialAccountRepository.save(SocialAccount.kakaoSignup("oauthId1", member)); boolean actual1 = diff --git a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/survey/model/SurveySubscriptionsTest.java b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/survey/model/SurveySubscriptionsTest.java index bf2b26e8..4d5d195c 100644 --- a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/survey/model/SurveySubscriptionsTest.java +++ b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/survey/model/SurveySubscriptionsTest.java @@ -15,7 +15,7 @@ class SurveySubscriptionsTest { @Test void getSubmittedSurvey() { // given - Member member = Member.create(); + Member member = Member.create("name", "email"); ReflectionTestUtils.setField(member, "id", 1L); SurveyBundle surveyBundle = new SurveyBundle(); @@ -51,10 +51,10 @@ void getSubmittedSurvey() { @Test void getSubmittedSurvey_OtherMember() { // given - Member member1 = Member.create(); + Member member1 = Member.create("name", "email"); ReflectionTestUtils.setField(member1, "id", 1L); - Member member2 = Member.create(); + Member member2 = Member.create("name", "email"); ReflectionTestUtils.setField(member2, "id", 2L); SurveyBundle surveyBundle = new SurveyBundle(); @@ -90,7 +90,7 @@ void getSubmittedSurvey_OtherMember() { @Test void getSubmittedSurvey_Empty() { // given - Member member = Member.create(); + Member member = Member.create("name", "email"); ReflectionTestUtils.setField(member, "id", 1L); // when diff --git a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/survey/repository/SurveySubmissionRepositoryTest.java b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/survey/repository/SurveySubmissionRepositoryTest.java index 0a871a8a..43f07618 100644 --- a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/survey/repository/SurveySubmissionRepositoryTest.java +++ b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/survey/repository/SurveySubmissionRepositoryTest.java @@ -1,6 +1,7 @@ package org.nexters.jaknaesocore.domain.survey.repository; -import static org.assertj.core.api.BDDAssertions.*; +import static org.assertj.core.api.BDDAssertions.then; +import static org.assertj.core.api.BDDAssertions.tuple; import java.math.BigDecimal; import java.util.List; @@ -10,7 +11,12 @@ import org.nexters.jaknaesocore.common.support.IntegrationTest; import org.nexters.jaknaesocore.domain.member.model.Member; import org.nexters.jaknaesocore.domain.member.repository.MemberRepository; -import org.nexters.jaknaesocore.domain.survey.model.*; +import org.nexters.jaknaesocore.domain.survey.model.BalanceSurvey; +import org.nexters.jaknaesocore.domain.survey.model.Keyword; +import org.nexters.jaknaesocore.domain.survey.model.KeywordScore; +import org.nexters.jaknaesocore.domain.survey.model.SurveyBundle; +import org.nexters.jaknaesocore.domain.survey.model.SurveyOption; +import org.nexters.jaknaesocore.domain.survey.model.SurveySubmission; import org.springframework.beans.factory.annotation.Autowired; class SurveySubmissionRepositoryTest extends IntegrationTest { @@ -34,7 +40,7 @@ void tearDown() { @DisplayName("회원이 제출한 설문 ID를 가져온다.") @Test void findByMember_IdAndDeletedAtIsNull() { - Member member = Member.create(); + Member member = Member.create("name", "email"); memberRepository.save(member); SurveyBundle surveyBundle = new SurveyBundle(); surveyBundleRepository.save(surveyBundle); diff --git a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/survey/service/SurveyServiceTest.java b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/survey/service/SurveyServiceTest.java index 727c5912..1f8d5d7c 100644 --- a/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/survey/service/SurveyServiceTest.java +++ b/jaknaeso-core/src/test/java/org/nexters/jaknaesocore/domain/survey/service/SurveyServiceTest.java @@ -1,6 +1,7 @@ package org.nexters.jaknaesocore.domain.survey.service; -import static org.assertj.core.api.BDDAssertions.*; +import static org.assertj.core.api.BDDAssertions.then; +import static org.assertj.core.api.BDDAssertions.tuple; import java.math.BigDecimal; import java.util.List; @@ -11,13 +12,18 @@ import org.nexters.jaknaesocore.domain.member.model.Member; import org.nexters.jaknaesocore.domain.member.repository.MemberRepository; import org.nexters.jaknaesocore.domain.survey.dto.SurveyResponse; -import org.nexters.jaknaesocore.domain.survey.model.*; +import org.nexters.jaknaesocore.domain.survey.model.BalanceSurvey; +import org.nexters.jaknaesocore.domain.survey.model.Keyword; +import org.nexters.jaknaesocore.domain.survey.model.KeywordScore; +import org.nexters.jaknaesocore.domain.survey.model.SurveyBundle; +import org.nexters.jaknaesocore.domain.survey.model.SurveyOption; import org.nexters.jaknaesocore.domain.survey.repository.SurveyBundleRepository; import org.nexters.jaknaesocore.domain.survey.repository.SurveyOptionRepository; import org.nexters.jaknaesocore.domain.survey.repository.SurveyRepository; import org.springframework.beans.factory.annotation.Autowired; class SurveyServiceTest extends IntegrationTest { + @Autowired private SurveyService surveyService; @Autowired private MemberRepository memberRepository; @@ -37,7 +43,7 @@ void tearDown() { @Test void getNextSurvey() { // given - Member member = Member.create(); + Member member = Member.create("name", "email"); memberRepository.save(member); SurveyBundle surveyBundle = new SurveyBundle(); surveyBundleRepository.save(surveyBundle);