diff --git a/src/main/java/org/triple/backend/transfer/domain/Transfer.java b/src/main/java/org/triple/backend/transfer/domain/Transfer.java index 7c40616f..d884b9c3 100644 --- a/src/main/java/org/triple/backend/transfer/domain/Transfer.java +++ b/src/main/java/org/triple/backend/transfer/domain/Transfer.java @@ -128,8 +128,8 @@ private String validateText(final String value, final String fieldName) { } private BigDecimal validateTotalAmount(final BigDecimal value) { - if (value.compareTo(BigDecimal.ZERO) <= 0) { - throw new IllegalArgumentException("totalAmount must be greater than zero"); + if (value.compareTo(BigDecimal.ZERO) < 0) { + throw new IllegalArgumentException("totalAmount must be greater than minus"); } return value; } diff --git a/src/test/java/org/triple/backend/transfer/domain/TransferTest.java b/src/test/java/org/triple/backend/transfer/domain/TransferTest.java index 4a950b5e..d2ee7a5a 100644 --- a/src/test/java/org/triple/backend/transfer/domain/TransferTest.java +++ b/src/test/java/org/triple/backend/transfer/domain/TransferTest.java @@ -69,12 +69,13 @@ void changeAccountHolder_blank_throws() { } @Test - @DisplayName("changeTotalAmount는 0 이하 금액이면 예외를 던진다") - void changeTotalAmount_zeroOrNegative_throws() { + @DisplayName("changeTotalAmount는 0을 허용하고 음수 금액이면 예외를 던진다") + void changeTotalAmount_allowsZeroAndRejectsNegative() { Transfer transfer = transfer(); - assertThatThrownBy(() -> transfer.changeTotalAmount(BigDecimal.ZERO)) - .isInstanceOf(IllegalArgumentException.class); + transfer.changeTotalAmount(BigDecimal.ZERO); + + assertThat(transfer.getTotalAmount()).isEqualByComparingTo(BigDecimal.ZERO); assertThatThrownBy(() -> transfer.changeTotalAmount(new BigDecimal("-1"))) .isInstanceOf(IllegalArgumentException.class); }