Search in sources :

Example 1 with BatchVoucherExport

use of org.folio.rest.jaxrs.model.BatchVoucherExport in project mod-invoice by folio-org.

the class BatchVoucherExportsHelper method createBatchVoucherExports.

/**
 * Creates a batch voucher export
 *
 * @param batchVoucherExport {@link BatchVoucherExport} to be created
 * @return completable future with {@link BatchVoucherExport} on success or an exception if processing fails
 */
public CompletableFuture<BatchVoucherExport> createBatchVoucherExports(BatchVoucherExport batchVoucherExport) {
    CompletableFuture<BatchVoucherExport> future = new CompletableFuture<>();
    createRecordInStorage(JsonObject.mapFrom(batchVoucherExport), resourcesPath(BATCH_VOUCHER_EXPORTS_STORAGE)).thenApply(batchVoucherExportId -> {
        BatchVoucherExport batchVoucherExportWitId = batchVoucherExport.withId(batchVoucherExportId);
        future.complete(batchVoucherExportWitId);
        return batchVoucherExportWitId;
    }).thenAccept(this::persistBatchVoucher).exceptionally(t -> {
        logger.error("Create batch voucher export error.");
        future.completeExceptionally(t);
        return null;
    });
    return future;
}
Also used : CompletableFuture(java.util.concurrent.CompletableFuture) FolioVertxCompletableFuture(org.folio.completablefuture.FolioVertxCompletableFuture) BatchVoucherExport(org.folio.rest.jaxrs.model.BatchVoucherExport)

Example 2 with BatchVoucherExport

use of org.folio.rest.jaxrs.model.BatchVoucherExport in project mod-invoice by folio-org.

the class BatchVoucherGenerateServiceTest method positiveGenerateBatchVoucherTest.

@Test
public void positiveGenerateBatchVoucherTest() throws IOException, ExecutionException, InterruptedException {
    RestClient restClient = new RestClient();
    VoucherRetrieveService voucherRetrieveService = new VoucherRetrieveService(restClient);
    ConfigurationService configurationService = new ConfigurationService(new RestClient());
    VoucherCommandService voucherCommandService = new VoucherCommandService(restClient, new VoucherNumberService(new RestClient()), voucherRetrieveService, new VoucherValidator(), configurationService, new ExchangeRateProviderResolver());
    VendorRetrieveService vendorRetrieveService = new VendorRetrieveService(restClient);
    AddressConverter addressConverter = AddressConverter.getInstance();
    VoucherService voucherService = new VoucherService(voucherRetrieveService, voucherCommandService, vendorRetrieveService, addressConverter);
    InvoiceLinesRetrieveService invoiceLinesRetrieveService = new InvoiceLinesRetrieveService(new InvoiceLineService(restClient));
    InvoiceLineService invoiceLineService = new InvoiceLineService(new RestClient());
    OrderLineService orderLineService = new OrderLineService(restClient);
    InvoiceService invoiceService = new BaseInvoiceService(new RestClient(), invoiceLineService, new OrderService(new RestClient(), invoiceLineService, orderLineService));
    InvoiceRetrieveService invoiceRetrieveService = new InvoiceRetrieveService(invoiceService);
    BatchVoucherGenerateService service = new BatchVoucherGenerateService(okapiHeaders, context, "en", vendorRetrieveService, invoiceRetrieveService, invoiceLinesRetrieveService, voucherService, addressConverter);
    BatchVoucherExport batchVoucherExport = new JsonObject(getMockData(BATCH_VOUCHER_EXPORT_SAMPLE_PATH)).mapTo(BatchVoucherExport.class);
    CompletableFuture<BatchVoucher> future = service.generateBatchVoucher(batchVoucherExport, new RequestContext(context, okapiHeaders));
    BatchVoucher batchVoucher = future.get();
    Assertions.assertNotNull(batchVoucher);
}
Also used : VendorRetrieveService(org.folio.services.VendorRetrieveService) RestClient(org.folio.rest.core.RestClient) AddressConverter(org.folio.converters.AddressConverter) InvoiceService(org.folio.services.invoice.InvoiceService) BaseInvoiceService(org.folio.services.invoice.BaseInvoiceService) BaseInvoiceService(org.folio.services.invoice.BaseInvoiceService) JsonObject(io.vertx.core.json.JsonObject) VoucherService(org.folio.rest.impl.VoucherService) ExchangeRateProviderResolver(org.folio.services.exchange.ExchangeRateProviderResolver) InvoiceLinesRetrieveService(org.folio.services.InvoiceLinesRetrieveService) OrderLineService(org.folio.services.order.OrderLineService) VoucherValidator(org.folio.services.validator.VoucherValidator) BatchVoucher(org.folio.rest.jaxrs.model.BatchVoucher) InvoiceLineService(org.folio.services.invoice.InvoiceLineService) ConfigurationService(org.folio.services.configuration.ConfigurationService) RequestContext(org.folio.rest.core.models.RequestContext) OrderService(org.folio.services.order.OrderService) InvoiceRetrieveService(org.folio.services.InvoiceRetrieveService) BatchVoucherExport(org.folio.rest.jaxrs.model.BatchVoucherExport) Test(org.junit.jupiter.api.Test)

