DefaultWorldpayPaymentInfoService implements WorldpayPaymentInfoService { @Override public PaymentInfoModel createPaymentInfo(final CartModel cartModel) { validateParameterNotNull(cartModel, CART_MODEL_CANNOT_BE_NULL); final PaymentInfoModel paymentInfoModel = modelService.create(PaymentInfoModel.class); paymentInfoModel.setUser(cartModel.getUser()); paymentInfoModel.setSaved(false); paymentInfoModel.setCode(generateCcPaymentInfoCode(cartModel)); return updatePaymentInfo(cartModel, paymentInfoModel); } DefaultWorldpayPaymentInfoService(final ModelService modelService, final EnumerationService enumerationService, final APMConfigurationLookupService apmConfigurationLookupService, final ConfigurationService configurationService, final WorldpayMerchantInfoService worldpayMerchantInfoService); @Override void savePaymentType(final PaymentTransactionModel transactionModel, final String methodCode); @Override void setPaymentInfoModel(final PaymentTransactionModel paymentTransactionModel, final AbstractOrderModel orderModel, final OrderNotificationMessage orderNotificationMessage); @Override void updateAndAttachPaymentInfoModel(final PaymentTransactionModel paymentTransactionModel, final AbstractOrderModel orderModel, final PaymentInfoModel paymentInfoModel); @Override WorldpayAPMPaymentInfoModel createWorldpayApmPaymentInfo(final PaymentTransactionModel paymentTransactionModel); @Override PaymentInfoModel createPaymentInfo(final CartModel cartModel); @Override PaymentInfoModel createPaymentInfoGooglePay(final CartModel cartModel, final GooglePayAdditionalAuthInfo googleAuthInfo); @Override PaymentInfoModel createPaymentInfoApplePay(final CartModel cartModel, final ApplePayAdditionalAuthInfo applePayAdditionalAuthInfo); @Override CreditCardPaymentInfoModel createCreditCardPaymentInfo(final AbstractOrderModel abstractOrderModel, final TokenReply tokenReply, final boolean saveCard, final String merchantId); @Override void setCreditCardType(final CreditCardPaymentInfoModel creditCardPaymentInfoModel, final PaymentReply paymentReply); @Override Optional<CreditCardPaymentInfoModel> updateCreditCardPaymentInfo(final CartModel cartModel, final UpdateTokenServiceRequest updateTokenServiceRequest); @Override void setTransactionIdentifierOnPaymentInfo(final PaymentInfoModel paymentInfoModel, final String transactionIdentifier);  }
@Test public void shouldThrowIllegalArgumentExceptionWhenCartPassedToCreatePaymentInfoIsNull() { thrown.expect(IllegalArgumentException.class); thrown.expectMessage("CartModel cannot be null"); final CartModel cartModel = null; testObj.createPaymentInfo(cartModel); }
@Test public void shouldCreatePaymentInfo() { testObj.createPaymentInfo(cartModelMock); verify(modelServiceMock).create(PaymentInfoModel.class); verify(orderPaymentInfoModelMock).setSaved(false); verify(orderPaymentInfoModelMock).setCode(startsWith(ORDER_CODE + "_")); verify(orderPaymentInfoModelMock).setWorldpayOrderCode(WORLDPAY_ORDER_CODE); verify(orderPaymentInfoModelMock).setUser(userModelMock); verify(modelServiceMock).save(orderPaymentInfoModelMock); }