55import static org .mockito .ArgumentMatchers .any ;
66import static org .mockito .ArgumentMatchers .eq ;
77import static org .mockito .Mockito .lenient ;
8+ import static org .mockito .Mockito .spy ;
89import static org .mockito .Mockito .times ;
910import static org .mockito .Mockito .verify ;
1011import 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