diff --git a/.forge/BAIS-NATIVE-1783698057-attempt-1.md b/.forge/BAIS-NATIVE-1783698057-attempt-1.md new file mode 100644 index 0000000..ff1dd68 --- /dev/null +++ b/.forge/BAIS-NATIVE-1783698057-attempt-1.md @@ -0,0 +1,3 @@ +# BAIS-NATIVE-1783698057-attempt-1 + +Forge 이슈 작업 브랜치 `forge/BAIS-NATIVE-1783698057-attempt-1`. diff --git a/.forge/BAIS-SOURCE-1783702539-attempt-1.md b/.forge/BAIS-SOURCE-1783702539-attempt-1.md new file mode 100644 index 0000000..b15de76 --- /dev/null +++ b/.forge/BAIS-SOURCE-1783702539-attempt-1.md @@ -0,0 +1,3 @@ +# BAIS-SOURCE-1783702539-attempt-1 + +Forge 이슈 작업 브랜치 `forge/BAIS-SOURCE-1783702539-attempt-1`. diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index b7d7378..6622513 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -1,5 +1,5 @@ name: ci -on: [push, pull_request] +on: [pull_request] jobs: test: runs-on: ubuntu-latest diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..38f992a --- /dev/null +++ b/pom.xml @@ -0,0 +1,40 @@ + + 4.0.0 + com.example + bais-gate-e2e + 1.0-SNAPSHOT + jar + + + org.springframework.boot + spring-boot-starter-parent + 3.2.0 + + + + + 17 + + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/src/main/java/com/example/baisgate/BaisGateApplication.java b/src/main/java/com/example/baisgate/BaisGateApplication.java new file mode 100644 index 0000000..451a245 --- /dev/null +++ b/src/main/java/com/example/baisgate/BaisGateApplication.java @@ -0,0 +1,11 @@ +package com.example.baisgate; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class BaisGateApplication { + public static void main(String[] args) { + SpringApplication.run(BaisGateApplication.class, args); + } +} \ No newline at end of file diff --git a/src/main/java/com/example/baisgate/PaymentService.java b/src/main/java/com/example/baisgate/PaymentService.java new file mode 100644 index 0000000..489d52a --- /dev/null +++ b/src/main/java/com/example/baisgate/PaymentService.java @@ -0,0 +1,10 @@ +package com.example.baisgate; + +public class PaymentService { + public String approve(String transactionId) { + if (transactionId == null || transactionId.trim().isEmpty()) { + throw new IllegalArgumentException("Transaction ID cannot be blank"); + } + return "APPROVED:" + transactionId; + } +} \ No newline at end of file diff --git a/src/test/java/com/example/baisgate/BaisGateApplicationTests.java b/src/test/java/com/example/baisgate/BaisGateApplicationTests.java new file mode 100644 index 0000000..1a8f4c5 --- /dev/null +++ b/src/test/java/com/example/baisgate/BaisGateApplicationTests.java @@ -0,0 +1,12 @@ +package com.example.baisgate; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class BaisGateApplicationTests { + + @Test + void contextLoads() { + } +} \ No newline at end of file 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