-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
102 additions
and
152 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -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("홍길동", "[email protected]")); | ||
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("홍길동", "[email protected]")); | ||
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("홍길동", "[email protected]"))); | ||
} | ||
|
||
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("홍길동", "[email protected]")), | ||
() -> | ||
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("홍길동", "[email protected]")); | ||
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)); | ||
} | ||
} | ||
} | ||
} |
117 changes: 0 additions & 117 deletions
117
...eso-core/src/test/java/org/nexters/jaknaesocore/domain/auth/service/OauthServiceTest.java
This file was deleted.
Oops, something went wrong.