Example 3 with BatchVoucherExport

use of org.folio.rest.jaxrs.model.BatchVoucherExport in project mod-invoice by folio-org.

the class BatchVoucherGenerateServiceTest method negativeGetBatchVoucherIfVouchersIsAbsentTest.

@Test
public void negativeGetBatchVoucherIfVouchersIsAbsentTest() {
    Assertions.assertThrows(CompletionException.class, () -> {
        RestClient restClient = new RestClient();
        VoucherRetrieveService voucherRetrieveService = new VoucherRetrieveService(restClient);
        ConfigurationService configurationService = new ConfigurationService(restClient);
        VoucherCommandService voucherCommandService = new VoucherCommandService(restClient, new VoucherNumberService(restClient), voucherRetrieveService, new VoucherValidator(), configurationService, new ExchangeRateProviderResolver());
        VendorRetrieveService vendorRetrieveService = new VendorRetrieveService(restClient);
        AddressConverter addressConverter = AddressConverter.getInstance();
        VoucherService voucherService = new VoucherService(voucherRetrieveService, voucherCommandService, vendorRetrieveService, addressConverter);
        InvoiceLinesRetrieveService invoiceLinesRetrieveService = new InvoiceLinesRetrieveService(new InvoiceLineService(restClient));
        InvoiceLineService invoiceLineService = new InvoiceLineService(new RestClient());
        OrderLineService orderLineService = new OrderLineService(restClient);
        InvoiceService invoiceService = new BaseInvoiceService(new RestClient(), invoiceLineService, new OrderService(new RestClient(), invoiceLineService, orderLineService));
        InvoiceRetrieveService invoiceRetrieveService = new InvoiceRetrieveService(invoiceService);
        BatchVoucherGenerateService service = new BatchVoucherGenerateService(okapiHeaders, context, "en", vendorRetrieveService, invoiceRetrieveService, invoiceLinesRetrieveService, voucherService, addressConverter);
        BatchVoucherExport batchVoucherExport = new BatchVoucherExport();
        CompletableFuture<BatchVoucher> future = service.generateBatchVoucher(batchVoucherExport, new RequestContext(context, okapiHeaders));
        future.join();
    });
}
Also used : VendorRetrieveService(org.folio.services.VendorRetrieveService) RestClient(org.folio.rest.core.RestClient) AddressConverter(org.folio.converters.AddressConverter) InvoiceService(org.folio.services.invoice.InvoiceService) BaseInvoiceService(org.folio.services.invoice.BaseInvoiceService) BaseInvoiceService(org.folio.services.invoice.BaseInvoiceService) VoucherService(org.folio.rest.impl.VoucherService) ExchangeRateProviderResolver(org.folio.services.exchange.ExchangeRateProviderResolver) InvoiceLinesRetrieveService(org.folio.services.InvoiceLinesRetrieveService) OrderLineService(org.folio.services.order.OrderLineService) VoucherValidator(org.folio.services.validator.VoucherValidator) BatchVoucher(org.folio.rest.jaxrs.model.BatchVoucher) InvoiceLineService(org.folio.services.invoice.InvoiceLineService) ConfigurationService(org.folio.services.configuration.ConfigurationService) RequestContext(org.folio.rest.core.models.RequestContext) OrderService(org.folio.services.order.OrderService) InvoiceRetrieveService(org.folio.services.InvoiceRetrieveService) BatchVoucherExport(org.folio.rest.jaxrs.model.BatchVoucherExport) Test(org.junit.jupiter.api.Test)

Example 4 with BatchVoucherExport

use of org.folio.rest.jaxrs.model.BatchVoucherExport in project mod-invoice by folio-org.

the class UploadBatchVoucherExportServiceTest method testShouldSuccessUploadBatchVoucherExport.

