Search in sources :

Example 6 with InvoiceModel

use of com.paypal.invoices.invoicesextract.model.InvoiceModel in project mirakl-hyperwallet-connector by paypal.

the class MiraklInvoiceDTOToInvoiceModelConverterTest method convert_shouldReturnNullWhenNullObjectIsReceived.

@Test
void convert_shouldReturnNullWhenNullObjectIsReceived() {
    final InvoiceModel result = testObj.convert(null);
    assertThat(result).isNull();
}
Also used : InvoiceModel(com.paypal.invoices.invoicesextract.model.InvoiceModel) Test(org.junit.jupiter.api.Test)

Example 7 with InvoiceModel

use of com.paypal.invoices.invoicesextract.model.InvoiceModel in project mirakl-hyperwallet-connector by paypal.

the class MiraklInvoiceToInvoiceModelConverterTest method convert_shouldReturnNullWhenNullParameterIsReceived.

@Test
void convert_shouldReturnNullWhenNullParameterIsReceived() {
    final InvoiceModel result = testObj.convert(null);
    assertThat(result).isNull();
}
Also used : InvoiceModel(com.paypal.invoices.invoicesextract.model.InvoiceModel) Test(org.junit.jupiter.api.Test)

Example 8 with InvoiceModel

use of com.paypal.invoices.invoicesextract.model.InvoiceModel in project mirakl-hyperwallet-connector by paypal.

the class PayeeInvoiceModelToHyperwalletPaymentConverterTest method convert_shouldConvertAnInvoiceIntoHyperwalletPayment.

@Test
void convert_shouldConvertAnInvoiceIntoHyperwalletPayment() {
    when(hyperwalletSDKServiceMock.getProgramTokenByHyperwalletProgram(HYPERWALLET_PROGRAM)).thenReturn(PROGRAM_TOKEN);
    // @formatter:off
    final InvoiceModel invoice = InvoiceModel.builder().destinationToken(DESTINATION_TOKEN).shopId(SHOP_ID).invoiceNumber(INVOICE_NUMBER).transferAmount(TRANSFER_AMOUNT).currencyIsoCode(CURRENCY_ISO_CODE).hyperwalletProgram(HYPERWALLET_PROGRAM).build();
    // @formatter:on
    final HyperwalletPayment result = testObj.convert(invoice);
    assertThat(result.getDestinationToken()).isEqualTo(DESTINATION_TOKEN);
    assertThat(result.getClientPaymentId()).isEqualTo(INVOICE_NUMBER);
    assertThat(result.getAmount()).isEqualTo(TRANSFER_AMOUNT);
    assertThat(result.getCurrency()).isEqualTo(CURRENCY_ISO_CODE);
    assertThat(result.getPurpose()).isEqualTo("OTHER");
    assertThat(result.getProgramToken()).isEqualTo(PROGRAM_TOKEN);
}
Also used : HyperwalletPayment(com.hyperwallet.clientsdk.model.HyperwalletPayment) InvoiceModel(com.paypal.invoices.invoicesextract.model.InvoiceModel) Test(org.junit.jupiter.api.Test)

Example 9 with InvoiceModel

use of com.paypal.invoices.invoicesextract.model.InvoiceModel in project mirakl-hyperwallet-connector by paypal.

the class AbstractInvoiceExtractServiceImplTest method extractInvoices_shouldCallMiraklInvoiceExtractServiceAndHyperwalletPaymentExtractServiceAndCollectInvoicesPaidForOperatorAndPayeeWithDeltaPassedAsArgument.

@Test
void extractInvoices_shouldCallMiraklInvoiceExtractServiceAndHyperwalletPaymentExtractServiceAndCollectInvoicesPaidForOperatorAndPayeeWithDeltaPassedAsArgument() {
    testObj = new MyInvoiceExtractService(miraklAccountingDocumentInvoicesExtractServiceMock, miraklAccountingDocumentCreditNotesExtractServiceMock, hyperWalletPaymentExtractServiceMock, List.of(operatorHyperWalletPaymentOneMock, operatorHyperWalletPaymentTwoMock));
    final LocalDateTime now = TimeMachine.now();
    TimeMachine.useFixedClockAt(now);
    final Date delta = DateUtil.convertToDate(now, ZoneId.systemDefault());
    final List<InvoiceModel> invoices = List.of(payeeInvoiceModelOneMock, payeeInvoiceModelTwoMock, operatorInvoiceModelOneMock, operatorInvoiceModelTwoMock);
    doReturn(invoices).when(miraklAccountingDocumentInvoicesExtractServiceMock).extractAccountingDocument(delta);
    final List<HyperwalletPayment> payeeCreatedPayments = List.of(payeeHyperWalletPaymentOneMock, payeeHyperWalletPaymentTwoMock);
    when(hyperWalletPaymentExtractServiceMock.payPayeeInvoice(invoices)).thenReturn(payeeCreatedPayments);
    final List<HyperwalletPayment> result = testObj.extractInvoices(delta);
    verify(miraklAccountingDocumentInvoicesExtractServiceMock).extractAccountingDocument(delta);
    verify(hyperWalletPaymentExtractServiceMock).payPayeeInvoice(invoices);
    assertThat(result).containsExactlyInAnyOrder(payeeHyperWalletPaymentOneMock, payeeHyperWalletPaymentTwoMock, operatorHyperWalletPaymentOneMock, operatorHyperWalletPaymentTwoMock);
}
Also used : LocalDateTime(java.time.LocalDateTime) HyperwalletPayment(com.hyperwallet.clientsdk.model.HyperwalletPayment) Date(java.util.Date) InvoiceModel(com.paypal.invoices.invoicesextract.model.InvoiceModel) Test(org.junit.jupiter.api.Test)

