diff --git a/backend/src/test/java/com/twtw/backend/domain/member/repository/MemberRepositoryTest.java b/backend/src/test/java/com/twtw/backend/domain/member/repository/MemberRepositoryTest.java new file mode 100644 index 00000000..1954060e --- /dev/null +++ b/backend/src/test/java/com/twtw/backend/domain/member/repository/MemberRepositoryTest.java @@ -0,0 +1,53 @@ +package com.twtw.backend.domain.member.repository; + +import static org.assertj.core.api.Assertions.assertThat; + +import com.twtw.backend.domain.member.entity.Member; +import com.twtw.backend.fixture.member.MemberEntityFixture; +import com.twtw.backend.support.repository.RepositoryTest; + +import jakarta.persistence.EntityManager; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.UUID; + +@DisplayName("MemberRepository의") +public class MemberRepositoryTest extends RepositoryTest { + + @Autowired private MemberRepository memberRepository; + + @Autowired private EntityManager em; + + @Test + @DisplayName("PK를 통한 저장/조회가 성공하는가?") + void saveAndFindId() { + // given + final Member member = memberRepository.save(MemberEntityFixture.FIRST_MEMBER.toEntity()); + + // when + final UUID expected = member.getId(); + final Member result = memberRepository.findById(expected).orElseThrow(); + + // then + assertThat(result.getId()).isEqualTo(member.getId()); + } + + @Test + @DisplayName("soft delete가 수행되는가?") + void softDelete() { + // given + final Member member = MemberEntityFixture.FIRST_MEMBER.toEntity(); + final UUID memberId = memberRepository.save(member).getId(); + + // when + memberRepository.deleteById(memberId); + em.flush(); + em.clear(); + + // then + assertThat(memberRepository.findById(memberId)).isEmpty(); + } +} diff --git a/backend/src/test/java/com/twtw/backend/domain/member/service/MemberServiceTest.java b/backend/src/test/java/com/twtw/backend/domain/member/service/MemberServiceTest.java new file mode 100644 index 00000000..7b15a86f --- /dev/null +++ b/backend/src/test/java/com/twtw/backend/domain/member/service/MemberServiceTest.java @@ -0,0 +1,57 @@ +package com.twtw.backend.domain.member.service; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import com.twtw.backend.domain.member.dto.response.DuplicateNicknameResponse; +import com.twtw.backend.domain.member.dto.response.MemberResponse; +import com.twtw.backend.domain.member.entity.Member; +import com.twtw.backend.domain.member.repository.MemberRepository; +import com.twtw.backend.fixture.member.MemberEntityFixture; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; + +@DisplayName("MemberService의") +public class MemberServiceTest { + @Autowired private MemberService memberService; + @Autowired private MemberRepository memberRepository; + + @Test + @DisplayName("닉네임 중복 체크가 제대로 동작하는가") + void checkNickname() { + // given + final Member member = memberRepository.save(MemberEntityFixture.FIRST_MEMBER.toEntity()); + // when + DuplicateNicknameResponse response = memberService.duplicateNickname(member.getNickname()); + // then + assertTrue(response.getIsPresent()); + } + + @Test + @DisplayName("UUID를 통해 Member 조회가 되는가") + void getMemberById() { + // given + final Member member = memberRepository.save(MemberEntityFixture.FIRST_MEMBER.toEntity()); + + // when + Member response = memberService.getMemberById(member.getId()); + + // then + assertThat(response.getId()).isEqualTo(member.getId()); + } + + @Test + @DisplayName("Member가 MemberResponse로 변환이 되는가") + void getResponseByMember() { + // given + final Member member = memberRepository.save(MemberEntityFixture.FIRST_MEMBER.toEntity()); + + // when + MemberResponse memberResponse = memberService.getResponseByMember(member); + + // then + assertThat(memberResponse.getId()).isEqualTo(member.getId()); + } +}