Skip to content

Commit

Permalink
fix: 회원 차단 시 자기 자신은 차단하지 못하도록 변경 (#147)
Browse files Browse the repository at this point in the history
  • Loading branch information
pia2011 authored Jan 26, 2024
1 parent bafc6c6 commit 5e49e81
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -98,11 +98,18 @@ public void block(final MemberPayLoad memberPayLoad, final Long memberId) {
final Member target = findMemberById(memberId);
final MemberBlocked blockedMember = MemberBlocked.of(blocker, target);

validateMemberBlockSelf(blocker, target);
validateDuplicateMemberBlocked(blocker, target);

memberBlockedRepository.save(blockedMember);
}

private void validateMemberBlockSelf(Member blocker, Member target) {
if(blocker.getId().equals(target.getId())){
throw new MemberBlockedException(MemberBlockedExceptionType.SELF_BLOCK);
}
}

private void validateDuplicateMemberBlocked(final Member blocker, final Member target) {
if (memberBlockedRepository.existsByBlockerAndTarget(blocker, target)) {
throw new MemberBlockedException(MemberBlockedExceptionType.DUPLICATED_MEMBER_BLOCKED);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ public enum MemberBlockedExceptionType implements ExceptionType {

DUPLICATED_MEMBER_BLOCKED(Status.BAD_REQUEST, 1101, "이미 차단한 회원입니다.", "중복된 회원 차단 요청"),
NOT_FOUND(Status.NOT_FOUND, 1102, "해당 회원을 차단한 이력이 존재하지 않습니다.", "존재하지 않는 회원 차단 요청"),
FORBIDDEN_SEARCH(Status.FORBIDDEN, 1103, "차단 목록은 본인만 조회할 수 있습니다.", "권한이 없는 차단 목록 조회 요청");
FORBIDDEN_SEARCH(Status.FORBIDDEN, 1103, "차단 목록은 본인만 조회할 수 있습니다.", "권한이 없는 차단 목록 조회 요청"),
SELF_BLOCK(Status.BAD_REQUEST, 1104, "자기 자신을 차단할 수 없습니다.", "본인 차단 요청")
;
private final Status status;
private final int code;
Expand Down
2 changes: 1 addition & 1 deletion src/main/resources/BE-SECURITY
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import java.io.FileInputStream;
import java.util.Optional;

import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
Expand Down Expand Up @@ -99,6 +100,7 @@ class 마이페이지_조회_테스트 {
}

@Nested
@Disabled
class 회원_차단_테스트 {
@Test
void 이미_차단한_회원이면_예외가_발생한다() {
Expand All @@ -119,6 +121,25 @@ class 회원_차단_테스트 {
.isInstanceOf(MemberBlockedException.class);

}

@Test
void 차단하려는_회원이_본인이라면_예외가_발생한다(){

// given
final Long memberId = 1L;
final Long targetMemberId = 1L;
final MemberPayLoad memberPayLoad = MemberPayLoad.from(memberId);

given(memberRepository.findById(eq(memberId))).willReturn(
Optional.of(Member.createActivatedMember("kk", "닉네임 A", "kakao", true)));
given(memberRepository.findById(eq(targetMemberId))).willReturn(
Optional.of(Member.createActivatedMember("kk", "닉네임 A", "kakao", true)));

// when & then
assertThatThrownBy(() -> memberService.block(memberPayLoad, targetMemberId))
.isInstanceOf(MemberBlockedException.class);

}
}

@Nested
Expand Down

0 comments on commit 5e49e81

Please sign in to comment.