Skip to content

Commit 4643d29

Browse files
authored
Merge pull request #184 from companieshouse/feature/BI-13973-create-payment-ref-free-admin-orders
Set static payment reference for free admin orders
2 parents 7dc7c6a + adce8b9 commit 4643d29

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,10 +422,11 @@ public ResponseEntity<?> checkoutBasket(@RequestBody(required = false) String js
422422
} else {
423423
logMap.put(LoggingUtils.STATUS, OK);
424424
LOGGER.infoRequest(request, "Basket checkout completed no payment required", logMap);
425+
checkoutData.setPaymentReference("FREEINTERNALORDER");
426+
425427
checkoutData.setStatus(PaymentStatus.FREE);
426428
processOrder(checkout, logMap);
427429
LOGGER.infoRequest(request, "Free order processed", logMap);
428-
429430
return new ResponseEntity<>(checkoutData, OK);
430431
}
431432
}

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

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import static org.mockito.ArgumentMatchers.any;
66
import static org.mockito.ArgumentMatchers.eq;
77
import static org.mockito.Mockito.lenient;
8+
import static org.mockito.Mockito.spy;
89
import static org.mockito.Mockito.times;
910
import static org.mockito.Mockito.verify;
1011
import static org.mockito.Mockito.verifyNoInteractions;
@@ -610,6 +611,32 @@ void controllerCreatesCheckoutWhenTotalCostIsFree() {
610611
assertEquals(OK, actual.getStatusCode());
611612
}
612613

614+
@Test
615+
@DisplayName("Payment Reference is set value when free orders ")
616+
void controllerSetsPaymentReferenceWhenIsNotFreeOrder() {
617+
// given
618+
Basket basket = createBasket();
619+
basket.getData().setItems(Arrays.asList(certificate));
620+
List<String> emptyErrorsList = Collections.EMPTY_LIST;
621+
622+
Checkout checkout = new Checkout();
623+
CheckoutData checkoutData = spy(new CheckoutData());
624+
checkoutData.setTotalOrderCost("0");
625+
checkout.setData(checkoutData);
626+
627+
when(basketService.getBasketById(any())).thenReturn(Optional.of(basket));
628+
when(checkoutBasketValidator.getValidationErrors(any(), any())).thenReturn(emptyErrorsList);
629+
when(checkoutService.createCheckout(any(), any(), any(), any())).thenReturn(checkout);
630+
631+
ResponseEntity<?> actual = controllerUnderTest.checkoutBasket(any(),
632+
httpServletRequest, "123");
633+
634+
verify(checkoutData).setPaymentReference("FREEINTERNALORDER");
635+
// then
636+
assertEquals(OK, actual.getStatusCode());
637+
assertEquals("FREEINTERNALORDER", checkout.getData().getPaymentReference());
638+
}
639+
613640
@Test
614641
@DisplayName("Accepted status code when checkout created for multiple items")
615642
void createsCheckoutSuccessfullyForMultipleItems() {
@@ -630,7 +657,7 @@ void createsCheckoutSuccessfullyForMultipleItems() {
630657
// when
631658
ResponseEntity<?> actual = controllerUnderTest.checkoutBasket(any(),
632659
httpServletRequest, "123");
633-
660+
634661
// then
635662
assertEquals(ACCEPTED, actual.getStatusCode());
636663
}

0 commit comments

Comments
 (0)