diff --git a/src/main/java/com/ceos/bankids/mapper/FamilyMapper.java b/src/main/java/com/ceos/bankids/mapper/FamilyMapper.java index d344648e..09ac55ca 100644 --- a/src/main/java/com/ceos/bankids/mapper/FamilyMapper.java +++ b/src/main/java/com/ceos/bankids/mapper/FamilyMapper.java @@ -23,6 +23,7 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -54,14 +55,19 @@ public FamilyDTO createFamily(User user) { @Transactional(readOnly = true) public FamilyDTO readFamily(User user) { - FamilyUser familyUser = familyUserService.findByUser(user); - Family family = familyUser.getFamily(); - List familyUserList = familyUserService.getFamilyUserListExclude(family, - user); + Optional familyUser = familyUserService.findByUserNullable(user); - return new FamilyDTO(family, familyUserList.stream() - .map(FamilyUserDTO::new) - .collect(Collectors.toList())); + if (familyUser.isEmpty()) { + return new FamilyDTO(new Family(), List.of()); + } else { + Family family = familyUser.get().getFamily(); + List familyUserList = familyUserService.getFamilyUserListExclude(family, + user); + + return new FamilyDTO(family, familyUserList.stream() + .map(FamilyUserDTO::new) + .collect(Collectors.toList())); + } } @Transactional(readOnly = true) diff --git a/src/test/java/com/ceos/bankids/unit/controller/ChallengeControllerTest2.java b/src/test/java/com/ceos/bankids/unit/controller/ChallengeControllerTest2.java index 16e91606..88d15056 100644 --- a/src/test/java/com/ceos/bankids/unit/controller/ChallengeControllerTest2.java +++ b/src/test/java/com/ceos/bankids/unit/controller/ChallengeControllerTest2.java @@ -14,7 +14,6 @@ import com.ceos.bankids.repository.ProgressRepository; import com.ceos.bankids.repository.TargetItemRepository; import com.ceos.bankids.service.ChallengeServiceImpl; -import com.ceos.bankids.service.FamilyServiceImpl; import java.util.Optional; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -112,9 +111,7 @@ public void testIfPostChallengeReqSuccessResponse() { mockProgressRepository, mockCommentRepository ); - FamilyServiceImpl familyService = new FamilyServiceImpl() - - +// FamilyServiceImpl familyService = new FamilyServiceImpl() } } diff --git a/src/test/java/com/ceos/bankids/unit/controller/FamilyControllerTest.java b/src/test/java/com/ceos/bankids/unit/controller/FamilyControllerTest.java index adf42d74..2e76b015 100644 --- a/src/test/java/com/ceos/bankids/unit/controller/FamilyControllerTest.java +++ b/src/test/java/com/ceos/bankids/unit/controller/FamilyControllerTest.java @@ -334,8 +334,8 @@ public void testIfFamilyExistThenReturnGetResult() { } @Test - @DisplayName("조회 시 기존 가족 있으나, 삭제되었을 때 에러 처리 하는지 확인") - public void testIfFamilyExistedButDeletedWhenGetThenThrowBadRequestException() { + @DisplayName("조회 시 기존 가족 없을 때, 빈 가족 정보 리턴 하는지 확인") + public void testIfFamilyNotExistThenReturnResult() { // given User user1 = User.builder() .id(1L) @@ -393,10 +393,13 @@ public void testIfFamilyExistedButDeletedWhenGetThenThrowBadRequestException() { ); FamilyController familyController = new FamilyController(familyMapper); + CommonResponse result = familyController.getFamily(user1); + // then - Assertions.assertThrows(BadRequestException.class, () -> { - familyController.getFamily(user1); - }); + FamilyDTO familyDTO = FamilyDTO.builder() + .family(new Family()) + .familyUserList(List.of()).build(); + Assertions.assertEquals(CommonResponse.onSuccess(familyDTO), result); } @Test