From fba84516d343b1fb9c44a57e9527fc95037b7892 Mon Sep 17 00:00:00 2001 From: jihyeon baek Date: Sat, 13 Jul 2024 23:14:10 +0900 Subject: [PATCH] =?UTF-8?q?test:=20=EB=A9=A4=EB=B2=84=20=EC=84=9C=EB=B9=84?= =?UTF-8?q?=EC=8A=A4=20=ED=85=8C=EC=8A=A4=ED=8A=B8=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=9E=91=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../integration/member/MemberServiceTest.java | 167 ++++++++++++++++++ 1 file changed, 167 insertions(+) create mode 100644 src/test/java/com/example/fiurinee/integration/member/MemberServiceTest.java diff --git a/src/test/java/com/example/fiurinee/integration/member/MemberServiceTest.java b/src/test/java/com/example/fiurinee/integration/member/MemberServiceTest.java new file mode 100644 index 0000000..d4016e7 --- /dev/null +++ b/src/test/java/com/example/fiurinee/integration/member/MemberServiceTest.java @@ -0,0 +1,167 @@ +package com.example.fiurinee.integration.member; + +import com.example.fiurinee.domain.member.dto.MemberResponseDTO; +import com.example.fiurinee.domain.member.entity.Member; +import com.example.fiurinee.domain.member.repository.MemberRepository; +import com.example.fiurinee.domain.member.service.MemberService; +import com.example.fiurinee.domain.recommendFlower.entity.RecommendFlower; +import com.example.fiurinee.global.exception.CustomException; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import java.util.List; +import java.util.Optional; +import java.util.ArrayList; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.Mockito.*; + +public class MemberServiceTest { + @Mock + private MemberRepository memberRepository; + + @InjectMocks + private MemberService memberService; + + @BeforeEach + void setUp() { + MockitoAnnotations.openMocks(this); + } + + @Test + void testFindById() { + // Given + Long id = 1L; + Member member = Member.builder() + .name("백지현") + .build(); + + when(memberRepository.findById(id)).thenReturn(Optional.of(member)); + + // When + Member foundMember = memberService.findById(id); + + // Then + assertThat(foundMember).isNotNull(); + assertThat(foundMember).isEqualTo(member); + } + + @Test + void testFindByIdThrowsException() { + // Given + Long id = 1L; + when(memberRepository.findById(id)).thenReturn(Optional.empty()); + + // When & Then + assertThrows(CustomException.class, () -> memberService.findById(id)); + } + + @Test + void testDeleteMember() { + // Given + Long id = 1L; + Member member = Member.builder() + .name("백지현") + .build(); + + when(memberRepository.findById(id)).thenReturn(Optional.of(member)); + doNothing().when(memberRepository).delete(member); + + // When + Boolean result = memberService.deleteMember(id); + + // Then + assertThat(result).isTrue(); + verify(memberRepository, times(1)).delete(member); + } + + @Test + void testDeleteMemberThrowsException() { + // Given + Long id = 1L; + when(memberRepository.findById(id)).thenReturn(Optional.empty()); + + // When & Then + assertThrows(CustomException.class, () -> memberService.deleteMember(id)); + } + + @Test + void testGetMemberDtoById() { + // Given + Long id = 1L; + Member member = Member.builder() + .name("백지현") + .build(); + member.setAnniversaries(new ArrayList<>()); // 초기화 추가 + member.setRecommendFlowers(new ArrayList<>()); // 초기화 추가 + + when(memberRepository.findById(id)).thenReturn(Optional.of(member)); + + // When + MemberResponseDTO memberResponseDTO = memberService.getMemberDtoById(id); + + // Then + assertThat(memberResponseDTO).isNotNull(); + assertThat(memberResponseDTO.getNickname()).isEqualTo("백지현"); + } + + @Test + void testUpdatePhoneNumber() { + // Given + Long id = 1L; + String newPhoneNumber = "01091935461"; + Member member = Member.builder() + .name("백지현") + .build(); + + when(memberRepository.findById(id)).thenReturn(Optional.of(member)); + + // When + memberService.updatePhoneNumber(id, newPhoneNumber); + + // Then + assertThat(member.getPhoneNumber()).isEqualTo(newPhoneNumber); + } + + @Test + void testFindAll() { + // Given + List members = List.of( + Member.builder().name("백지현").build(), + Member.builder().name("백지현").build() + ); + + when(memberRepository.findAll()).thenReturn(members); + + // When + List foundMembers = memberService.findAll(); + + // Then + assertThat(foundMembers).isNotEmpty(); + assertThat(foundMembers.size()).isEqualTo(2); + assertThat(foundMembers).isEqualTo(members); + } + + @Test + void testUpdateRecommendFlower() { + // Given + Member member = Member.builder() + .name("백지현") + .build(); + + List recommendFlowers = List.of( + RecommendFlower.builder().recommendFlowerId(1L).build(), + RecommendFlower.builder().recommendFlowerId(2L).build() + ); + + // When + memberService.updateRecommendFlower(member, recommendFlowers); + + // Then + assertThat(member.getRecommendFlowers()).isEqualTo(recommendFlowers); + } +}