diff --git a/src/test/java/com/example/baisgate/PaymentServiceTest.java b/src/test/java/com/example/baisgate/PaymentServiceTest.java new file mode 100644 index 0000000..1caa7a9 --- /dev/null +++ b/src/test/java/com/example/baisgate/PaymentServiceTest.java @@ -0,0 +1,32 @@ +package com.example.baisgate; + +import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.*; + +class PaymentServiceTest { + + @Test + void testApprove_WithValidTransactionId_ReturnsApproved() { + PaymentService paymentService = new PaymentService(); + String result = paymentService.approve("12345"); + assertEquals("APPROVED:12345", result); + } + + @Test + void testApprove_WithBlankTransactionId_ThrowsIllegalArgumentException() { + PaymentService paymentService = new PaymentService(); + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + paymentService.approve(""); + }); + assertEquals("Transaction ID cannot be blank", exception.getMessage()); + } + + @Test + void testApprove_WithNullTransactionId_ThrowsIllegalArgumentException() { + PaymentService paymentService = new PaymentService(); + Exception exception = assertThrows(IllegalArgumentException.class, () -> { + paymentService.approve(null); + }); + assertEquals("Transaction ID cannot be blank", exception.getMessage()); + } +} \ No newline at end of file