diff --git a/product-order-service/src/test/java/com/example/productorderservice/payment/ConsolePaymentGateway.java b/product-order-service/src/main/java/com/example/productorderservice/payment/ConsolePaymentGateway.java similarity index 100% rename from product-order-service/src/test/java/com/example/productorderservice/payment/ConsolePaymentGateway.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/ConsolePaymentGateway.java diff --git a/product-order-service/src/test/java/com/example/productorderservice/payment/Payment.java b/product-order-service/src/main/java/com/example/productorderservice/payment/Payment.java similarity index 100% rename from product-order-service/src/test/java/com/example/productorderservice/payment/Payment.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/Payment.java diff --git a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentAdapter.java b/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentAdapter.java similarity index 100% rename from product-order-service/src/test/java/com/example/productorderservice/payment/PaymentAdapter.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/PaymentAdapter.java diff --git a/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentController.java b/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentController.java new file mode 100644 index 00000000..73ffd0e8 --- /dev/null +++ b/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentController.java @@ -0,0 +1,23 @@ +package com.example.productorderservice.payment; + +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/payments") +@RequiredArgsConstructor +public class PaymentController { + + private final PaymentService paymentService; + + @PostMapping + public ResponseEntity payment(@RequestBody final PaymentRequest paymentRequest) { + paymentService.payment(paymentRequest); + return ResponseEntity.status(HttpStatus.OK).build(); + } +} diff --git a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentGateway.java b/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentGateway.java similarity index 100% rename from product-order-service/src/test/java/com/example/productorderservice/payment/PaymentGateway.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/PaymentGateway.java diff --git a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentPort.java b/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentPort.java similarity index 100% rename from product-order-service/src/test/java/com/example/productorderservice/payment/PaymentPort.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/PaymentPort.java diff --git a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentRepository.java b/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentRepository.java similarity index 100% rename from product-order-service/src/test/java/com/example/productorderservice/payment/PaymentRepository.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/PaymentRepository.java diff --git a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentRequest.java b/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentRequest.java similarity index 100% rename from product-order-service/src/test/java/com/example/productorderservice/payment/PaymentRequest.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/PaymentRequest.java diff --git a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentService.java b/product-order-service/src/main/java/com/example/productorderservice/payment/PaymentService.java similarity index 100% rename from product-order-service/src/test/java/com/example/productorderservice/payment/PaymentService.java rename to product-order-service/src/main/java/com/example/productorderservice/payment/PaymentService.java diff --git a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentApiTest.java b/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentApiTest.java new file mode 100644 index 00000000..e34030a4 --- /dev/null +++ b/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentApiTest.java @@ -0,0 +1,26 @@ +package com.example.productorderservice.payment; + +import com.example.productorderservice.ApiTest; +import com.example.productorderservice.order.OrderSteps; +import com.example.productorderservice.product.ProductSteps; +import io.restassured.RestAssured; +import io.restassured.response.ExtractableResponse; +import io.restassured.response.Response; +import org.assertj.core.api.Assertions; +import org.junit.jupiter.api.Test; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; + +class PaymentApiTest extends ApiTest { + + @Test + void 상품주문() { + ProductSteps.상품등록요청(ProductSteps.상품등록요청_생성()); + OrderSteps.상품주문요청(OrderSteps.상품주문요청_생성()); + final var request = PaymentSteps.주문결제요청_생성(); + + final var response = PaymentSteps.주문결제요청(request); + + Assertions.assertThat(response.statusCode()).isEqualTo(HttpStatus.OK.value()); + } +} diff --git a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentSteps.java b/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentSteps.java index 48f1235f..e5f2e54a 100644 --- a/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentSteps.java +++ b/product-order-service/src/test/java/com/example/productorderservice/payment/PaymentSteps.java @@ -1,5 +1,10 @@ package com.example.productorderservice.payment; +import io.restassured.RestAssured; +import io.restassured.response.ExtractableResponse; +import io.restassured.response.Response; +import org.springframework.http.MediaType; + public class PaymentSteps { public static PaymentRequest 주문결제요청_생성() { @@ -7,4 +12,14 @@ public class PaymentSteps { final String cardNumber = "1234-1234-1234-1234"; return new PaymentRequest(orderId, cardNumber); } + + public static ExtractableResponse 주문결제요청(PaymentRequest request) { + return RestAssured.given().log().all() + .contentType(MediaType.APPLICATION_JSON_VALUE) + .body(request) + .when() + .post("/payments") + .then().log().all() + .extract(); + } }