Skip to content

Commit c6a3d27

Browse files
authored
Merge pull request #187 from companieshouse/bi-12452-proposed-fix-free-checkout-status
Bi 12452 proposed fix free checkout status
2 parents d37b2a1 + 4d97233 commit c6a3d27

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

src/main/java/uk/gov/companieshouse/orders/api/controller/BasketController.java

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,9 @@ public ResponseEntity<?> checkoutBasket(@RequestBody(required = false) String js
424424
LOGGER.infoRequest(request, "Basket checkout completed no payment required", logMap);
425425
checkoutData.setPaymentReference("FREEINTERNALORDER");
426426

427+
checkoutData.setStatus(PaymentStatus.FREE);
428+
//Now that the payment ref and payment status are set, update the checkout object in db
429+
updateFreeOrderCheckout(checkout);
427430
processOrder(checkout, logMap);
428431
LOGGER.infoRequest(request, "Free order processed", logMap);
429432
return new ResponseEntity<>(checkoutData, OK);
@@ -503,7 +506,6 @@ public ResponseEntity<String> patchBasketPaymentDetails(@NonNull final @RequestB
503506
} else {
504507

505508
// Update the checkout of non-paid order
506-
checkoutData.setStatus(PaymentStatus.FREE);
507509
updateCheckout(checkout, basketPaymentRequestDTO);
508510
LOGGER.infoRequest(request, "Checkout updated for order not requiring any payment", logMap);
509511
}
@@ -579,6 +581,10 @@ private Checkout updateCheckout(final Checkout checkout, final BasketPaymentRequ
579581
return checkout;
580582
}
581583

584+
private void updateFreeOrderCheckout(final Checkout checkout) {
585+
checkoutService.saveCheckout(checkout);
586+
}
587+
582588
/**
583589
* Performs the actions required to process a successful payment.
584590
*

src/test/java/uk/gov/companieshouse/orders/api/controller/BasketControllerIntegrationTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,6 +1058,8 @@ void checkoutBasketReturns200WhenTotalOrderCostIsZero() throws Exception {
10581058
assertEquals(1, checkoutRepository.count());
10591059
final Optional<Checkout> retrievedCheckout = checkoutRepository.findById(responseCheckoutData.getReference());
10601060
assertTrue(retrievedCheckout.isPresent());
1061+
assertThat(retrievedCheckout.get().getData().getStatus().getJsonName(), is("free"));
1062+
assertThat(retrievedCheckout.get().getData().getPaymentReference(), is("FREEINTERNALORDER"));
10611063
final Item retrievedItem = retrievedCheckout.get().getData().getItems().get(0);
10621064
assertThat(retrievedItem.getItemCosts(), is(ITEM_COSTS_ZERO));
10631065
assertThat(retrievedItem.getPostageCost(), is(POSTAGE_COST));

src/test/java/uk/gov/companieshouse/orders/api/controller/BasketControllerTest.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -612,8 +612,8 @@ void controllerCreatesCheckoutWhenTotalCostIsFree() {
612612
}
613613

614614
@Test
615-
@DisplayName("Payment Reference is set value when free orders ")
616-
void controllerSetsPaymentReferenceWhenIsNotFreeOrder() {
615+
@DisplayName("Payment Reference/Status is set to expected value when free order")
616+
void controllerSetsCheckoutValuesWhenIsFreeOrder() {
617617
// given
618618
Basket basket = createBasket();
619619
basket.getData().setItems(Arrays.asList(certificate));
@@ -635,6 +635,7 @@ void controllerSetsPaymentReferenceWhenIsNotFreeOrder() {
635635
// then
636636
assertEquals(OK, actual.getStatusCode());
637637
assertEquals("FREEINTERNALORDER", checkout.getData().getPaymentReference());
638+
assertEquals(PaymentStatus.FREE, checkout.getData().getStatus());
638639
}
639640

640641
@Test

0 commit comments

Comments
 (0)