@Test
public void testShouldSuccessUploadBatchVoucherExport() throws ExecutionException, InterruptedException {
    // given
    UploadBatchVoucherExportService serviceSpy = spy(new UploadBatchVoucherExportService(ctxMock, bvHelper, bvExportConfigHelper, bvExportsHelper));
    BatchVoucher bv = getMockAsJson(BATCH_VOUCHERS_PATH).mapTo(BatchVoucher.class);
    Response.ResponseBuilder responseBuilder = Response.status(200).header("Content-Type", "application/json");
    BatchVoucherExport bvExport = getMockAsJson(BATCH_VOUCHERS_EXPORT_PATH).mapTo(BatchVoucherExport.class);
    ExportConfigCollection bvExportConf = getMockAsJson(BATCH_VOUCHERS_EXPORT_CONF_PATH).mapTo(ExportConfigCollection.class);
    Credentials credentials = getMockAsJson(CRED_PATH).mapTo(Credentials.class);
    doReturn(completedFuture(bvExport)).when(bvExportsHelper).getBatchVoucherExportById(BV_EXPORT_ID);
    doReturn(completedFuture(credentials)).when(bvExportConfigHelper).getExportConfigCredentials(bvExportConf.getExportConfigs().get(0).getId());
    doReturn(completedFuture(bvExportConf)).when(bvExportConfigHelper).getExportConfigs(1, 0, "batchGroupId==" + bvExport.getBatchGroupId());
    doReturn(completedFuture(null)).when(bvExportsHelper).updateBatchVoucherExportRecord(eq(bvExport));
    doReturn(completedFuture(bv)).when(bvHelper).getBatchVoucherById(BV_ID);
    doReturn(completedFuture(null)).when(serviceSpy).uploadBatchVoucher(any());
    // When
    serviceSpy.uploadBatchVoucherExport(BV_EXPORT_ID).get();
    // Then
    verify(bvExportsHelper).getBatchVoucherExportById(BV_EXPORT_ID);
    verify(bvExportConfigHelper).getExportConfigCredentials(bvExportConf.getExportConfigs().get(0).getId());
    verify(bvHelper).getBatchVoucherById(BV_ID);
    verify(bvExportsHelper).updateBatchVoucherExportRecord(eq(bvExport));
    verify(bvExportConfigHelper).getExportConfigs(eq(1), eq(0), anyString());
    Assertions.assertEquals(BatchVoucherExport.Status.UPLOADED, bvExport.getStatus());
}
Also used : Response(javax.ws.rs.core.Response) ExportConfigCollection(org.folio.rest.jaxrs.model.ExportConfigCollection) BatchVoucher(org.folio.rest.jaxrs.model.BatchVoucher) BatchVoucherExport(org.folio.rest.jaxrs.model.BatchVoucherExport) Credentials(org.folio.rest.jaxrs.model.Credentials) Test(org.junit.jupiter.api.Test)

Example 5 with BatchVoucherExport

use of org.folio.rest.jaxrs.model.BatchVoucherExport in project mod-invoice by folio-org.

the class UploadBatchVoucherExportServiceTest method testShouldFailIfBatchVoucherExportNotFound.

@Test
public void testShouldFailIfBatchVoucherExportNotFound() {
    // given
    CompletableFuture<BatchVoucherExport> future = new CompletableFuture<>();
    future.completeExceptionally(new HttpException(404, "Not found"));
    when(bvExportsHelper.getBatchVoucherExportById(BV_EXPORT_ID)).thenReturn(future);
    // When
    CompletableFuture<Void> actFuture = service.uploadBatchVoucherExport(BV_EXPORT_ID);
    // Then
    actFuture.join();
    verify(bvExportsHelper).getBatchVoucherExportById(BV_EXPORT_ID);
}
Also used : CompletableFuture(java.util.concurrent.CompletableFuture) HttpException(org.folio.invoices.rest.exceptions.HttpException) BatchVoucherExport(org.folio.rest.jaxrs.model.BatchVoucherExport) Test(org.junit.jupiter.api.Test)

Aggregations

BatchVoucherExport (org.folio.rest.jaxrs.model.BatchVoucherExport)12 Test (org.junit.jupiter.api.Test)7 JsonObject (io.vertx.core.json.JsonObject)5 BatchVoucher (org.folio.rest.jaxrs.model.BatchVoucher)4 CompletableFuture (java.util.concurrent.CompletableFuture)3 AddressConverter (org.folio.converters.AddressConverter)2 HttpException (org.folio.invoices.rest.exceptions.HttpException)2 RestClient (org.folio.rest.core.RestClient)2 RequestContext (org.folio.rest.core.models.RequestContext)2 VoucherService (org.folio.rest.impl.VoucherService)2 InvoiceLinesRetrieveService (org.folio.services.InvoiceLinesRetrieveService)2 InvoiceRetrieveService (org.folio.services.InvoiceRetrieveService)2 VendorRetrieveService (org.folio.services.VendorRetrieveService)2 ConfigurationService (org.folio.services.configuration.ConfigurationService)2 ExchangeRateProviderResolver (org.folio.services.exchange.ExchangeRateProviderResolver)2 BaseInvoiceService (org.folio.services.invoice.BaseInvoiceService)2 InvoiceLineService (org.folio.services.invoice.InvoiceLineService)2 InvoiceService (org.folio.services.invoice.InvoiceService)2 OrderLineService (org.folio.services.order.OrderLineService)2 OrderService (org.folio.services.order.OrderService)2