Example 10 with InvoiceModel

use of com.paypal.invoices.invoicesextract.model.InvoiceModel in project mirakl-hyperwallet-connector by paypal.

the class HyperWalletPaymentExtractServiceImplTest method payInvoice_shouldReturnOnlyPaymentsSuccessfullyCreatedOnHyperwallet.

@Test
void payInvoice_shouldReturnOnlyPaymentsSuccessfullyCreatedOnHyperwallet() {
    final List<InvoiceModel> invoices = List.of(invoiceModelOneMock, invoiceModelTwoMock);
    when(invoiceModelToHyperwalletPaymentConverterMock.convert(invoiceModelOneMock)).thenReturn(paymentOneMock);
    when(invoiceModelToHyperwalletPaymentConverterMock.convert(invoiceModelTwoMock)).thenReturn(paymentTwoMock);
    when(hyperwalletMock.createPayment(paymentOneMock)).thenReturn(createdPaymentOneMock);
    when(paymentOneMock.getProgramToken()).thenReturn(PROGRAM_TOKEN);
    when(paymentTwoMock.getProgramToken()).thenReturn(PROGRAM_TOKEN);
    when(hyperwalletSDKService.getHyperwalletInstanceWithProgramToken(PROGRAM_TOKEN)).thenReturn(hyperwalletMock);
    doThrow(new HyperwalletException("Something went wrong")).when(hyperwalletMock).createPayment(paymentTwoMock);
    final List<HyperwalletPayment> result = testObj.payInvoice(invoices, invoiceModelToHyperwalletPaymentConverterMock);
    verify(invoiceModelToHyperwalletPaymentConverterMock).convert(invoiceModelOneMock);
    verify(invoiceModelToHyperwalletPaymentConverterMock).convert(invoiceModelTwoMock);
    verify(hyperwalletMock).createPayment(paymentOneMock);
    verify(hyperwalletMock).createPayment(paymentTwoMock);
    assertThat(result).containsExactlyInAnyOrder(createdPaymentOneMock);
}
Also used : HyperwalletPayment(com.hyperwallet.clientsdk.model.HyperwalletPayment) HyperwalletException(com.hyperwallet.clientsdk.HyperwalletException) InvoiceModel(com.paypal.invoices.invoicesextract.model.InvoiceModel) Test(org.junit.jupiter.api.Test)

Aggregations

InvoiceModel (com.paypal.invoices.invoicesextract.model.InvoiceModel)17 Test (org.junit.jupiter.api.Test)16 Date (java.util.Date)9 LocalDateTime (java.time.LocalDateTime)7 HyperwalletPayment (com.hyperwallet.clientsdk.model.HyperwalletPayment)5 MiraklGetShopsRequest (com.mirakl.client.mmp.request.shop.MiraklGetShopsRequest)4 MiraklErrorResponseBean (com.mirakl.client.core.error.MiraklErrorResponseBean)2 MiraklApiException (com.mirakl.client.core.exception.MiraklApiException)2 MiraklGetInvoicesRequest (com.mirakl.client.mmp.operator.request.payment.invoice.MiraklGetInvoicesRequest)2 HyperwalletException (com.hyperwallet.clientsdk.HyperwalletException)1 MiraklAccountingDocumentPaymentStatus (com.mirakl.client.mmp.domain.accounting.document.MiraklAccountingDocumentPaymentStatus)1 PENDING (com.mirakl.client.mmp.domain.accounting.document.MiraklAccountingDocumentPaymentStatus.PENDING)1 AUTO_INVOICE (com.mirakl.client.mmp.domain.accounting.document.MiraklAccountingDocumentType.AUTO_INVOICE)1 MiraklShop (com.mirakl.client.mmp.domain.shop.MiraklShop)1 MiraklShops (com.mirakl.client.mmp.domain.shop.MiraklShops)1 MiraklAccountingDocumentState (com.mirakl.client.mmp.request.payment.invoice.MiraklAccountingDocumentState)1 COMPLETE (com.mirakl.client.mmp.request.payment.invoice.MiraklAccountingDocumentState.COMPLETE)1 MIRAKL_MAX_RESULTS_PER_PAGE (com.paypal.infrastructure.constants.HyperWalletConstants.MIRAKL_MAX_RESULTS_PER_PAGE)1 Converter (com.paypal.infrastructure.converter.Converter)1 MailNotificationUtil (com.paypal.infrastructure.mail.MailNotificationUtil)1