Skip to content

Commit

Permalink
feat: (#66) 이미 선호 카테고리 목록에 있는 카테고리를 추가하는 경우를 검증하는 로직 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
aiaiaiai1 committed Jul 18, 2023
1 parent c28b224 commit 7fa1caf
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ public void addFavoriteCategory(final Member member, final Long categoryId) {
Category category = categoryRepository.findById(categoryId)
.orElseThrow(() -> new IllegalArgumentException("해당 카테고리가 존재하지 않습니다."));

memberCategoryRepository.findByMemberAndCategory(member, category)
.ifPresent(ignore -> new IllegalStateException("이미 선호 카테고리에 등록되어 있습니다."));

MemberCategory memberCategory = MemberCategory.builder()
.member(member)
.category(category)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,12 @@
package com.votogether.domain.member.repository;

import com.votogether.domain.category.entity.Category;
import com.votogether.domain.member.entity.Member;
import com.votogether.domain.member.entity.MemberCategory;
import java.util.Optional;
import org.springframework.data.jpa.repository.JpaRepository;

public interface MemberCategoryRepository extends JpaRepository<MemberCategory, Long> {
Optional<MemberCategory> findByMemberAndCategory(final Member member, final Category category);

}
Original file line number Diff line number Diff line change
Expand Up @@ -59,4 +59,38 @@ void save() {
assertThat(memberCategory.getId()).isNotNull();
}

@Test
@DisplayName("멤버와 카테고리를 통해 멤버 카테고리를 조회한다.")
void findByMemberAndCategory() {
// given
Category category = Category.builder()
.name("개발")
.build();

Member member = Member.builder()
.gender(Gender.MALE)
.point(0)
.socialType(SocialType.GOOGLE)
.nickname("user1")
.socialId("kakao@gmail.com")
.birthDate(
LocalDateTime.of(1995, 07, 12, 00, 00))
.build();

MemberCategory memberCategory = MemberCategory.builder()
.member(member)
.category(category)
.build();

categoryRepository.save(category);
memberRepository.save(member);
memberCategoryRepository.save(memberCategory);

// when
MemberCategory findMemberCategory = memberCategoryRepository.findByMemberAndCategory(member, category).get();

// then
assertThat(findMemberCategory).isSameAs(memberCategory);
}

}

0 comments on commit 7fa1caf

Please sign in to comment.