Skip to content

Commit

Permalink
refactor: 범블비 피드백 반영
Browse files Browse the repository at this point in the history
  • Loading branch information
dks301 committed Jul 29, 2020
1 parent 91be890 commit 39fc8c9
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageNotReadableException;
import org.springframework.validation.BindException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;

import com.woowacourse.pelotonbackend.common.exception.BusinessException;
import lombok.extern.slf4j.Slf4j;
Expand All @@ -14,7 +16,7 @@
@Slf4j
public class GlobalExceptionHandler {

@ExceptionHandler(MethodArgumentNotValidException.class)
@ExceptionHandler({MethodArgumentNotValidException.class, MethodArgumentTypeMismatchException.class})
protected ResponseEntity<ErrorResponse> validException(final MethodArgumentNotValidException exception) {
log.error("Validate Exception ! ", exception);

Expand All @@ -39,6 +41,18 @@ protected ResponseEntity<ErrorResponse> bindException(final BindException except
return new ResponseEntity<>(errorResponse, HttpStatus.valueOf(errorCode.getStatus()));
}

@ExceptionHandler(HttpMessageNotReadableException.class)
protected ResponseEntity<ErrorResponse> HttpMessageNotReadableException(
final HttpMessageNotReadableException exception) {
log.error("HttpMessageNotReadable Exception !", exception);

final ErrorCode errorCode = ErrorCode.INVALID_VALIDATE;
final ErrorResponse errorResponse = ErrorResponse.of(errorCode.getStatus(), errorCode.getCode(),
exception.getMessage());

return new ResponseEntity<>(errorResponse, HttpStatus.valueOf(errorCode.getStatus()));
}

@ExceptionHandler(BusinessException.class)
protected ResponseEntity<ErrorResponse> businessException(final BusinessException exception) {
log.error("Business Exception ! ", exception);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,22 @@
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.boot.test.autoconfigure.web.reactive.AutoConfigureWebTestClient;

import com.woowacourse.pelotonbackend.common.exception.MemberNotFoundException;
import com.woowacourse.pelotonbackend.member.infra.KakaoAPIService;
import com.woowacourse.pelotonbackend.member.infra.dto.KakaoTokenResponse;
import com.woowacourse.pelotonbackend.member.infra.dto.KakaoUserResponse;
import com.woowacourse.pelotonbackend.member.presentation.dto.MemberCreateRequest;
import com.woowacourse.pelotonbackend.support.JwtTokenProvider;
import com.woowacourse.pelotonbackend.support.RandomGenerator;
import com.woowacourse.pelotonbackend.support.dto.JwtTokenResponse;
import reactor.core.publisher.Mono;

@ExtendWith(MockitoExtension.class)
@AutoConfigureWebTestClient
class LoginServiceTest {
private LoginService loginService;

@Mock
private KakaoAPIService kakaoAPIService;
private LoginAPIService<KakaoTokenResponse, KakaoUserResponse> kakaoAPIService;

@Mock
private MemberService memberService;
Expand Down Expand Up @@ -55,7 +53,7 @@ void createCodeUrlTest() {
@Test
void createJwtTokenUrlTest() {
when(kakaoAPIService.createTokenUrl(any(JwtTokenResponse.class))).thenReturn(URL);
when(kakaoAPIService.fetchOAuthToken(anyString())).thenReturn(Mono.just(createMockKakaoTokenResponse()));
when(kakaoAPIService.fetchOAuthToken(CODE_VALUE)).thenReturn(Mono.just(createMockKakaoTokenResponse()));
when(kakaoAPIService.fetchUserInfo(any(KakaoTokenResponse.class))).thenReturn(
Mono.just(createMockKakaoUserResponse()));
when(memberService.findByKakaoId(anyLong())).thenReturn(createMockMemberResponse());
Expand All @@ -68,7 +66,7 @@ void createJwtTokenUrlTest() {
@Test
void createJwtTokenUrlTest2() {
when(kakaoAPIService.createTokenUrl(any(JwtTokenResponse.class))).thenReturn(URL);
when(kakaoAPIService.fetchOAuthToken(anyString())).thenReturn(Mono.just(createMockKakaoTokenResponse()));
when(kakaoAPIService.fetchOAuthToken(CODE_VALUE)).thenReturn(Mono.just(createMockKakaoTokenResponse()));
when(kakaoAPIService.fetchUserInfo(any(KakaoTokenResponse.class))).thenReturn(
Mono.just(createMockKakaoUserResponse()));
when(memberService.findByKakaoId(anyLong())).thenThrow(MemberNotFoundException.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,11 +58,11 @@ void resolveArgumentTest() {
assertThat(memberResponse).isEqualToComparingFieldByField(createWithId(ID));
}

@DisplayName("kakaoId 정보가 없을 때 빈 멤버를 리턴한다.")
@DisplayName("kakaoId 정보가 없을 때 AssertionError로 예외처리한다.")
@Test
void resolveArgumentTest3() {
final MemberResponse memberResponse = loginMemberArgumentResolver.resolveArgument(methodParameter, null,
servletWebRequest, null);
assertThat(memberResponse).isEqualToComparingFieldByField(Member.builder().build());
assertThatThrownBy(() -> loginMemberArgumentResolver.resolveArgument(methodParameter, null,
servletWebRequest, null)).isInstanceOf(AssertionError.class)
.hasMessageContaining("Can not found 'loginMemberKakaoId");
}
}

0 comments on commit 39fc8c9

Please sign in to comment.