From 437a7e9ddd9734ab462836558975a09631494ff8 Mon Sep 17 00:00:00 2001 From: jinyoungchoi95 Date: Tue, 12 Oct 2021 16:56:32 +0900 Subject: [PATCH] =?UTF-8?q?[#52]=20test:=20UserService=20findByUsername=20?= =?UTF-8?q?=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user/service/UserServiceTest.java | 33 +++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/src/test/java/com/study/realworld/user/service/UserServiceTest.java b/src/test/java/com/study/realworld/user/service/UserServiceTest.java index 20fee42b..51ceaf80 100644 --- a/src/test/java/com/study/realworld/user/service/UserServiceTest.java +++ b/src/test/java/com/study/realworld/user/service/UserServiceTest.java @@ -181,8 +181,7 @@ void findByIdSuccessTest() { User result = userService.findById(userId); // then - assertThat(result).isNotNull(); - assertThat(result.email()).isEqualTo(user.email()); + assertThat(result).isEqualTo(user); } @Test @@ -212,6 +211,36 @@ void findByNoUserIdFailTest() { .withMessageMatching(ErrorCode.USER_NOT_FOUND.getMessage()); } + @Test + @DisplayName("username를 가지고 유저를 조회할 때 해당 유저가 존재하면 해당 유저를 반환한다.") + void findByUsernameSuccessTest() { + + // setup & given + Username username = Username.of("uesrname"); + User user = User.Builder().email(Email.of("test@test.com")).profile(username, null, null).build(); + when(userRepository.findByProfileUsername(username)).thenReturn(ofNullable(user)); + + // when + User result = userService.findByUsername(username); + + // then + assertThat(result).isEqualTo(user); + } + + @Test + @DisplayName("없는 유저의 username를 가지고 유저를 조회할 때 Exception이 반환되어야 한다.") + void findByNoUserUsesrnameFailTest() { + + // setup & given + Username username = Username.of("username"); + when(userRepository.findByProfileUsername(username)).thenReturn(empty()); + + // when & then + assertThatExceptionOfType(BusinessException.class) + .isThrownBy(() -> userService.findByUsername(username)) + .withMessageMatching(ErrorCode.USER_NOT_FOUND.getMessage()); + } + @Test @DisplayName("없는 유저의 id를 가지고 update 요청 시 exception이 발생되어야 한다.") void updateFailByNotFoundUserTest() {