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,33 @@ 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+
636+ // then
637+ assertEquals (OK , actual .getStatusCode ());
638+ assertEquals ("FREEINTERNALORDER" , checkout .getData ().getPaymentReference ());
639+ }
640+
613641 @ Test
614642 @ DisplayName ("Accepted status code when checkout created for multiple items" )
615643 void createsCheckoutSuccessfullyForMultipleItems () {
@@ -631,7 +659,6 @@ void createsCheckoutSuccessfullyForMultipleItems() {
631659 ResponseEntity <?> actual = controllerUnderTest .checkoutBasket (any (),
632660 httpServletRequest , "123" );
633661
634- // then
635662 assertEquals (ACCEPTED , actual .getStatusCode ());
636663 }
637664
0 commit comments