Skip to content

Commit

Permalink
refactor: 이미 환불된 거래 내역 검증 로직 구현
Browse files Browse the repository at this point in the history
- 이미 환불된 내역일 경우의 예외를 추가했습니다
  • Loading branch information
minseok-oh committed Aug 13, 2024
1 parent 328591b commit 978538b
Show file tree
Hide file tree
Showing 4 changed files with 19 additions and 17 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.wootecam.luckyvickyauction.core.member.domain;

import java.util.Objects;
import lombok.Builder;
import lombok.Getter;

Expand Down Expand Up @@ -43,20 +42,7 @@ public boolean confirmPassword(String password) {
return this.password.equals(password);
}

@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Member member = (Member) o;
return Objects.equals(id, member.id);
}

@Override
public int hashCode() {
return Objects.hashCode(id);
public boolean isSameMember(Long id) {
return this.id.equals(id);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,10 @@ public void refund(Member buyer, long bidHistoryId) {
}

BidHistory refundTargetBidHistory = findRefundTargetBidHistory(bidHistoryId);
if (refundTargetBidHistory.isRefundStatus()) {
throw new BadRequestException("이미 환불된 입찰 내역입니다.", ErrorCode.P003);
}

Member refundTargetBuyer = refundTargetBidHistory.getBuyer();
if (!buyer.isSameMember(refundTargetBuyer.getId())) {
throw new BadRequestException("환불할 입찰 내역의 구매자만 환불을 할 수 있습니다.", ErrorCode.P004);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,8 @@ public enum ErrorCode {
P000("거래 시, 로그인한 사용자가 구매자가 아닌 경우 예외가 발생합니다."),
P001("입찰 시, 사용자의 포인트가 부족한 경우 예외가 발생합니다."),
P002("환불 시, 환불할 입찰 내역을 찾을 수 없을 경우 예외가 발생합니다."),
P003("환불 시, 요청한 사용자가 환불할 입찰의 구매자가 아닌 경우 예외가 발생합니다."),
P003("환불 시, 이미 환불된 입찰 내역일 경우 예외가 발생합니다."),
P004("환불 시, 요청한 사용자가 환불할 입찰의 구매자가 아닌 경우 예외가 발생합니다."),

// Global 예외
G000("DTO 생성 시, 필드의 값이 NULL인 경우 예외가 발생합니다.");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,17 @@ class 만약_환불할_입찰_내역을_찾을_수_없다면 {
}
}

@Nested
class 만약_이미_환불된_입찰_내역이라면 {

@Test
void 예외가_발생한다() {
// given
// when
// then
}
}

@Nested
class 만약_환불할_입찰_내역의_구매자가_환불을_요청한_사용자가_아니라면 {

Expand Down

0 comments on commit 978538b

Please sign in to comment.