Skip to content

Commit

Permalink
Merge branch 'develope' of https://github.com/YAPP-Github/Piece-Server
Browse files Browse the repository at this point in the history
…into develope

merge
  • Loading branch information
Lujaec committed Feb 15, 2025
2 parents de5ea0b + e95d765 commit ced4f0d
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 197 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.yapp.core.domain.setting.BlockContactSyncTime;
import org.yapp.core.exception.ApplicationException;
import org.yapp.core.exception.error.code.BlockContactErrorCode;
import org.yapp.domain.setting.dao.BlockContactSyncTimeRepository;
import org.yapp.domain.setting.dto.response.BlockContactSyncTimeResponse;

Expand All @@ -31,9 +29,11 @@ public void saveBlockContactSyncTime(Long userId, LocalDateTime now) {
}

public BlockContactSyncTimeResponse getBlockContactSyncTimeResponse(Long userId) {
BlockContactSyncTime blockContactSyncTime = blockContactSyncTimeRepository.findById(userId)
.orElseThrow(() -> new ApplicationException(
BlockContactErrorCode.BLOCK_SYNC_TIME_NOT_FOUND));
return new BlockContactSyncTimeResponse(blockContactSyncTime.getSyncTime());
Optional<BlockContactSyncTime> blockContactSyncTimeOptional = blockContactSyncTimeRepository.findById(
userId);
return blockContactSyncTimeOptional.map(
blockContactSyncTime -> new BlockContactSyncTimeResponse(
blockContactSyncTime.getSyncTime()))
.orElseGet(() -> new BlockContactSyncTimeResponse(null));
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.test.util.ReflectionTestUtils;
import org.yapp.core.auth.AuthToken;
import org.yapp.core.auth.AuthTokenGenerator;
import org.yapp.core.auth.jwt.JwtUtil;
import org.yapp.core.auth.token.RefreshTokenService;
import org.yapp.core.domain.user.User;
import org.yapp.domain.auth.application.oauth.OauthProvider;
import org.yapp.domain.auth.application.oauth.OauthProviderResolver;
Expand All @@ -24,85 +27,85 @@
@ExtendWith(MockitoExtension.class)
class OauthServiceTest {

@InjectMocks
private OauthService oauthService;
@Mock
private OauthProviderResolver oauthProviderResolver;
@Mock
private JwtUtil jwtUtil;
@Mock
private UserRepository userRepository;
@Mock
private OauthProvider oauthProvider;
@InjectMocks
private OauthService oauthService;
@Mock
private OauthProviderResolver oauthProviderResolver;
@Mock
private JwtUtil jwtUtil;
@Mock
private UserRepository userRepository;
@Mock
private OauthProvider oauthProvider;
@Mock
private AuthTokenGenerator authTokenGenerator;
@Mock
private RefreshTokenService refreshTokenService;

@Test
@DisplayName("처음 로그인에 성공하여 회원가입을 한 뒤 액세스,리프레시 토큰을 반환한다")
void testFirstLogin_Success() {
//given
String providerName = "provider";
String token = "oauth_token";
OauthLoginRequest request = new OauthLoginRequest(providerName, token);
String oauthId = providerName + "123456";
@Test
@DisplayName("처음 로그인에 성공하여 회원가입을 한 뒤 액세스,리프레시 토큰을 반환한다")
void testFirstLogin_Success() {
//given
String providerName = "provider";
String token = "oauth_token";
OauthLoginRequest request = new OauthLoginRequest(providerName, token);
String oauthId = providerName + "123456";

when(oauthProviderResolver.find(providerName)).thenReturn(oauthProvider);
when(oauthProvider.getOAuthProviderUserId(token)).thenReturn("123456");
when(userRepository.findByOauthId(oauthId)).thenReturn(Optional.empty());
User user = User.builder().oauthId(oauthId).build();
ReflectionTestUtils.setField(user, "id", 1L);
when(userRepository.save(any(User.class))).thenReturn(user);
when(jwtUtil.createJwt("access_token", 1L, oauthId, "NONE", 600000L)).thenReturn(
"access_token");
when(jwtUtil.createJwt("refresh_token", 1L, oauthId, "NONE", 864000000L)).thenReturn(
"refresh_token");
when(oauthProviderResolver.find(providerName)).thenReturn(oauthProvider);
when(oauthProvider.getOAuthProviderUserId(token)).thenReturn("123456");
when(userRepository.findByOauthId(oauthId)).thenReturn(Optional.empty());
User user = User.builder().oauthId(oauthId).build();
ReflectionTestUtils.setField(user, "id", 1L);
when(userRepository.save(any(User.class))).thenReturn(user);
when(authTokenGenerator.generate(1L, oauthId, "NONE")).thenReturn(
new AuthToken("access_token", "refresh_token"));

// When
OauthLoginResponse response = oauthService.login(request);
// When
OauthLoginResponse response = oauthService.login(request);

// Then
assertThat(response.getAccessToken()).isEqualTo("access_token");
assertThat(response.getRefreshToken()).isEqualTo("refresh_token");
}
// Then
assertThat(response.getAccessToken()).isEqualTo("access_token");
assertThat(response.getRefreshToken()).isEqualTo("refresh_token");
}

@Test
@DisplayName("존재하지 않는 Provider로 로그인을 요청하여 로그인에 실패한다.")
void testLogin_Failure() {
// Given
String providerName = "nonexistent";
String token = "oauth_token";
OauthLoginRequest request = new OauthLoginRequest(providerName, token);
@Test
@DisplayName("존재하지 않는 Provider로 로그인을 요청하여 로그인에 실패한다.")
void testLogin_Failure() {
// Given
String providerName = "nonexistent";
String token = "oauth_token";
OauthLoginRequest request = new OauthLoginRequest(providerName, token);

// Mocking
when(oauthProviderResolver.find(providerName)).thenThrow(new RuntimeException());
// Mocking
when(oauthProviderResolver.find(providerName)).thenThrow(new RuntimeException());

// When & Then
assertThrows(RuntimeException.class, () -> oauthService.login(request));
}
// When & Then
assertThrows(RuntimeException.class, () -> oauthService.login(request));
}

@Test
@DisplayName("회원가입이 된 상태에서 로그인에 성공하여 액세스, 리프레시 토큰을 반환한다.")
void testNotFirstLogin_Success() {
//given
String providerName = "provider";
String token = "oauth_token";
OauthLoginRequest request = new OauthLoginRequest(providerName, token);
String oauthId = providerName + "123456";
@Test
@DisplayName("회원가입이 된 상태에서 로그인에 성공하여 액세스, 리프레시 토큰을 반환한다.")
void testNotFirstLogin_Success() {
//given
String providerName = "provider";
String token = "oauth_token";
OauthLoginRequest request = new OauthLoginRequest(providerName, token);
String oauthId = providerName + "123456";

when(oauthProviderResolver.find(providerName)).thenReturn(oauthProvider);
when(oauthProvider.getOAuthProviderUserId(token)).thenReturn("123456");
User existingUser = User.builder().oauthId(oauthId).build();
ReflectionTestUtils.setField(existingUser, "id", 1L);
ReflectionTestUtils.setField(existingUser, "role", "member");
when(userRepository.findByOauthId(oauthId)).thenReturn(Optional.of(existingUser));
when(jwtUtil.createJwt("access_token", 1L, oauthId, "member", 600000L)).thenReturn(
"access_token");
when(jwtUtil.createJwt("refresh_token", 1L, oauthId, "member", 864000000L)).thenReturn(
"refresh_token");
when(oauthProviderResolver.find(providerName)).thenReturn(oauthProvider);
when(oauthProvider.getOAuthProviderUserId(token)).thenReturn("123456");
User existingUser = User.builder().oauthId(oauthId).build();
ReflectionTestUtils.setField(existingUser, "id", 1L);
ReflectionTestUtils.setField(existingUser, "role", "member");
when(userRepository.findByOauthId(oauthId)).thenReturn(Optional.of(existingUser));
when(authTokenGenerator.generate(1L, oauthId, "member")).thenReturn(
new AuthToken("access_token", "refresh_token"));

// When
OauthLoginResponse response = oauthService.login(request);
// When
OauthLoginResponse response = oauthService.login(request);

// Then
assertThat(response.getAccessToken()).isEqualTo("access_token");
assertThat(response.getRefreshToken()).isEqualTo("refresh_token");
}
// Then
assertThat(response.getAccessToken()).isEqualTo("access_token");
assertThat(response.getRefreshToken()).isEqualTo("refresh_token");
}
}

0 comments on commit ced4f0d

Please sign in to comment.