나의 멤버십 상세 조회 API
상세조회 실패시를 테스트 코드로 작성해보자.
상세조회 실패시는 해당 멤버십이 없을 때이다.
그 전에 Entity를 수정해보자
간단한 erd를 만들어보았다.
상세 조회를 할 시 본인의 인덱스를 참조하여 상세 멤버십을 조회하는 것이다.
이 전에 작성했던 기능들을 다시 수정해보자.
또, 추가되는 member 엔티티에 대한 테스트코드도 작성하자.
수정된 코드들은 내 깃에 올려두겠다.
상세 조회할 멤버십이 없을때의 실패시 테스트 코드를 작성해보자.
@Test
@DisplayName("멤버십 상세조회 실패 - 존재하지 않음")
void NoMembership() {
//given
Member member = Member.builder()
.userId("userA")
.userPassword("userAPassword")
.userName("userA")
.build();
Membership userA = Membership.builder()
.memberIdIndex(1L)
.membershipType(MembershipType.NAVER)
.point(10000)
.build();
memberRepository.save(member);
membershipRepository.save(userA);
//when
Long memberIdIndex = 2L;
MembershipType membershipType = MembershipType.NAVER;
Membership result = memberService.readDetailMembership(memberIdIndex, membershipType);
//then
Assertions.assertThat(result).isNull();
}
memberService의 readDetailMembership메서드가 없어 컴파일 오류가 날 것이다.
상세 조회 메서드를 작성해보자.
public Membership readDetailMembership(Long memberIdIndex, MembershipType membershipType) {
Membership detailMembership =
membershipRepository.findByMemberIdIndexAndMembershipType(memberIdIndex, membershipType);
if(detailMembership == null){
System.out.println("해당 멤버십이 없습니다.");
return null;
}
return detailMembership;
}
해당 멤버십이 없으면 null을 반환하는 메서드를 작성해보았다.
다시 돌려보게 되면, memberIndex가 2이기 때문에 "해당 멤버십이 없습니다."라는 메세지와 함께 널이 출력될 것이다.
이번에는 멤버십 상세 조회 성공 메서드를 작성해보자.
@Test
@DisplayName("멤버십 상세조회 성공")
void findDetailMembership() {
//given
Member member = Member.builder()
.userId("userA")
.userPassword("userAPassword")
.userName("userA")
.build();
Membership userA = Membership.builder()
.memberIdIndex(1L)
.membershipType(MembershipType.NAVER)
.point(10000)
.build();
memberRepository.save(member);
membershipRepository.save(userA);
//when
Membership membership = memberService.readDetailMembership(1L, MembershipType.NAVER);
//then
assertThat(membership).isNotNull();
assertThat(membership.getMembershipType()).isEqualTo(MembershipType.NAVER);
assertThat(membership.getPoint()).isEqualTo(10000);
}
이번 테스트는 멤버 엔티티와 멤버십 엔티티를 생성하고, 해당 멤버의 네이버 멤버십을 상세조회하는 테스트이다.
정상적으로 테스트에 성공하였다.