DefaultWorldpayPaymentInfoService implements WorldpayPaymentInfoService { @Override public PaymentInfoModel createPaymentInfoGooglePay(final CartModel cartModel, final GooglePayAdditionalAuthInfo googleAuthInfo) { validateParameterNotNull(cartModel, CART_MODEL_CANNOT_BE_NULL); validateParameterNotNull(googleAuthInfo, "GooglePayAdditionalAuthInfo cannot be null"); final GooglePayPaymentInfoModel paymentInfoModel = modelService.create(GooglePayPaymentInfoModel.class); paymentInfoModel.setUser(cartModel.getUser()); paymentInfoModel.setSaved(false); paymentInfoModel.setCode(generateCcPaymentInfoCode(cartModel)); paymentInfoModel.setProtocolVersion(googleAuthInfo.getProtocolVersion()); paymentInfoModel.setSignature(googleAuthInfo.getSignature()); paymentInfoModel.setSignedMessage(googleAuthInfo.getSignedMessage()); cartModel.setPaymentInfo(paymentInfoModel); modelService.save(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 shouldCreatePaymentInfoWithGooglePayInformation() { when(modelServiceMock.create(GooglePayPaymentInfoModel.class)).thenReturn(googlePayPaymentInfoModelMock); when(googlePayAdditionAuthInfoMock.getSignedMessage()).thenReturn(SIGNED_MESSAGE); when(googlePayAdditionAuthInfoMock.getSignature()).thenReturn(SIGNATURE); when(googlePayAdditionAuthInfoMock.getProtocolVersion()).thenReturn(PROTOCOL_VERSION); testObj.createPaymentInfoGooglePay(cartModelMock, googlePayAdditionAuthInfoMock); verify(googlePayPaymentInfoModelMock).setSignedMessage(SIGNED_MESSAGE); verify(googlePayPaymentInfoModelMock).setSignature(SIGNATURE); verify(googlePayPaymentInfoModelMock).setProtocolVersion(PROTOCOL_VERSION); verify(googlePayPaymentInfoModelMock).setUser(cartModelMock.getUser()); verify(googlePayPaymentInfoModelMock).setSaved(false); verify(googlePayPaymentInfoModelMock).setCode(startsWith(ORDER_CODE)); verify(cartModelMock).setPaymentInfo(googlePayPaymentInfoModelMock); verify(modelServiceMock).save(cartModelMock); }