Search in sources :

Example 1 with PURCHASE_ORDER_STORAGE

use of org.folio.orders.utils.ResourcePathResolver.PURCHASE_ORDER_STORAGE in project mod-orders by folio-org.

the class PurchaseOrdersApiTest method testPutOrdersByIdToChangeStatusToOpenButWithErrorCreatingItemsForSecondPOL.

@Test
void testPutOrdersByIdToChangeStatusToOpenButWithErrorCreatingItemsForSecondPOL() throws Exception {
    logger.info("=== Test Put Order By Id to change Order's status to Open - Inventory errors expected on items creation for second POL ===");
    /*==============  Preparation ==============*/
    // Get Open Order
    CompositePurchaseOrder reqData = getMockDraftOrder().mapTo(CompositePurchaseOrder.class);
    reqData.setId(ID_FOR_PRINT_MONOGRAPH_ORDER);
    reqData.setWorkflowStatus(CompositePurchaseOrder.WorkflowStatus.OPEN);
    MockServer.addMockTitles(reqData.getCompositePoLines());
    int polCount = reqData.getCompositePoLines().size();
    // Make sure that mock PO has 2 lines
    assertThat(reqData.getCompositePoLines(), hasSize(2));
    // Make sure that inventory interaction is expected for each PO line
    for (CompositePoLine pol : reqData.getCompositePoLines()) {
        assertTrue(calculateInventoryItemsQuantity(pol) > 0);
    }
    // Set location ids to one which emulates item creation failure
    CompositePoLine line1 = reqData.getCompositePoLines().get(0);
    CompositePoLine line2 = reqData.getCompositePoLines().get(1);
    reqData.getCompositePoLines().get(1).getLocations().forEach(location -> location.withLocationId(ID_FOR_INTERNAL_SERVER_ERROR));
    reqData.getCompositePoLines().get(1).getLocations().get(0).setLocationId(UUID.randomUUID().toString());
    preparePiecesForCompositePo(reqData);
    String path = String.format(COMPOSITE_ORDERS_BY_ID_PATH, reqData.getId());
    /*==============  Assert result ==============*/
    // Server Error expected as a result because not all items created
    verifyPut(path, JsonObject.mapFrom(reqData), APPLICATION_JSON, 500);
    List<JsonObject> respOrder = MockServer.serverRqRs.get(PURCHASE_ORDER_STORAGE, HttpMethod.GET);
    CompositePurchaseOrder compPo = respOrder.get(0).mapTo(CompositePurchaseOrder.class);
    List<JsonObject> respLines = MockServer.serverRqRs.get(PO_LINES_STORAGE, HttpMethod.PUT);
    CompositePoLine respLine1 = respLines.stream().filter(line -> line.getString(ID).equals(line1.getId())).peek(line -> line.remove("reportingCodes")).map(line -> line.mapTo(CompositePoLine.class)).distinct().findAny().get();
    CompositePoLine respLine2 = respLines.stream().filter(line -> line.getString(ID).equals(line2.getId())).peek(line -> line.remove("reportingCodes")).map(line -> line.mapTo(CompositePoLine.class)).findAny().get();
    compPo.setCompositePoLines(List.of(respLine1, respLine2));
    // Check that search of the existing instances and items was done for each PO line
    List<JsonObject> instancesSearches = getInstancesSearches();
    assertNotNull(instancesSearches);
    assertNotNull(getItemsSearches());
    assertNotNull(getPieceSearches());
    assertEquals(polCount, instancesSearches.size());
    // Check that 2 new instances created and items created successfully only for first POL
    List<JsonObject> createdInstances = getCreatedInstances();
    List<JsonObject> createdPieces = getCreatedPieces();
    assertNotNull(createdInstances);
    assertNotNull(getCreatedItems());
    assertNotNull(createdPieces);
    assertEquals(polCount, createdInstances.size());
    List<JsonObject> items = joinExistingAndNewItems();
    // Check instance Ids not exist for polines
    verifyInstanceLinksNotCreatedForPoLine();
    // Verify pieces were created
    assertEquals(calculateTotalQuantity(compPo.getCompositePoLines().get(0)) + calculateTotalQuantity(compPo.getCompositePoLines().get(1)) - 1, createdPieces.size());
    // Effectively remove non-processed locations with ID_FOR_INTERNAL_SERVER_ERROR to exclude them from
    // created pieces verification
    compPo.getCompositePoLines().forEach(poLine -> poLine.getLocations().removeIf(l -> {
        if (l.getLocationId().equals(ID_FOR_INTERNAL_SERVER_ERROR)) {
            if (poLine.getCost().getQuantityElectronic() != null) {
                poLine.getCost().setQuantityElectronic(poLine.getCost().getQuantityElectronic() - l.getQuantityElectronic());
            }
            if (poLine.getCost().getQuantityPhysical() != null) {
                poLine.getCost().setQuantityPhysical(poLine.getCost().getQuantityPhysical() - l.getQuantityPhysical());
            }
            return true;
        } else {
            return false;
        }
    }));
    verifyPiecesCreated(items, compPo.getCompositePoLines(), createdPieces);
}
Also used : PO_ID_OPEN_TO_BE_CLOSED(org.folio.TestConstants.PO_ID_OPEN_TO_BE_CLOSED) BeforeEach(org.junit.jupiter.api.BeforeEach) PO_WFD_ID_OPEN_STATUS(org.folio.TestConstants.PO_WFD_ID_OPEN_STATUS) ID_BAD_FORMAT(org.folio.TestConstants.ID_BAD_FORMAT) TestUtils.validatePoLineCreationErrorForNonPendingOrder(org.folio.TestUtils.validatePoLineCreationErrorForNonPendingOrder) INVALID_CONFIG_X_OKAPI_TENANT(org.folio.TestConstants.INVALID_CONFIG_X_OKAPI_TENANT) StringUtils(org.apache.commons.lang3.StringUtils) ApiTestSuite(org.folio.ApiTestSuite) ZERO_LOCATION_QTY(org.folio.rest.core.exceptions.ErrorCodes.ZERO_LOCATION_QTY) Mockito.doAnswer(org.mockito.Mockito.doAnswer) Map(java.util.Map) EMPTY_CONFIG_X_OKAPI_TENANT(org.folio.TestConstants.EMPTY_CONFIG_X_OKAPI_TENANT) ZoneOffset(java.time.ZoneOffset) ORDER_VENDOR_NOT_FOUND(org.folio.rest.core.exceptions.ErrorCodes.ORDER_VENDOR_NOT_FOUND) Errors(org.folio.rest.jaxrs.model.Errors) TestConfig.clearServiceInteractions(org.folio.TestConfig.clearServiceInteractions) ID_FOR_INTERNAL_SERVER_ERROR(org.folio.TestConstants.ID_FOR_INTERNAL_SERVER_ERROR) Matchers.notNullValue(org.hamcrest.Matchers.notNullValue) ORDER_CLOSED(org.folio.rest.core.exceptions.ErrorCodes.ORDER_CLOSED) Metadata(org.folio.rest.acq.model.finance.Metadata) VENDOR_ISSUE(org.folio.rest.core.exceptions.ErrorCodes.VENDOR_ISSUE) ErrorCodes(org.folio.rest.core.exceptions.ErrorCodes) OTHER(org.folio.rest.jaxrs.model.Piece.Format.OTHER) ZoneId(java.time.ZoneId) TestConfig.mockPort(org.folio.TestConfig.mockPort) Logger(org.apache.logging.log4j.Logger) Eresource(org.folio.rest.jaxrs.model.Eresource) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) MIN_PO_ID(org.folio.TestConstants.MIN_PO_ID) PO_LINES_STORAGE(org.folio.orders.utils.ResourcePathResolver.PO_LINES_STORAGE) MockServer.addMockEntry(org.folio.rest.impl.MockServer.addMockEntry) POProtectedFields(org.folio.orders.utils.POProtectedFields) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) RestClient(org.folio.rest.core.RestClient) INACTIVE_ACCESS_PROVIDER_B(org.folio.TestConstants.INACTIVE_ACCESS_PROVIDER_B) INACTIVE_ACCESS_PROVIDER_A(org.folio.TestConstants.INACTIVE_ACCESS_PROVIDER_A) HelperUtils.calculateInventoryItemsQuantity(org.folio.orders.utils.HelperUtils.calculateInventoryItemsQuantity) PaymentStatus(org.folio.rest.acq.model.PaymentStatus) BUDGET_IS_INACTIVE_TENANT(org.folio.rest.impl.MockServer.BUDGET_IS_INACTIVE_TENANT) ACQUISITIONS_MEMBERSHIPS(org.folio.orders.utils.ResourcePathResolver.ACQUISITIONS_MEMBERSHIPS) Contributor(org.folio.rest.jaxrs.model.Contributor) Every(org.hamcrest.core.Every) Headers(io.restassured.http.Headers) ZERO_COST_ELECTRONIC_QTY(org.folio.rest.core.exceptions.ErrorCodes.ZERO_COST_ELECTRONIC_QTY) OrderFormat(org.folio.rest.jaxrs.model.CompositePoLine.OrderFormat) Answer(org.mockito.stubbing.Answer) MockServer.getHoldingsSearches(org.folio.rest.impl.MockServer.getHoldingsSearches) RestTestUtils.verifySuccessGet(org.folio.RestTestUtils.verifySuccessGet) Matchers.hasSize(org.hamcrest.Matchers.hasSize) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) PO_LINES_EMPTY_COLLECTION_ID(org.folio.rest.impl.MockServer.PO_LINES_EMPTY_COLLECTION_ID) Physical(org.folio.rest.jaxrs.model.Physical) EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10(org.folio.TestConstants.EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10) RestTestUtils.verifyPostResponse(org.folio.RestTestUtils.verifyPostResponse) ELECTRONIC_COST_LOC_QTY_MISMATCH(org.folio.rest.core.exceptions.ErrorCodes.ELECTRONIC_COST_LOC_QTY_MISMATCH) MockServer.getPieceSearches(org.folio.rest.impl.MockServer.getPieceSearches) MockServer.getCreatedOrderSummaries(org.folio.rest.impl.MockServer.getCreatedOrderSummaries) PO_LINE_NUMBER(org.folio.orders.utils.ResourcePathResolver.PO_LINE_NUMBER) HelperUtils(org.folio.orders.utils.HelperUtils) TestConfig.initSpringContext(org.folio.TestConfig.initSpringContext) Vertx(io.vertx.core.Vertx) RequestEntry(org.folio.rest.core.models.RequestEntry) IOException(java.io.IOException) X_OKAPI_URL(org.folio.TestConfig.X_OKAPI_URL) BUDGET_NOT_FOUND_FOR_TRANSACTION(org.folio.rest.core.exceptions.ErrorCodes.BUDGET_NOT_FOUND_FOR_TRANSACTION) ITEM_RECORDS(org.folio.rest.impl.MockServer.ITEM_RECORDS) ACQUISITIONS_UNITS(org.folio.orders.utils.ResourcePathResolver.ACQUISITIONS_UNITS) ExecutionException(java.util.concurrent.ExecutionException) PO_LINE_ID_FOR_SUCCESS_CASE(org.folio.TestConstants.PO_LINE_ID_FOR_SUCCESS_CASE) LEDGER_NOT_FOUND_FOR_TRANSACTION_TENANT(org.folio.rest.impl.MockServer.LEDGER_NOT_FOUND_FOR_TRANSACTION_TENANT) AfterEach(org.junit.jupiter.api.AfterEach) BUDGET_NOT_FOUND_FOR_TRANSACTION_TENANT(org.folio.rest.impl.MockServer.BUDGET_NOT_FOUND_FOR_TRANSACTION_TENANT) InventoryInteractionTestHelper.verifyPiecesCreated(org.folio.helper.InventoryInteractionTestHelper.verifyPiecesCreated) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) PHYSICAL(org.folio.rest.jaxrs.model.Piece.Format.PHYSICAL) ENCUMBRANCE_PATH(org.folio.rest.impl.MockServer.ENCUMBRANCE_PATH) MockServer.getInstancesSearches(org.folio.rest.impl.MockServer.getInstancesSearches) PO_ID_PENDING_STATUS_WITH_PO_LINES(org.folio.TestConstants.PO_ID_PENDING_STATUS_WITH_PO_LINES) EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_1(org.folio.TestConstants.EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_1) FUND_CANNOT_BE_PAID_TENANT(org.folio.rest.impl.MockServer.FUND_CANNOT_BE_PAID_TENANT) Date(java.util.Date) CompletableFuture.completedFuture(java.util.concurrent.CompletableFuture.completedFuture) X_OKAPI_USER_ID(org.folio.TestConstants.X_OKAPI_USER_ID) TITLES(org.folio.orders.utils.ResourcePathResolver.TITLES) TestUtils.getInstanceId(org.folio.TestUtils.getInstanceId) Context(io.vertx.core.Context) ISBN_NOT_VALID(org.folio.rest.core.exceptions.ErrorCodes.ISBN_NOT_VALID) MockServer.getPurchaseOrderUpdates(org.folio.rest.impl.MockServer.getPurchaseOrderUpdates) MockServer.getCreatedItems(org.folio.rest.impl.MockServer.getCreatedItems) ReceiptStatus(org.folio.rest.jaxrs.model.CompositePoLine.ReceiptStatus) TestUtils(org.folio.TestUtils) ID(org.folio.TestConstants.ID) Location(org.folio.rest.jaxrs.model.Location) ORDER_VENDOR_IS_INACTIVE(org.folio.rest.core.exceptions.ErrorCodes.ORDER_VENDOR_IS_INACTIVE) ONGOING_NOT_ALLOWED(org.folio.rest.core.exceptions.ErrorCodes.ONGOING_NOT_ALLOWED) PurchaseOrder(org.folio.rest.jaxrs.model.PurchaseOrder) UUID(java.util.UUID) PO_ID_CLOSED_STATUS(org.folio.TestConstants.PO_ID_CLOSED_STATUS) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) Test(org.junit.jupiter.api.Test) ERROR_CAUSE(org.folio.helper.AbstractHelper.ERROR_CAUSE) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) Matchers.equalTo(org.hamcrest.Matchers.equalTo) LocalDate(java.time.LocalDate) POLineFieldNames(org.folio.orders.utils.POLineFieldNames) ACTIVE_ACCESS_PROVIDER_B(org.folio.TestConstants.ACTIVE_ACCESS_PROVIDER_B) POL_LINES_LIMIT_EXCEEDED(org.folio.rest.core.exceptions.ErrorCodes.POL_LINES_LIMIT_EXCEEDED) ACTIVE_ACCESS_PROVIDER_A(org.folio.TestConstants.ACTIVE_ACCESS_PROVIDER_A) InventoryInteractionTestHelper.verifyPiecesQuantityForSuccessCase(org.folio.helper.InventoryInteractionTestHelper.verifyPiecesQuantityForSuccessCase) ZERO_COST_PHYSICAL_QTY(org.folio.rest.core.exceptions.ErrorCodes.ZERO_COST_PHYSICAL_QTY) TestUtils.getMockData(org.folio.TestUtils.getMockData) InventoryInteractionTestHelper.verifyHoldingsCreated(org.folio.helper.InventoryInteractionTestHelper.verifyHoldingsCreated) VENDOR_ID(org.folio.orders.utils.ResourcePathResolver.VENDOR_ID) MISSING_MATERIAL_TYPE(org.folio.rest.core.exceptions.ErrorCodes.MISSING_MATERIAL_TYPE) Encumbrance(org.folio.rest.acq.model.finance.Encumbrance) Matchers.empty(org.hamcrest.Matchers.empty) TestUtils.verifyLocationQuantity(org.folio.TestUtils.verifyLocationQuantity) PO_ID_PENDING_STATUS_WITHOUT_PO_LINES(org.folio.TestConstants.PO_ID_PENDING_STATUS_WITHOUT_PO_LINES) InventoryInteractionTestHelper.verifyItemsCreated(org.folio.helper.InventoryInteractionTestHelper.verifyItemsCreated) MockServer.getLoanTypesSearches(org.folio.rest.impl.MockServer.getLoanTypesSearches) CloseReason(org.folio.rest.jaxrs.model.CloseReason) NON_ZERO_COST_ELECTRONIC_QTY(org.folio.rest.core.exceptions.ErrorCodes.NON_ZERO_COST_ELECTRONIC_QTY) Error(org.folio.rest.jaxrs.model.Error) Collectors.toList(java.util.stream.Collectors.toList) Response(io.restassured.response.Response) ApplicationConfig(org.folio.config.ApplicationConfig) INVALID_LANG(org.folio.TestConstants.INVALID_LANG) POL_ACCESS_PROVIDER_IS_INACTIVE(org.folio.rest.core.exceptions.ErrorCodes.POL_ACCESS_PROVIDER_IS_INACTIVE) LogManager(org.apache.logging.log4j.LogManager) MockServer.getCreatedHoldings(org.folio.rest.impl.MockServer.getCreatedHoldings) MockServer.getInstanceTypesSearches(org.folio.rest.impl.MockServer.getInstanceTypesSearches) Arrays(java.util.Arrays) HelperUtils.calculateTotalQuantity(org.folio.orders.utils.HelperUtils.calculateTotalQuantity) COST_UNIT_PRICE_ELECTRONIC_INVALID(org.folio.rest.core.exceptions.ErrorCodes.COST_UNIT_PRICE_ELECTRONIC_INVALID) Matchers.not(org.hamcrest.Matchers.not) Header(io.restassured.http.Header) NON_EXIST_CONFIG_X_OKAPI_TENANT(org.folio.TestConstants.NON_EXIST_CONFIG_X_OKAPI_TENANT) Disabled(org.junit.jupiter.api.Disabled) TransactionCollection(org.folio.rest.acq.model.finance.TransactionCollection) Is(org.hamcrest.core.Is) AfterAll(org.junit.jupiter.api.AfterAll) BigDecimal(java.math.BigDecimal) MockitoAnnotations(org.mockito.MockitoAnnotations) InventoryInteractionTestHelper.joinExistingAndNewItems(org.folio.helper.InventoryInteractionTestHelper.joinExistingAndNewItems) Matcher(java.util.regex.Matcher) BUDGET_EXPENSE_CLASS_NOT_FOUND(org.folio.rest.core.exceptions.ErrorCodes.BUDGET_EXPENSE_CLASS_NOT_FOUND) BeforeAll(org.junit.jupiter.api.BeforeAll) Matchers.nullValue(org.hamcrest.Matchers.nullValue) JsonObject(io.vertx.core.json.JsonObject) OKAPI_URL(org.folio.rest.RestConstants.OKAPI_URL) Mockito.doReturn(org.mockito.Mockito.doReturn) MISSING_ONGOING(org.folio.rest.core.exceptions.ErrorCodes.MISSING_ONGOING) RestTestUtils.verifyPut(org.folio.RestTestUtils.verifyPut) Set(java.util.Set) RestTestUtils.verifyDeleteResponse(org.folio.RestTestUtils.verifyDeleteResponse) Fund(org.folio.rest.acq.model.finance.Fund) Matchers.startsWith(org.hamcrest.Matchers.startsWith) TestConfig.isVerticleNotDeployed(org.folio.TestConfig.isVerticleNotDeployed) COST_UNIT_PRICE_INVALID(org.folio.rest.core.exceptions.ErrorCodes.COST_UNIT_PRICE_INVALID) PROTECTED_READ_ONLY_TENANT(org.folio.TestConstants.PROTECTED_READ_ONLY_TENANT) X_OKAPI_TOKEN(org.folio.TestConstants.X_OKAPI_TOKEN) PO_NUMBER(org.folio.orders.utils.ResourcePathResolver.PO_NUMBER) FinanceInteractionsTestHelper.verifyEncumbrancesOnPoUpdate(org.folio.helper.FinanceInteractionsTestHelper.verifyEncumbrancesOnPoUpdate) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) Matchers.greaterThan(org.hamcrest.Matchers.greaterThan) Matchers.is(org.hamcrest.Matchers.is) TEXT_PLAIN(javax.ws.rs.core.MediaType.TEXT_PLAIN) Matchers.containsString(org.hamcrest.Matchers.containsString) Matchers.endsWith(org.hamcrest.Matchers.endsWith) COMPOSITE_PO_LINES_PREFIX(org.folio.TestConstants.COMPOSITE_PO_LINES_PREFIX) CreateInventory(org.folio.rest.jaxrs.model.Physical.CreateInventory) Mock(org.mockito.Mock) ID_DOES_NOT_EXIST(org.folio.TestConstants.ID_DOES_NOT_EXIST) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) TransactionService(org.folio.service.finance.transaction.TransactionService) MockServer.getExistingOrderSummaries(org.folio.rest.impl.MockServer.getExistingOrderSummaries) Transaction(org.folio.rest.acq.model.finance.Transaction) MockServer.getCreatedEncumbrances(org.folio.rest.impl.MockServer.getCreatedEncumbrances) PAYMENT_STATUS(org.folio.orders.utils.ResourcePathResolver.PAYMENT_STATUS) ArrayList(java.util.ArrayList) MockServer.getQueryParams(org.folio.rest.impl.MockServer.getQueryParams) INSTANCE_TYPE_CONTAINS_CODE_AS_INSTANCE_STATUS_TENANT_HEADER(org.folio.TestConstants.INSTANCE_TYPE_CONTAINS_CODE_AS_INSTANCE_STATUS_TENANT_HEADER) InvocationOnMock(org.mockito.invocation.InvocationOnMock) OKAPI_HEADER_PERMISSIONS(org.folio.helper.PurchaseOrderHelper.OKAPI_HEADER_PERMISSIONS) Matchers.lessThan(org.hamcrest.Matchers.lessThan) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) InventoryInteractionTestHelper.verifyInventoryInteraction(org.folio.helper.InventoryInteractionTestHelper.verifyInventoryInteraction) InjectMocks(org.mockito.InjectMocks) COMP_ORDER_MOCK_DATA_PATH(org.folio.TestConstants.COMP_ORDER_MOCK_DATA_PATH) RestTestUtils.verifyGet(org.folio.RestTestUtils.verifyGet) Piece(org.folio.rest.jaxrs.model.Piece) COMPOSITE_PO_LINES(org.folio.orders.utils.HelperUtils.COMPOSITE_PO_LINES) Assertions.assertArrayEquals(org.junit.jupiter.api.Assertions.assertArrayEquals) JsonArray(io.vertx.core.json.JsonArray) AcqDesiredPermissions(org.folio.orders.utils.AcqDesiredPermissions) TestUtils.getMockAsJson(org.folio.TestUtils.getMockAsJson) GENERIC_ERROR_CODE(org.folio.rest.core.exceptions.ErrorCodes.GENERIC_ERROR_CODE) Cost(org.folio.rest.jaxrs.model.Cost) MockServer.getItemsSearches(org.folio.rest.impl.MockServer.getItemsSearches) MockServer.getContributorNameTypesSearches(org.folio.rest.impl.MockServer.getContributorNameTypesSearches) TimeoutException(java.util.concurrent.TimeoutException) PoLine(org.folio.rest.jaxrs.model.PoLine) Ongoing(org.folio.rest.acq.model.Ongoing) MISMATCH_BETWEEN_ID_IN_PATH_AND_BODY(org.folio.rest.core.exceptions.ErrorCodes.MISMATCH_BETWEEN_ID_IN_PATH_AND_BODY) MockServer.getItemUpdates(org.folio.rest.impl.MockServer.getItemUpdates) FUNDS(org.folio.orders.utils.ResourcePathResolver.FUNDS) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) StringUtils.containsAny(org.apache.commons.lang3.StringUtils.containsAny) TestUtils.getMinimalContentCompositePurchaseOrder(org.folio.TestUtils.getMinimalContentCompositePurchaseOrder) InventoryInteractionTestHelper.verifyOpenOrderPiecesCreated(org.folio.helper.InventoryInteractionTestHelper.verifyOpenOrderPiecesCreated) APPLICATION_JSON(javax.ws.rs.core.MediaType.APPLICATION_JSON) BAD_QUERY(org.folio.TestConstants.BAD_QUERY) NON_EXIST_LOAN_TYPE_TENANT_HEADER(org.folio.TestConstants.NON_EXIST_LOAN_TYPE_TENANT_HEADER) RestTestUtils.checkPreventProtectedFieldsModificationRule(org.folio.RestTestUtils.checkPreventProtectedFieldsModificationRule) PIECES_TO_BE_DELETED(org.folio.rest.core.exceptions.ErrorCodes.PIECES_TO_BE_DELETED) FundDistribution(org.folio.rest.jaxrs.model.FundDistribution) HasPropertyWithValue(org.hamcrest.beans.HasPropertyWithValue) INSTANCE_ID_NOT_ALLOWED_FOR_PACKAGE_POLINE(org.folio.rest.core.exceptions.ErrorCodes.INSTANCE_ID_NOT_ALLOWED_FOR_PACKAGE_POLINE) InventoryInteractionTestHelper.verifyInventoryNonInteraction(org.folio.helper.InventoryInteractionTestHelper.verifyInventoryNonInteraction) InventoryInteractionTestHelper.verifyInstanceLinksForUpdatedOrder(org.folio.helper.InventoryInteractionTestHelper.verifyInstanceLinksForUpdatedOrder) PO_ID_OPEN_STATUS(org.folio.TestConstants.PO_ID_OPEN_STATUS) List(java.util.List) DistributionType(org.folio.rest.jaxrs.model.FundDistribution.DistributionType) EncumbranceService(org.folio.service.finance.transaction.EncumbranceService) Parameter(org.folio.rest.jaxrs.model.Parameter) Pattern(java.util.regex.Pattern) AcquisitionsUnitMembershipCollection(org.folio.rest.jaxrs.model.AcquisitionsUnitMembershipCollection) PIECES_STORAGE(org.folio.orders.utils.ResourcePathResolver.PIECES_STORAGE) RECEIPT_STATUS(org.folio.orders.utils.ResourcePathResolver.RECEIPT_STATUS) ORGANIZATION_NOT_A_VENDOR(org.folio.rest.core.exceptions.ErrorCodes.ORGANIZATION_NOT_A_VENDOR) X_ECHO_STATUS(org.folio.TestConstants.X_ECHO_STATUS) OKAPI_HEADER_TENANT(org.folio.rest.RestVerticle.OKAPI_HEADER_TENANT) HashMap(java.util.HashMap) PO_LINE_NUMBER_VALUE(org.folio.TestConstants.PO_LINE_NUMBER_VALUE) MockServer.getCreatedInstances(org.folio.rest.impl.MockServer.getCreatedInstances) MockServer.getCreatedPieces(org.folio.rest.impl.MockServer.getCreatedPieces) Title(org.folio.rest.jaxrs.model.Title) CompositePurchaseOrder(org.folio.rest.jaxrs.model.CompositePurchaseOrder) ObjectUtils(org.apache.commons.lang3.ObjectUtils) RequestContext(org.folio.rest.core.models.RequestContext) EMPTY(org.apache.commons.lang3.StringUtils.EMPTY) RestTestUtils.prepareHeaders(org.folio.RestTestUtils.prepareHeaders) PURCHASE_ORDER_STORAGE(org.folio.orders.utils.ResourcePathResolver.PURCHASE_ORDER_STORAGE) PO_ID_OPEN_TO_CANCEL(org.folio.TestConstants.PO_ID_OPEN_TO_CANCEL) INCORRECT_FUND_DISTRIBUTION_TOTAL(org.folio.rest.core.exceptions.ErrorCodes.INCORRECT_FUND_DISTRIBUTION_TOTAL) PHYSICAL_COST_LOC_QTY_MISMATCH(org.folio.rest.core.exceptions.ErrorCodes.PHYSICAL_COST_LOC_QTY_MISMATCH) NON_EXIST_INSTANCE_STATUS_TENANT_HEADER(org.folio.TestConstants.NON_EXIST_INSTANCE_STATUS_TENANT_HEADER) INACTIVE_EXPENSE_CLASS(org.folio.rest.core.exceptions.ErrorCodes.INACTIVE_EXPENSE_CLASS) MockServer.getInstanceStatusesSearches(org.folio.rest.impl.MockServer.getInstanceStatusesSearches) PurchaseOrderCollection(org.folio.rest.jaxrs.model.PurchaseOrderCollection) HttpMethod(io.vertx.core.http.HttpMethod) HttpStatus(org.folio.HttpStatus) X_OKAPI_USER_ID_WITH_ACQ_UNITS(org.folio.TestConstants.X_OKAPI_USER_ID_WITH_ACQ_UNITS) NON_EXIST_INSTANCE_TYPE_TENANT_HEADER(org.folio.TestConstants.NON_EXIST_INSTANCE_TYPE_TENANT_HEADER) WorkflowStatus(org.folio.rest.jaxrs.model.CompositePurchaseOrder.WorkflowStatus) ELECTRONIC(org.folio.rest.jaxrs.model.Piece.Format.ELECTRONIC) Collections(java.util.Collections) ORDER_OPEN(org.folio.rest.core.exceptions.ErrorCodes.ORDER_OPEN) FinanceInteractionsTestHelper.verifyEncumbrancesOnPoCreation(org.folio.helper.FinanceInteractionsTestHelper.verifyEncumbrancesOnPoCreation) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) JsonObject(io.vertx.core.json.JsonObject) Matchers.containsString(org.hamcrest.Matchers.containsString) TestUtils.getMinimalContentCompositePurchaseOrder(org.folio.TestUtils.getMinimalContentCompositePurchaseOrder) CompositePurchaseOrder(org.folio.rest.jaxrs.model.CompositePurchaseOrder) Test(org.junit.jupiter.api.Test)

Example 2 with PURCHASE_ORDER_STORAGE

use of org.folio.orders.utils.ResourcePathResolver.PURCHASE_ORDER_STORAGE in project mod-orders by folio-org.

the class PurchaseOrdersApiTest method testPutOrdersByIdTotalPiecesEqualsTotalQuantityWhenCreateInventoryIsFalse.

@Test
@Disabled
// TODO must be fixed in scope of https://issues.folio.org/browse/MODORDERS-587
void testPutOrdersByIdTotalPiecesEqualsTotalQuantityWhenCreateInventoryIsFalse() throws Exception {
    logger.info("=== Test Put Order By Id create Pieces when Item record does not exist ===");
    CompositePurchaseOrder reqData = getMockDraftOrder().mapTo(CompositePurchaseOrder.class);
    reqData.setId(ID_FOR_PRINT_MONOGRAPH_ORDER);
    // Make sure that mock PO has 2 po lines
    assertThat(reqData.getCompositePoLines(), hasSize(2));
    MockServer.addMockTitles(reqData.getCompositePoLines());
    CompositePoLine line1 = reqData.getCompositePoLines().get(0);
    CompositePoLine line2 = reqData.getCompositePoLines().get(1);
    line2.getEresource().setCreateInventory(Eresource.CreateInventory.NONE);
    reqData.setWorkflowStatus(CompositePurchaseOrder.WorkflowStatus.OPEN);
    preparePiecesForCompositePo(reqData);
    verifyPut(String.format(COMPOSITE_ORDERS_BY_ID_PATH, reqData.getId()), JsonObject.mapFrom(reqData), "", 204);
    List<JsonObject> respOrder = MockServer.serverRqRs.get(PURCHASE_ORDER_STORAGE, HttpMethod.GET);
    CompositePurchaseOrder compPo = respOrder.get(0).mapTo(CompositePurchaseOrder.class);
    List<JsonObject> respLines = MockServer.serverRqRs.get(PO_LINES_STORAGE, HttpMethod.PUT);
    CompositePoLine respLine1 = respLines.stream().filter(line -> line.getString(ID).equals(line1.getId())).peek(line -> line.remove("reportingCodes")).map(line -> line.mapTo(CompositePoLine.class)).filter(line -> Objects.nonNull(line.getLocations().get(0).getHoldingId())).distinct().findAny().get();
    CompositePoLine respLine2 = respLines.stream().filter(line -> line.getString(ID).equals(line2.getId())).peek(line -> line.remove("reportingCodes")).map(line -> line.mapTo(CompositePoLine.class)).findAny().get();
    compPo.setCompositePoLines(List.of(respLine1, respLine2));
    List<JsonObject> items = joinExistingAndNewItems();
    List<JsonObject> createdPieces = getCreatedPieces();
    verifyPiecesQuantityForSuccessCase(compPo.getCompositePoLines(), createdPieces);
    verifyOpenOrderPiecesCreated(items, compPo.getCompositePoLines(), createdPieces, 0);
}
Also used : PO_ID_OPEN_TO_BE_CLOSED(org.folio.TestConstants.PO_ID_OPEN_TO_BE_CLOSED) BeforeEach(org.junit.jupiter.api.BeforeEach) PO_WFD_ID_OPEN_STATUS(org.folio.TestConstants.PO_WFD_ID_OPEN_STATUS) ID_BAD_FORMAT(org.folio.TestConstants.ID_BAD_FORMAT) TestUtils.validatePoLineCreationErrorForNonPendingOrder(org.folio.TestUtils.validatePoLineCreationErrorForNonPendingOrder) INVALID_CONFIG_X_OKAPI_TENANT(org.folio.TestConstants.INVALID_CONFIG_X_OKAPI_TENANT) StringUtils(org.apache.commons.lang3.StringUtils) ApiTestSuite(org.folio.ApiTestSuite) ZERO_LOCATION_QTY(org.folio.rest.core.exceptions.ErrorCodes.ZERO_LOCATION_QTY) Mockito.doAnswer(org.mockito.Mockito.doAnswer) Map(java.util.Map) EMPTY_CONFIG_X_OKAPI_TENANT(org.folio.TestConstants.EMPTY_CONFIG_X_OKAPI_TENANT) ZoneOffset(java.time.ZoneOffset) ORDER_VENDOR_NOT_FOUND(org.folio.rest.core.exceptions.ErrorCodes.ORDER_VENDOR_NOT_FOUND) Errors(org.folio.rest.jaxrs.model.Errors) TestConfig.clearServiceInteractions(org.folio.TestConfig.clearServiceInteractions) ID_FOR_INTERNAL_SERVER_ERROR(org.folio.TestConstants.ID_FOR_INTERNAL_SERVER_ERROR) Matchers.notNullValue(org.hamcrest.Matchers.notNullValue) ORDER_CLOSED(org.folio.rest.core.exceptions.ErrorCodes.ORDER_CLOSED) Metadata(org.folio.rest.acq.model.finance.Metadata) VENDOR_ISSUE(org.folio.rest.core.exceptions.ErrorCodes.VENDOR_ISSUE) ErrorCodes(org.folio.rest.core.exceptions.ErrorCodes) OTHER(org.folio.rest.jaxrs.model.Piece.Format.OTHER) ZoneId(java.time.ZoneId) TestConfig.mockPort(org.folio.TestConfig.mockPort) Logger(org.apache.logging.log4j.Logger) Eresource(org.folio.rest.jaxrs.model.Eresource) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) MIN_PO_ID(org.folio.TestConstants.MIN_PO_ID) PO_LINES_STORAGE(org.folio.orders.utils.ResourcePathResolver.PO_LINES_STORAGE) MockServer.addMockEntry(org.folio.rest.impl.MockServer.addMockEntry) POProtectedFields(org.folio.orders.utils.POProtectedFields) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) RestClient(org.folio.rest.core.RestClient) INACTIVE_ACCESS_PROVIDER_B(org.folio.TestConstants.INACTIVE_ACCESS_PROVIDER_B) INACTIVE_ACCESS_PROVIDER_A(org.folio.TestConstants.INACTIVE_ACCESS_PROVIDER_A) HelperUtils.calculateInventoryItemsQuantity(org.folio.orders.utils.HelperUtils.calculateInventoryItemsQuantity) PaymentStatus(org.folio.rest.acq.model.PaymentStatus) BUDGET_IS_INACTIVE_TENANT(org.folio.rest.impl.MockServer.BUDGET_IS_INACTIVE_TENANT) ACQUISITIONS_MEMBERSHIPS(org.folio.orders.utils.ResourcePathResolver.ACQUISITIONS_MEMBERSHIPS) Contributor(org.folio.rest.jaxrs.model.Contributor) Every(org.hamcrest.core.Every) Headers(io.restassured.http.Headers) ZERO_COST_ELECTRONIC_QTY(org.folio.rest.core.exceptions.ErrorCodes.ZERO_COST_ELECTRONIC_QTY) OrderFormat(org.folio.rest.jaxrs.model.CompositePoLine.OrderFormat) Answer(org.mockito.stubbing.Answer) MockServer.getHoldingsSearches(org.folio.rest.impl.MockServer.getHoldingsSearches) RestTestUtils.verifySuccessGet(org.folio.RestTestUtils.verifySuccessGet) Matchers.hasSize(org.hamcrest.Matchers.hasSize) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) PO_LINES_EMPTY_COLLECTION_ID(org.folio.rest.impl.MockServer.PO_LINES_EMPTY_COLLECTION_ID) Physical(org.folio.rest.jaxrs.model.Physical) EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10(org.folio.TestConstants.EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10) RestTestUtils.verifyPostResponse(org.folio.RestTestUtils.verifyPostResponse) ELECTRONIC_COST_LOC_QTY_MISMATCH(org.folio.rest.core.exceptions.ErrorCodes.ELECTRONIC_COST_LOC_QTY_MISMATCH) MockServer.getPieceSearches(org.folio.rest.impl.MockServer.getPieceSearches) MockServer.getCreatedOrderSummaries(org.folio.rest.impl.MockServer.getCreatedOrderSummaries) PO_LINE_NUMBER(org.folio.orders.utils.ResourcePathResolver.PO_LINE_NUMBER) HelperUtils(org.folio.orders.utils.HelperUtils) TestConfig.initSpringContext(org.folio.TestConfig.initSpringContext) Vertx(io.vertx.core.Vertx) RequestEntry(org.folio.rest.core.models.RequestEntry) IOException(java.io.IOException) X_OKAPI_URL(org.folio.TestConfig.X_OKAPI_URL) BUDGET_NOT_FOUND_FOR_TRANSACTION(org.folio.rest.core.exceptions.ErrorCodes.BUDGET_NOT_FOUND_FOR_TRANSACTION) ITEM_RECORDS(org.folio.rest.impl.MockServer.ITEM_RECORDS) ACQUISITIONS_UNITS(org.folio.orders.utils.ResourcePathResolver.ACQUISITIONS_UNITS) ExecutionException(java.util.concurrent.ExecutionException) PO_LINE_ID_FOR_SUCCESS_CASE(org.folio.TestConstants.PO_LINE_ID_FOR_SUCCESS_CASE) LEDGER_NOT_FOUND_FOR_TRANSACTION_TENANT(org.folio.rest.impl.MockServer.LEDGER_NOT_FOUND_FOR_TRANSACTION_TENANT) AfterEach(org.junit.jupiter.api.AfterEach) BUDGET_NOT_FOUND_FOR_TRANSACTION_TENANT(org.folio.rest.impl.MockServer.BUDGET_NOT_FOUND_FOR_TRANSACTION_TENANT) InventoryInteractionTestHelper.verifyPiecesCreated(org.folio.helper.InventoryInteractionTestHelper.verifyPiecesCreated) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) PHYSICAL(org.folio.rest.jaxrs.model.Piece.Format.PHYSICAL) ENCUMBRANCE_PATH(org.folio.rest.impl.MockServer.ENCUMBRANCE_PATH) MockServer.getInstancesSearches(org.folio.rest.impl.MockServer.getInstancesSearches) PO_ID_PENDING_STATUS_WITH_PO_LINES(org.folio.TestConstants.PO_ID_PENDING_STATUS_WITH_PO_LINES) EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_1(org.folio.TestConstants.EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_1) FUND_CANNOT_BE_PAID_TENANT(org.folio.rest.impl.MockServer.FUND_CANNOT_BE_PAID_TENANT) Date(java.util.Date) CompletableFuture.completedFuture(java.util.concurrent.CompletableFuture.completedFuture) X_OKAPI_USER_ID(org.folio.TestConstants.X_OKAPI_USER_ID) TITLES(org.folio.orders.utils.ResourcePathResolver.TITLES) TestUtils.getInstanceId(org.folio.TestUtils.getInstanceId) Context(io.vertx.core.Context) ISBN_NOT_VALID(org.folio.rest.core.exceptions.ErrorCodes.ISBN_NOT_VALID) MockServer.getPurchaseOrderUpdates(org.folio.rest.impl.MockServer.getPurchaseOrderUpdates) MockServer.getCreatedItems(org.folio.rest.impl.MockServer.getCreatedItems) ReceiptStatus(org.folio.rest.jaxrs.model.CompositePoLine.ReceiptStatus) TestUtils(org.folio.TestUtils) ID(org.folio.TestConstants.ID) Location(org.folio.rest.jaxrs.model.Location) ORDER_VENDOR_IS_INACTIVE(org.folio.rest.core.exceptions.ErrorCodes.ORDER_VENDOR_IS_INACTIVE) ONGOING_NOT_ALLOWED(org.folio.rest.core.exceptions.ErrorCodes.ONGOING_NOT_ALLOWED) PurchaseOrder(org.folio.rest.jaxrs.model.PurchaseOrder) UUID(java.util.UUID) PO_ID_CLOSED_STATUS(org.folio.TestConstants.PO_ID_CLOSED_STATUS) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) Test(org.junit.jupiter.api.Test) ERROR_CAUSE(org.folio.helper.AbstractHelper.ERROR_CAUSE) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) Matchers.equalTo(org.hamcrest.Matchers.equalTo) LocalDate(java.time.LocalDate) POLineFieldNames(org.folio.orders.utils.POLineFieldNames) ACTIVE_ACCESS_PROVIDER_B(org.folio.TestConstants.ACTIVE_ACCESS_PROVIDER_B) POL_LINES_LIMIT_EXCEEDED(org.folio.rest.core.exceptions.ErrorCodes.POL_LINES_LIMIT_EXCEEDED) ACTIVE_ACCESS_PROVIDER_A(org.folio.TestConstants.ACTIVE_ACCESS_PROVIDER_A) InventoryInteractionTestHelper.verifyPiecesQuantityForSuccessCase(org.folio.helper.InventoryInteractionTestHelper.verifyPiecesQuantityForSuccessCase) ZERO_COST_PHYSICAL_QTY(org.folio.rest.core.exceptions.ErrorCodes.ZERO_COST_PHYSICAL_QTY) TestUtils.getMockData(org.folio.TestUtils.getMockData) InventoryInteractionTestHelper.verifyHoldingsCreated(org.folio.helper.InventoryInteractionTestHelper.verifyHoldingsCreated) VENDOR_ID(org.folio.orders.utils.ResourcePathResolver.VENDOR_ID) MISSING_MATERIAL_TYPE(org.folio.rest.core.exceptions.ErrorCodes.MISSING_MATERIAL_TYPE) Encumbrance(org.folio.rest.acq.model.finance.Encumbrance) Matchers.empty(org.hamcrest.Matchers.empty) TestUtils.verifyLocationQuantity(org.folio.TestUtils.verifyLocationQuantity) PO_ID_PENDING_STATUS_WITHOUT_PO_LINES(org.folio.TestConstants.PO_ID_PENDING_STATUS_WITHOUT_PO_LINES) InventoryInteractionTestHelper.verifyItemsCreated(org.folio.helper.InventoryInteractionTestHelper.verifyItemsCreated) MockServer.getLoanTypesSearches(org.folio.rest.impl.MockServer.getLoanTypesSearches) CloseReason(org.folio.rest.jaxrs.model.CloseReason) NON_ZERO_COST_ELECTRONIC_QTY(org.folio.rest.core.exceptions.ErrorCodes.NON_ZERO_COST_ELECTRONIC_QTY) Error(org.folio.rest.jaxrs.model.Error) Collectors.toList(java.util.stream.Collectors.toList) Response(io.restassured.response.Response) ApplicationConfig(org.folio.config.ApplicationConfig) INVALID_LANG(org.folio.TestConstants.INVALID_LANG) POL_ACCESS_PROVIDER_IS_INACTIVE(org.folio.rest.core.exceptions.ErrorCodes.POL_ACCESS_PROVIDER_IS_INACTIVE) LogManager(org.apache.logging.log4j.LogManager) MockServer.getCreatedHoldings(org.folio.rest.impl.MockServer.getCreatedHoldings) MockServer.getInstanceTypesSearches(org.folio.rest.impl.MockServer.getInstanceTypesSearches) Arrays(java.util.Arrays) HelperUtils.calculateTotalQuantity(org.folio.orders.utils.HelperUtils.calculateTotalQuantity) COST_UNIT_PRICE_ELECTRONIC_INVALID(org.folio.rest.core.exceptions.ErrorCodes.COST_UNIT_PRICE_ELECTRONIC_INVALID) Matchers.not(org.hamcrest.Matchers.not) Header(io.restassured.http.Header) NON_EXIST_CONFIG_X_OKAPI_TENANT(org.folio.TestConstants.NON_EXIST_CONFIG_X_OKAPI_TENANT) Disabled(org.junit.jupiter.api.Disabled) TransactionCollection(org.folio.rest.acq.model.finance.TransactionCollection) Is(org.hamcrest.core.Is) AfterAll(org.junit.jupiter.api.AfterAll) BigDecimal(java.math.BigDecimal) MockitoAnnotations(org.mockito.MockitoAnnotations) InventoryInteractionTestHelper.joinExistingAndNewItems(org.folio.helper.InventoryInteractionTestHelper.joinExistingAndNewItems) Matcher(java.util.regex.Matcher) BUDGET_EXPENSE_CLASS_NOT_FOUND(org.folio.rest.core.exceptions.ErrorCodes.BUDGET_EXPENSE_CLASS_NOT_FOUND) BeforeAll(org.junit.jupiter.api.BeforeAll) Matchers.nullValue(org.hamcrest.Matchers.nullValue) JsonObject(io.vertx.core.json.JsonObject) OKAPI_URL(org.folio.rest.RestConstants.OKAPI_URL) Mockito.doReturn(org.mockito.Mockito.doReturn) MISSING_ONGOING(org.folio.rest.core.exceptions.ErrorCodes.MISSING_ONGOING) RestTestUtils.verifyPut(org.folio.RestTestUtils.verifyPut) Set(java.util.Set) RestTestUtils.verifyDeleteResponse(org.folio.RestTestUtils.verifyDeleteResponse) Fund(org.folio.rest.acq.model.finance.Fund) Matchers.startsWith(org.hamcrest.Matchers.startsWith) TestConfig.isVerticleNotDeployed(org.folio.TestConfig.isVerticleNotDeployed) COST_UNIT_PRICE_INVALID(org.folio.rest.core.exceptions.ErrorCodes.COST_UNIT_PRICE_INVALID) PROTECTED_READ_ONLY_TENANT(org.folio.TestConstants.PROTECTED_READ_ONLY_TENANT) X_OKAPI_TOKEN(org.folio.TestConstants.X_OKAPI_TOKEN) PO_NUMBER(org.folio.orders.utils.ResourcePathResolver.PO_NUMBER) FinanceInteractionsTestHelper.verifyEncumbrancesOnPoUpdate(org.folio.helper.FinanceInteractionsTestHelper.verifyEncumbrancesOnPoUpdate) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) Matchers.greaterThan(org.hamcrest.Matchers.greaterThan) Matchers.is(org.hamcrest.Matchers.is) TEXT_PLAIN(javax.ws.rs.core.MediaType.TEXT_PLAIN) Matchers.containsString(org.hamcrest.Matchers.containsString) Matchers.endsWith(org.hamcrest.Matchers.endsWith) COMPOSITE_PO_LINES_PREFIX(org.folio.TestConstants.COMPOSITE_PO_LINES_PREFIX) CreateInventory(org.folio.rest.jaxrs.model.Physical.CreateInventory) Mock(org.mockito.Mock) ID_DOES_NOT_EXIST(org.folio.TestConstants.ID_DOES_NOT_EXIST) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) TransactionService(org.folio.service.finance.transaction.TransactionService) MockServer.getExistingOrderSummaries(org.folio.rest.impl.MockServer.getExistingOrderSummaries) Transaction(org.folio.rest.acq.model.finance.Transaction) MockServer.getCreatedEncumbrances(org.folio.rest.impl.MockServer.getCreatedEncumbrances) PAYMENT_STATUS(org.folio.orders.utils.ResourcePathResolver.PAYMENT_STATUS) ArrayList(java.util.ArrayList) MockServer.getQueryParams(org.folio.rest.impl.MockServer.getQueryParams) INSTANCE_TYPE_CONTAINS_CODE_AS_INSTANCE_STATUS_TENANT_HEADER(org.folio.TestConstants.INSTANCE_TYPE_CONTAINS_CODE_AS_INSTANCE_STATUS_TENANT_HEADER) InvocationOnMock(org.mockito.invocation.InvocationOnMock) OKAPI_HEADER_PERMISSIONS(org.folio.helper.PurchaseOrderHelper.OKAPI_HEADER_PERMISSIONS) Matchers.lessThan(org.hamcrest.Matchers.lessThan) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) InventoryInteractionTestHelper.verifyInventoryInteraction(org.folio.helper.InventoryInteractionTestHelper.verifyInventoryInteraction) InjectMocks(org.mockito.InjectMocks) COMP_ORDER_MOCK_DATA_PATH(org.folio.TestConstants.COMP_ORDER_MOCK_DATA_PATH) RestTestUtils.verifyGet(org.folio.RestTestUtils.verifyGet) Piece(org.folio.rest.jaxrs.model.Piece) COMPOSITE_PO_LINES(org.folio.orders.utils.HelperUtils.COMPOSITE_PO_LINES) Assertions.assertArrayEquals(org.junit.jupiter.api.Assertions.assertArrayEquals) JsonArray(io.vertx.core.json.JsonArray) AcqDesiredPermissions(org.folio.orders.utils.AcqDesiredPermissions) TestUtils.getMockAsJson(org.folio.TestUtils.getMockAsJson) GENERIC_ERROR_CODE(org.folio.rest.core.exceptions.ErrorCodes.GENERIC_ERROR_CODE) Cost(org.folio.rest.jaxrs.model.Cost) MockServer.getItemsSearches(org.folio.rest.impl.MockServer.getItemsSearches) MockServer.getContributorNameTypesSearches(org.folio.rest.impl.MockServer.getContributorNameTypesSearches) TimeoutException(java.util.concurrent.TimeoutException) PoLine(org.folio.rest.jaxrs.model.PoLine) Ongoing(org.folio.rest.acq.model.Ongoing) MISMATCH_BETWEEN_ID_IN_PATH_AND_BODY(org.folio.rest.core.exceptions.ErrorCodes.MISMATCH_BETWEEN_ID_IN_PATH_AND_BODY) MockServer.getItemUpdates(org.folio.rest.impl.MockServer.getItemUpdates) FUNDS(org.folio.orders.utils.ResourcePathResolver.FUNDS) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) StringUtils.containsAny(org.apache.commons.lang3.StringUtils.containsAny) TestUtils.getMinimalContentCompositePurchaseOrder(org.folio.TestUtils.getMinimalContentCompositePurchaseOrder) InventoryInteractionTestHelper.verifyOpenOrderPiecesCreated(org.folio.helper.InventoryInteractionTestHelper.verifyOpenOrderPiecesCreated) APPLICATION_JSON(javax.ws.rs.core.MediaType.APPLICATION_JSON) BAD_QUERY(org.folio.TestConstants.BAD_QUERY) NON_EXIST_LOAN_TYPE_TENANT_HEADER(org.folio.TestConstants.NON_EXIST_LOAN_TYPE_TENANT_HEADER) RestTestUtils.checkPreventProtectedFieldsModificationRule(org.folio.RestTestUtils.checkPreventProtectedFieldsModificationRule) PIECES_TO_BE_DELETED(org.folio.rest.core.exceptions.ErrorCodes.PIECES_TO_BE_DELETED) FundDistribution(org.folio.rest.jaxrs.model.FundDistribution) HasPropertyWithValue(org.hamcrest.beans.HasPropertyWithValue) INSTANCE_ID_NOT_ALLOWED_FOR_PACKAGE_POLINE(org.folio.rest.core.exceptions.ErrorCodes.INSTANCE_ID_NOT_ALLOWED_FOR_PACKAGE_POLINE) InventoryInteractionTestHelper.verifyInventoryNonInteraction(org.folio.helper.InventoryInteractionTestHelper.verifyInventoryNonInteraction) InventoryInteractionTestHelper.verifyInstanceLinksForUpdatedOrder(org.folio.helper.InventoryInteractionTestHelper.verifyInstanceLinksForUpdatedOrder) PO_ID_OPEN_STATUS(org.folio.TestConstants.PO_ID_OPEN_STATUS) List(java.util.List) DistributionType(org.folio.rest.jaxrs.model.FundDistribution.DistributionType) EncumbranceService(org.folio.service.finance.transaction.EncumbranceService) Parameter(org.folio.rest.jaxrs.model.Parameter) Pattern(java.util.regex.Pattern) AcquisitionsUnitMembershipCollection(org.folio.rest.jaxrs.model.AcquisitionsUnitMembershipCollection) PIECES_STORAGE(org.folio.orders.utils.ResourcePathResolver.PIECES_STORAGE) RECEIPT_STATUS(org.folio.orders.utils.ResourcePathResolver.RECEIPT_STATUS) ORGANIZATION_NOT_A_VENDOR(org.folio.rest.core.exceptions.ErrorCodes.ORGANIZATION_NOT_A_VENDOR) X_ECHO_STATUS(org.folio.TestConstants.X_ECHO_STATUS) OKAPI_HEADER_TENANT(org.folio.rest.RestVerticle.OKAPI_HEADER_TENANT) HashMap(java.util.HashMap) PO_LINE_NUMBER_VALUE(org.folio.TestConstants.PO_LINE_NUMBER_VALUE) MockServer.getCreatedInstances(org.folio.rest.impl.MockServer.getCreatedInstances) MockServer.getCreatedPieces(org.folio.rest.impl.MockServer.getCreatedPieces) Title(org.folio.rest.jaxrs.model.Title) CompositePurchaseOrder(org.folio.rest.jaxrs.model.CompositePurchaseOrder) ObjectUtils(org.apache.commons.lang3.ObjectUtils) RequestContext(org.folio.rest.core.models.RequestContext) EMPTY(org.apache.commons.lang3.StringUtils.EMPTY) RestTestUtils.prepareHeaders(org.folio.RestTestUtils.prepareHeaders) PURCHASE_ORDER_STORAGE(org.folio.orders.utils.ResourcePathResolver.PURCHASE_ORDER_STORAGE) PO_ID_OPEN_TO_CANCEL(org.folio.TestConstants.PO_ID_OPEN_TO_CANCEL) INCORRECT_FUND_DISTRIBUTION_TOTAL(org.folio.rest.core.exceptions.ErrorCodes.INCORRECT_FUND_DISTRIBUTION_TOTAL) PHYSICAL_COST_LOC_QTY_MISMATCH(org.folio.rest.core.exceptions.ErrorCodes.PHYSICAL_COST_LOC_QTY_MISMATCH) NON_EXIST_INSTANCE_STATUS_TENANT_HEADER(org.folio.TestConstants.NON_EXIST_INSTANCE_STATUS_TENANT_HEADER) INACTIVE_EXPENSE_CLASS(org.folio.rest.core.exceptions.ErrorCodes.INACTIVE_EXPENSE_CLASS) MockServer.getInstanceStatusesSearches(org.folio.rest.impl.MockServer.getInstanceStatusesSearches) PurchaseOrderCollection(org.folio.rest.jaxrs.model.PurchaseOrderCollection) HttpMethod(io.vertx.core.http.HttpMethod) HttpStatus(org.folio.HttpStatus) X_OKAPI_USER_ID_WITH_ACQ_UNITS(org.folio.TestConstants.X_OKAPI_USER_ID_WITH_ACQ_UNITS) NON_EXIST_INSTANCE_TYPE_TENANT_HEADER(org.folio.TestConstants.NON_EXIST_INSTANCE_TYPE_TENANT_HEADER) WorkflowStatus(org.folio.rest.jaxrs.model.CompositePurchaseOrder.WorkflowStatus) ELECTRONIC(org.folio.rest.jaxrs.model.Piece.Format.ELECTRONIC) Collections(java.util.Collections) ORDER_OPEN(org.folio.rest.core.exceptions.ErrorCodes.ORDER_OPEN) FinanceInteractionsTestHelper.verifyEncumbrancesOnPoCreation(org.folio.helper.FinanceInteractionsTestHelper.verifyEncumbrancesOnPoCreation) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) JsonObject(io.vertx.core.json.JsonObject) TestUtils.getMinimalContentCompositePurchaseOrder(org.folio.TestUtils.getMinimalContentCompositePurchaseOrder) CompositePurchaseOrder(org.folio.rest.jaxrs.model.CompositePurchaseOrder) Test(org.junit.jupiter.api.Test) Disabled(org.junit.jupiter.api.Disabled)

Example 3 with PURCHASE_ORDER_STORAGE

use of org.folio.orders.utils.ResourcePathResolver.PURCHASE_ORDER_STORAGE in project mod-orders by folio-org.

the class ReceivingCheckinProtectionTest method testCheckInCompositeFlow.

@Test
void testCheckInCompositeFlow() {
    addMockEntry(PURCHASE_ORDER_STORAGE, JsonObject.mapFrom(getMinimalContentCompositePurchaseOrder().withAcqUnitIds(NOT_PROTECTED_UNITS).withId(ORDER_WITH_NOT_PROTECTED_UNITS_ID)));
    addMockEntry(PURCHASE_ORDER_STORAGE, JsonObject.mapFrom(getMinimalContentCompositePurchaseOrder().withAcqUnitIds(PROTECTED_UNITS).withId(ORDER_WITH_PROTECTED_UNITS_ID)));
    List<CompositePoLine> poLines = new ArrayList<>();
    poLines.add(getMinimalContentCompositePoLine(ORDER_WITH_NOT_PROTECTED_UNITS_ID).withId(EXPECTED_FLOW_PO_LINE_ID));
    poLines.add(getMinimalContentCompositePoLine(ORDER_WITH_NOT_PROTECTED_UNITS_ID).withId(RANDOM_PO_LINE_ID_1));
    poLines.add(getMinimalContentCompositePoLine(ORDER_WITH_PROTECTED_UNITS_ID).withId(RANDOM_PO_LINE_ID_2));
    poLines.forEach(line -> addMockEntry(PO_LINES_STORAGE, JsonObject.mapFrom(line)));
    MockServer.addMockTitles(poLines);
    CheckinCollection toBeCheckedInRq = new CheckinCollection();
    List<ToBeCheckedIn> toBeCheckedInList = new ArrayList<>();
    toBeCheckedInList.add(getToBeCheckedIn(EXPECTED_FLOW_PO_LINE_ID, EXPECTED_FLOW_PIECE_ID_1));
    toBeCheckedInList.add(getToBeCheckedIn(RANDOM_PO_LINE_ID_1, getRandomId()));
    toBeCheckedInList.add(getToBeCheckedIn(RANDOM_PO_LINE_ID_2, getRandomId()));
    toBeCheckedInList.add(getToBeCheckedIn(EXPECTED_FLOW_PO_LINE_ID, getRandomId()));
    toBeCheckedInRq.setToBeCheckedIn(toBeCheckedInList);
    toBeCheckedInRq.setTotalRecords(toBeCheckedInList.size());
    ReceivingResults results = verifyPostResponse(Entities.CHECK_IN.getEndpoint(), JsonObject.mapFrom(toBeCheckedInRq).encode(), prepareHeaders(EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10, X_OKAPI_USER_WITH_UNITS_NOT_ASSIGNED_TO_ORDER), APPLICATION_JSON, HttpStatus.HTTP_OK.toInt()).as(ReceivingResults.class);
    List<ProcessingStatus> result = results.getReceivingResults().stream().flatMap(r -> r.getReceivingItemResults().stream().map(ReceivingItemResult::getProcessingStatus)).filter(s -> Objects.isNull(s.getError())).collect(Collectors.toList());
    assertThat(result, hasSize(1));
    List<Error> errors = results.getReceivingResults().stream().flatMap(r -> r.getReceivingItemResults().stream().map(e -> e.getProcessingStatus().getError())).filter(Objects::nonNull).collect(Collectors.toList());
    assertThat(errors, hasSize(toBeCheckedInList.size() - 1));
    assertThat(errors.stream().filter(e -> e.getCode().equals(PIECE_NOT_FOUND.getCode())).count(), is(2L));
    assertThat(errors.stream().filter(e -> e.getCode().equals(USER_HAS_NO_PERMISSIONS.getCode())).count(), is(1L));
}
Also used : Arrays(java.util.Arrays) CheckinCollection(org.folio.rest.jaxrs.model.CheckinCollection) TimeoutException(java.util.concurrent.TimeoutException) ProcessingStatus(org.folio.rest.jaxrs.model.ProcessingStatus) X_OKAPI_USER_ID(org.folio.TestConstants.X_OKAPI_USER_ID) PIECE_NOT_FOUND(org.folio.rest.core.exceptions.ErrorCodes.PIECE_NOT_FOUND) ApiTestSuite(org.folio.ApiTestSuite) AfterAll(org.junit.jupiter.api.AfterAll) MockServer(org.folio.rest.impl.MockServer) BeforeAll(org.junit.jupiter.api.BeforeAll) JsonObject(io.vertx.core.json.JsonObject) TestUtils.getMinimalContentCompositePurchaseOrder(org.folio.TestUtils.getMinimalContentCompositePurchaseOrder) APPLICATION_JSON(javax.ws.rs.core.MediaType.APPLICATION_JSON) TestConfig.clearServiceInteractions(org.folio.TestConfig.clearServiceInteractions) Matchers.allOf(org.hamcrest.Matchers.allOf) ReceivingResults(org.folio.rest.jaxrs.model.ReceivingResults) Collectors(java.util.stream.Collectors) IsCollectionWithSize.hasSize(org.hamcrest.collection.IsCollectionWithSize.hasSize) TestConfig.isVerticleNotDeployed(org.folio.TestConfig.isVerticleNotDeployed) Objects(java.util.Objects) Test(org.junit.jupiter.api.Test) ReceivingCollection(org.folio.rest.jaxrs.model.ReceivingCollection) List(java.util.List) Logger(org.apache.logging.log4j.Logger) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) PO_LINES_STORAGE(org.folio.orders.utils.ResourcePathResolver.PO_LINES_STORAGE) MockServer.addMockEntry(org.folio.rest.impl.MockServer.addMockEntry) Matchers.equalTo(org.hamcrest.Matchers.equalTo) Matchers.is(org.hamcrest.Matchers.is) ORDERS_RECEIVING_ENDPOINT(org.folio.TestConstants.ORDERS_RECEIVING_ENDPOINT) USER_HAS_NO_PERMISSIONS(org.folio.rest.core.exceptions.ErrorCodes.USER_HAS_NO_PERMISSIONS) TestUtils.getRandomId(org.folio.TestUtils.getRandomId) TestUtils.getToBeReceived(org.folio.TestUtils.getToBeReceived) EnumSource(org.junit.jupiter.params.provider.EnumSource) ArrayList(java.util.ArrayList) Matchers.hasProperty(org.hamcrest.Matchers.hasProperty) Every.everyItem(org.hamcrest.core.Every.everyItem) CompositePurchaseOrder(org.folio.rest.jaxrs.model.CompositePurchaseOrder) RestTestUtils.prepareHeaders(org.folio.RestTestUtils.prepareHeaders) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) ReceivingItemResult(org.folio.rest.jaxrs.model.ReceivingItemResult) EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10(org.folio.TestConstants.EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10) ToBeCheckedIn(org.folio.rest.jaxrs.model.ToBeCheckedIn) PURCHASE_ORDER_STORAGE(org.folio.orders.utils.ResourcePathResolver.PURCHASE_ORDER_STORAGE) Matchers.empty(org.hamcrest.Matchers.empty) RestTestUtils.verifyPostResponse(org.folio.RestTestUtils.verifyPostResponse) TestUtils.getToBeCheckedIn(org.folio.TestUtils.getToBeCheckedIn) ToBeReceived(org.folio.rest.jaxrs.model.ToBeReceived) TestConfig.initSpringContext(org.folio.TestConfig.initSpringContext) ExecutionException(java.util.concurrent.ExecutionException) Error(org.folio.rest.jaxrs.model.Error) AfterEach(org.junit.jupiter.api.AfterEach) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) ORDERS_CHECKIN_ENDPOINT(org.folio.TestConstants.ORDERS_CHECKIN_ENDPOINT) HttpStatus(org.folio.HttpStatus) ApplicationConfig(org.folio.config.ApplicationConfig) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) Collections(java.util.Collections) LogManager(org.apache.logging.log4j.LogManager) CheckinCollection(org.folio.rest.jaxrs.model.CheckinCollection) ArrayList(java.util.ArrayList) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) Error(org.folio.rest.jaxrs.model.Error) ReceivingResults(org.folio.rest.jaxrs.model.ReceivingResults) ProcessingStatus(org.folio.rest.jaxrs.model.ProcessingStatus) ToBeCheckedIn(org.folio.rest.jaxrs.model.ToBeCheckedIn) TestUtils.getToBeCheckedIn(org.folio.TestUtils.getToBeCheckedIn) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 4 with PURCHASE_ORDER_STORAGE

use of org.folio.orders.utils.ResourcePathResolver.PURCHASE_ORDER_STORAGE in project mod-orders by folio-org.

the class ReceivingCheckinProtectionTest method testReceivingCompositeFlow.

@Test
void testReceivingCompositeFlow() {
    addMockEntry(PURCHASE_ORDER_STORAGE, JsonObject.mapFrom(getMinimalContentCompositePurchaseOrder().withAcqUnitIds(NOT_PROTECTED_UNITS).withId(ORDER_WITH_NOT_PROTECTED_UNITS_ID)));
    addMockEntry(PURCHASE_ORDER_STORAGE, JsonObject.mapFrom(getMinimalContentCompositePurchaseOrder().withAcqUnitIds(PROTECTED_UNITS).withId(ORDER_WITH_PROTECTED_UNITS_ID)));
    List<CompositePoLine> poLines = new ArrayList<>();
    poLines.add(getMinimalContentCompositePoLine(ORDER_WITH_NOT_PROTECTED_UNITS_ID).withId(EXPECTED_FLOW_PO_LINE_ID));
    poLines.add(getMinimalContentCompositePoLine(ORDER_WITH_NOT_PROTECTED_UNITS_ID).withId(RANDOM_PO_LINE_ID_1));
    poLines.add(getMinimalContentCompositePoLine(ORDER_WITH_PROTECTED_UNITS_ID).withId(RANDOM_PO_LINE_ID_2));
    poLines.forEach(line -> addMockEntry(PO_LINES_STORAGE, JsonObject.mapFrom(line)));
    MockServer.addMockTitles(poLines);
    ReceivingCollection toBeReceivedRq = new ReceivingCollection();
    List<ToBeReceived> toBeReceivedList = new ArrayList<>();
    toBeReceivedList.add(getToBeReceived(EXPECTED_FLOW_PO_LINE_ID, EXPECTED_FLOW_PIECE_ID_1));
    toBeReceivedList.add(getToBeReceived(RANDOM_PO_LINE_ID_1, getRandomId()));
    toBeReceivedList.add(getToBeReceived(RANDOM_PO_LINE_ID_2, getRandomId()));
    toBeReceivedList.add(getToBeReceived(EXPECTED_FLOW_PO_LINE_ID, getRandomId()));
    toBeReceivedRq.setToBeReceived(toBeReceivedList);
    toBeReceivedRq.setTotalRecords(toBeReceivedList.size());
    ReceivingResults results = verifyPostResponse(Entities.RECEIVING.getEndpoint(), JsonObject.mapFrom(toBeReceivedRq).encode(), prepareHeaders(EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10, X_OKAPI_USER_WITH_UNITS_NOT_ASSIGNED_TO_ORDER), APPLICATION_JSON, HttpStatus.HTTP_OK.toInt()).as(ReceivingResults.class);
    List<ProcessingStatus> result = results.getReceivingResults().stream().flatMap(r -> r.getReceivingItemResults().stream().map(ReceivingItemResult::getProcessingStatus)).filter(s -> Objects.isNull(s.getError())).collect(Collectors.toList());
    assertThat(result, hasSize(1));
    List<Error> errors = results.getReceivingResults().stream().flatMap(r -> r.getReceivingItemResults().stream().map(e -> e.getProcessingStatus().getError())).filter(Objects::nonNull).collect(Collectors.toList());
    assertThat(errors, hasSize(toBeReceivedList.size() - 1));
    assertThat(errors.stream().filter(e -> e.getCode().equals(PIECE_NOT_FOUND.getCode())).count(), is(2L));
    assertThat(errors.stream().filter(e -> e.getCode().equals(USER_HAS_NO_PERMISSIONS.getCode())).count(), is(1L));
}
Also used : Arrays(java.util.Arrays) CheckinCollection(org.folio.rest.jaxrs.model.CheckinCollection) TimeoutException(java.util.concurrent.TimeoutException) ProcessingStatus(org.folio.rest.jaxrs.model.ProcessingStatus) X_OKAPI_USER_ID(org.folio.TestConstants.X_OKAPI_USER_ID) PIECE_NOT_FOUND(org.folio.rest.core.exceptions.ErrorCodes.PIECE_NOT_FOUND) ApiTestSuite(org.folio.ApiTestSuite) AfterAll(org.junit.jupiter.api.AfterAll) MockServer(org.folio.rest.impl.MockServer) BeforeAll(org.junit.jupiter.api.BeforeAll) JsonObject(io.vertx.core.json.JsonObject) TestUtils.getMinimalContentCompositePurchaseOrder(org.folio.TestUtils.getMinimalContentCompositePurchaseOrder) APPLICATION_JSON(javax.ws.rs.core.MediaType.APPLICATION_JSON) TestConfig.clearServiceInteractions(org.folio.TestConfig.clearServiceInteractions) Matchers.allOf(org.hamcrest.Matchers.allOf) ReceivingResults(org.folio.rest.jaxrs.model.ReceivingResults) Collectors(java.util.stream.Collectors) IsCollectionWithSize.hasSize(org.hamcrest.collection.IsCollectionWithSize.hasSize) TestConfig.isVerticleNotDeployed(org.folio.TestConfig.isVerticleNotDeployed) Objects(java.util.Objects) Test(org.junit.jupiter.api.Test) ReceivingCollection(org.folio.rest.jaxrs.model.ReceivingCollection) List(java.util.List) Logger(org.apache.logging.log4j.Logger) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) PO_LINES_STORAGE(org.folio.orders.utils.ResourcePathResolver.PO_LINES_STORAGE) MockServer.addMockEntry(org.folio.rest.impl.MockServer.addMockEntry) Matchers.equalTo(org.hamcrest.Matchers.equalTo) Matchers.is(org.hamcrest.Matchers.is) ORDERS_RECEIVING_ENDPOINT(org.folio.TestConstants.ORDERS_RECEIVING_ENDPOINT) USER_HAS_NO_PERMISSIONS(org.folio.rest.core.exceptions.ErrorCodes.USER_HAS_NO_PERMISSIONS) TestUtils.getRandomId(org.folio.TestUtils.getRandomId) TestUtils.getToBeReceived(org.folio.TestUtils.getToBeReceived) EnumSource(org.junit.jupiter.params.provider.EnumSource) ArrayList(java.util.ArrayList) Matchers.hasProperty(org.hamcrest.Matchers.hasProperty) Every.everyItem(org.hamcrest.core.Every.everyItem) CompositePurchaseOrder(org.folio.rest.jaxrs.model.CompositePurchaseOrder) RestTestUtils.prepareHeaders(org.folio.RestTestUtils.prepareHeaders) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) ReceivingItemResult(org.folio.rest.jaxrs.model.ReceivingItemResult) EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10(org.folio.TestConstants.EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10) ToBeCheckedIn(org.folio.rest.jaxrs.model.ToBeCheckedIn) PURCHASE_ORDER_STORAGE(org.folio.orders.utils.ResourcePathResolver.PURCHASE_ORDER_STORAGE) Matchers.empty(org.hamcrest.Matchers.empty) RestTestUtils.verifyPostResponse(org.folio.RestTestUtils.verifyPostResponse) TestUtils.getToBeCheckedIn(org.folio.TestUtils.getToBeCheckedIn) ToBeReceived(org.folio.rest.jaxrs.model.ToBeReceived) TestConfig.initSpringContext(org.folio.TestConfig.initSpringContext) ExecutionException(java.util.concurrent.ExecutionException) Error(org.folio.rest.jaxrs.model.Error) AfterEach(org.junit.jupiter.api.AfterEach) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest) ORDERS_CHECKIN_ENDPOINT(org.folio.TestConstants.ORDERS_CHECKIN_ENDPOINT) HttpStatus(org.folio.HttpStatus) ApplicationConfig(org.folio.config.ApplicationConfig) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) Collections(java.util.Collections) LogManager(org.apache.logging.log4j.LogManager) TestUtils.getToBeReceived(org.folio.TestUtils.getToBeReceived) ToBeReceived(org.folio.rest.jaxrs.model.ToBeReceived) ArrayList(java.util.ArrayList) ReceivingCollection(org.folio.rest.jaxrs.model.ReceivingCollection) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) Error(org.folio.rest.jaxrs.model.Error) ReceivingResults(org.folio.rest.jaxrs.model.ReceivingResults) ProcessingStatus(org.folio.rest.jaxrs.model.ProcessingStatus) Test(org.junit.jupiter.api.Test) ParameterizedTest(org.junit.jupiter.params.ParameterizedTest)

Example 5 with PURCHASE_ORDER_STORAGE

use of org.folio.orders.utils.ResourcePathResolver.PURCHASE_ORDER_STORAGE in project mod-orders by folio-org.

the class PurchaseOrdersApiTest method testPutOrdersByIdPEMixFormat.

@Test
@Disabled
// TODO must be fixed in scoupe of https://issues.folio.org/browse/MODORDERS-587
void testPutOrdersByIdPEMixFormat() {
    logger.info("=== Test Put Order By Id create Pieces with P/E Mix format ===");
    CompositePurchaseOrder reqData = getMockAsJson(PE_MIX_PATH).mapTo(CompositePurchaseOrder.class);
    reqData.setId(ID_FOR_PRINT_MONOGRAPH_ORDER);
    reqData.setReEncumber(null);
    // Make sure that mock PO has 1 po line
    assertThat(reqData.getCompositePoLines(), hasSize(1));
    reqData.setManualPo(false);
    CompositePoLine compositePoLine = reqData.getCompositePoLines().get(0);
    compositePoLine.setId(PO_LINE_ID_FOR_SUCCESS_CASE);
    compositePoLine.getEresource().setCreateInventory(Eresource.CreateInventory.NONE);
    compositePoLine.setPhysical(new Physical().withCreateInventory(Physical.CreateInventory.INSTANCE_HOLDING_ITEM).withMaterialType("4b93736c-8731-46cd-9d6e-f9dce0f63bcd"));
    compositePoLine.getCost().setQuantityPhysical(3);
    compositePoLine.getCost().setQuantityElectronic(2);
    compositePoLine.setOrderFormat(OrderFormat.P_E_MIX);
    Transaction encumbrance = getMockAsJson(ENCUMBRANCE_PATH).getJsonArray("transactions").getJsonObject(0).mapTo(Transaction.class);
    compositePoLine.getFundDistribution().get(0).setEncumbrance(encumbrance.getId());
    compositePoLine.getFundDistribution().get(0).setFundId(encumbrance.getFromFundId());
    encumbrance.getEncumbrance().setSourcePoLineId(compositePoLine.getId());
    encumbrance.getEncumbrance().setSourcePurchaseOrderId(compositePoLine.getPurchaseOrderId());
    compositePoLine.getLocations().stream().filter(location -> ObjectUtils.defaultIfNull(location.getQuantityPhysical(), 0) > 0).forEach(location -> location.setQuantityElectronic(null));
    // MODORDERS-243
    removeAllEncumbranceLinks(reqData);
    reqData.setWorkflowStatus(CompositePurchaseOrder.WorkflowStatus.OPEN);
    MockServer.addMockTitles(reqData.getCompositePoLines());
    preparePiecesForCompositePo(reqData);
    verifyPut(String.format(COMPOSITE_ORDERS_BY_ID_PATH, reqData.getId()), JsonObject.mapFrom(reqData), "", 204);
    List<JsonObject> respOrder = MockServer.serverRqRs.get(PURCHASE_ORDER_STORAGE, HttpMethod.PUT);
    CompositePurchaseOrder compPo = respOrder.get(0).mapTo(CompositePurchaseOrder.class);
    List<JsonObject> respLines = MockServer.serverRqRs.get(PO_LINES_STORAGE, HttpMethod.PUT);
    CompositePoLine respLine1 = respLines.stream().filter(line -> line.getString(ID).equals(compositePoLine.getId())).peek(line -> line.remove("reportingCodes")).map(line -> line.mapTo(CompositePoLine.class)).filter(line -> line.getLocations().stream().filter(loc -> Objects.nonNull(loc.getHoldingId())).findFirst().isPresent()).distinct().findAny().get();
    compPo.setCompositePoLines(List.of(respLine1));
    List<JsonObject> createdPieces = getCreatedPieces();
    List<JsonObject> createdItems = getCreatedItems();
    assertThat(createdItems, notNullValue());
    assertThat(createdPieces, notNullValue());
    int piecesSize = createdPieces.size();
    logger.debug("------------------- piecesSize, itemSize --------------------\n" + piecesSize + " " + createdItems.size());
    // Verify total number of pieces created should be equal to total quantity
    assertEquals(calculateTotalQuantity(respLine1), piecesSize);
    verifyOpenOrderPiecesCreated(createdItems, compPo.getCompositePoLines(), createdPieces, 0);
    verifyEncumbrancesOnPoUpdate(compPo);
    assertTrue(getExistingOrderSummaries().size() > 0);
}
Also used : PO_ID_OPEN_TO_BE_CLOSED(org.folio.TestConstants.PO_ID_OPEN_TO_BE_CLOSED) BeforeEach(org.junit.jupiter.api.BeforeEach) PO_WFD_ID_OPEN_STATUS(org.folio.TestConstants.PO_WFD_ID_OPEN_STATUS) ID_BAD_FORMAT(org.folio.TestConstants.ID_BAD_FORMAT) TestUtils.validatePoLineCreationErrorForNonPendingOrder(org.folio.TestUtils.validatePoLineCreationErrorForNonPendingOrder) INVALID_CONFIG_X_OKAPI_TENANT(org.folio.TestConstants.INVALID_CONFIG_X_OKAPI_TENANT) StringUtils(org.apache.commons.lang3.StringUtils) ApiTestSuite(org.folio.ApiTestSuite) ZERO_LOCATION_QTY(org.folio.rest.core.exceptions.ErrorCodes.ZERO_LOCATION_QTY) Mockito.doAnswer(org.mockito.Mockito.doAnswer) Map(java.util.Map) EMPTY_CONFIG_X_OKAPI_TENANT(org.folio.TestConstants.EMPTY_CONFIG_X_OKAPI_TENANT) ZoneOffset(java.time.ZoneOffset) ORDER_VENDOR_NOT_FOUND(org.folio.rest.core.exceptions.ErrorCodes.ORDER_VENDOR_NOT_FOUND) Errors(org.folio.rest.jaxrs.model.Errors) TestConfig.clearServiceInteractions(org.folio.TestConfig.clearServiceInteractions) ID_FOR_INTERNAL_SERVER_ERROR(org.folio.TestConstants.ID_FOR_INTERNAL_SERVER_ERROR) Matchers.notNullValue(org.hamcrest.Matchers.notNullValue) ORDER_CLOSED(org.folio.rest.core.exceptions.ErrorCodes.ORDER_CLOSED) Metadata(org.folio.rest.acq.model.finance.Metadata) VENDOR_ISSUE(org.folio.rest.core.exceptions.ErrorCodes.VENDOR_ISSUE) ErrorCodes(org.folio.rest.core.exceptions.ErrorCodes) OTHER(org.folio.rest.jaxrs.model.Piece.Format.OTHER) ZoneId(java.time.ZoneId) TestConfig.mockPort(org.folio.TestConfig.mockPort) Logger(org.apache.logging.log4j.Logger) Eresource(org.folio.rest.jaxrs.model.Eresource) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) MIN_PO_ID(org.folio.TestConstants.MIN_PO_ID) PO_LINES_STORAGE(org.folio.orders.utils.ResourcePathResolver.PO_LINES_STORAGE) MockServer.addMockEntry(org.folio.rest.impl.MockServer.addMockEntry) POProtectedFields(org.folio.orders.utils.POProtectedFields) Assertions.assertNotNull(org.junit.jupiter.api.Assertions.assertNotNull) RestClient(org.folio.rest.core.RestClient) INACTIVE_ACCESS_PROVIDER_B(org.folio.TestConstants.INACTIVE_ACCESS_PROVIDER_B) INACTIVE_ACCESS_PROVIDER_A(org.folio.TestConstants.INACTIVE_ACCESS_PROVIDER_A) HelperUtils.calculateInventoryItemsQuantity(org.folio.orders.utils.HelperUtils.calculateInventoryItemsQuantity) PaymentStatus(org.folio.rest.acq.model.PaymentStatus) BUDGET_IS_INACTIVE_TENANT(org.folio.rest.impl.MockServer.BUDGET_IS_INACTIVE_TENANT) ACQUISITIONS_MEMBERSHIPS(org.folio.orders.utils.ResourcePathResolver.ACQUISITIONS_MEMBERSHIPS) Contributor(org.folio.rest.jaxrs.model.Contributor) Every(org.hamcrest.core.Every) Headers(io.restassured.http.Headers) ZERO_COST_ELECTRONIC_QTY(org.folio.rest.core.exceptions.ErrorCodes.ZERO_COST_ELECTRONIC_QTY) OrderFormat(org.folio.rest.jaxrs.model.CompositePoLine.OrderFormat) Answer(org.mockito.stubbing.Answer) MockServer.getHoldingsSearches(org.folio.rest.impl.MockServer.getHoldingsSearches) RestTestUtils.verifySuccessGet(org.folio.RestTestUtils.verifySuccessGet) Matchers.hasSize(org.hamcrest.Matchers.hasSize) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) PO_LINES_EMPTY_COLLECTION_ID(org.folio.rest.impl.MockServer.PO_LINES_EMPTY_COLLECTION_ID) Physical(org.folio.rest.jaxrs.model.Physical) EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10(org.folio.TestConstants.EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10) RestTestUtils.verifyPostResponse(org.folio.RestTestUtils.verifyPostResponse) ELECTRONIC_COST_LOC_QTY_MISMATCH(org.folio.rest.core.exceptions.ErrorCodes.ELECTRONIC_COST_LOC_QTY_MISMATCH) MockServer.getPieceSearches(org.folio.rest.impl.MockServer.getPieceSearches) MockServer.getCreatedOrderSummaries(org.folio.rest.impl.MockServer.getCreatedOrderSummaries) PO_LINE_NUMBER(org.folio.orders.utils.ResourcePathResolver.PO_LINE_NUMBER) HelperUtils(org.folio.orders.utils.HelperUtils) TestConfig.initSpringContext(org.folio.TestConfig.initSpringContext) Vertx(io.vertx.core.Vertx) RequestEntry(org.folio.rest.core.models.RequestEntry) IOException(java.io.IOException) X_OKAPI_URL(org.folio.TestConfig.X_OKAPI_URL) BUDGET_NOT_FOUND_FOR_TRANSACTION(org.folio.rest.core.exceptions.ErrorCodes.BUDGET_NOT_FOUND_FOR_TRANSACTION) ITEM_RECORDS(org.folio.rest.impl.MockServer.ITEM_RECORDS) ACQUISITIONS_UNITS(org.folio.orders.utils.ResourcePathResolver.ACQUISITIONS_UNITS) ExecutionException(java.util.concurrent.ExecutionException) PO_LINE_ID_FOR_SUCCESS_CASE(org.folio.TestConstants.PO_LINE_ID_FOR_SUCCESS_CASE) LEDGER_NOT_FOUND_FOR_TRANSACTION_TENANT(org.folio.rest.impl.MockServer.LEDGER_NOT_FOUND_FOR_TRANSACTION_TENANT) AfterEach(org.junit.jupiter.api.AfterEach) BUDGET_NOT_FOUND_FOR_TRANSACTION_TENANT(org.folio.rest.impl.MockServer.BUDGET_NOT_FOUND_FOR_TRANSACTION_TENANT) InventoryInteractionTestHelper.verifyPiecesCreated(org.folio.helper.InventoryInteractionTestHelper.verifyPiecesCreated) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) PHYSICAL(org.folio.rest.jaxrs.model.Piece.Format.PHYSICAL) ENCUMBRANCE_PATH(org.folio.rest.impl.MockServer.ENCUMBRANCE_PATH) MockServer.getInstancesSearches(org.folio.rest.impl.MockServer.getInstancesSearches) PO_ID_PENDING_STATUS_WITH_PO_LINES(org.folio.TestConstants.PO_ID_PENDING_STATUS_WITH_PO_LINES) EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_1(org.folio.TestConstants.EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_1) FUND_CANNOT_BE_PAID_TENANT(org.folio.rest.impl.MockServer.FUND_CANNOT_BE_PAID_TENANT) Date(java.util.Date) CompletableFuture.completedFuture(java.util.concurrent.CompletableFuture.completedFuture) X_OKAPI_USER_ID(org.folio.TestConstants.X_OKAPI_USER_ID) TITLES(org.folio.orders.utils.ResourcePathResolver.TITLES) TestUtils.getInstanceId(org.folio.TestUtils.getInstanceId) Context(io.vertx.core.Context) ISBN_NOT_VALID(org.folio.rest.core.exceptions.ErrorCodes.ISBN_NOT_VALID) MockServer.getPurchaseOrderUpdates(org.folio.rest.impl.MockServer.getPurchaseOrderUpdates) MockServer.getCreatedItems(org.folio.rest.impl.MockServer.getCreatedItems) ReceiptStatus(org.folio.rest.jaxrs.model.CompositePoLine.ReceiptStatus) TestUtils(org.folio.TestUtils) ID(org.folio.TestConstants.ID) Location(org.folio.rest.jaxrs.model.Location) ORDER_VENDOR_IS_INACTIVE(org.folio.rest.core.exceptions.ErrorCodes.ORDER_VENDOR_IS_INACTIVE) ONGOING_NOT_ALLOWED(org.folio.rest.core.exceptions.ErrorCodes.ONGOING_NOT_ALLOWED) PurchaseOrder(org.folio.rest.jaxrs.model.PurchaseOrder) UUID(java.util.UUID) PO_ID_CLOSED_STATUS(org.folio.TestConstants.PO_ID_CLOSED_STATUS) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) Test(org.junit.jupiter.api.Test) ERROR_CAUSE(org.folio.helper.AbstractHelper.ERROR_CAUSE) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) Matchers.equalTo(org.hamcrest.Matchers.equalTo) LocalDate(java.time.LocalDate) POLineFieldNames(org.folio.orders.utils.POLineFieldNames) ACTIVE_ACCESS_PROVIDER_B(org.folio.TestConstants.ACTIVE_ACCESS_PROVIDER_B) POL_LINES_LIMIT_EXCEEDED(org.folio.rest.core.exceptions.ErrorCodes.POL_LINES_LIMIT_EXCEEDED) ACTIVE_ACCESS_PROVIDER_A(org.folio.TestConstants.ACTIVE_ACCESS_PROVIDER_A) InventoryInteractionTestHelper.verifyPiecesQuantityForSuccessCase(org.folio.helper.InventoryInteractionTestHelper.verifyPiecesQuantityForSuccessCase) ZERO_COST_PHYSICAL_QTY(org.folio.rest.core.exceptions.ErrorCodes.ZERO_COST_PHYSICAL_QTY) TestUtils.getMockData(org.folio.TestUtils.getMockData) InventoryInteractionTestHelper.verifyHoldingsCreated(org.folio.helper.InventoryInteractionTestHelper.verifyHoldingsCreated) VENDOR_ID(org.folio.orders.utils.ResourcePathResolver.VENDOR_ID) MISSING_MATERIAL_TYPE(org.folio.rest.core.exceptions.ErrorCodes.MISSING_MATERIAL_TYPE) Encumbrance(org.folio.rest.acq.model.finance.Encumbrance) Matchers.empty(org.hamcrest.Matchers.empty) TestUtils.verifyLocationQuantity(org.folio.TestUtils.verifyLocationQuantity) PO_ID_PENDING_STATUS_WITHOUT_PO_LINES(org.folio.TestConstants.PO_ID_PENDING_STATUS_WITHOUT_PO_LINES) InventoryInteractionTestHelper.verifyItemsCreated(org.folio.helper.InventoryInteractionTestHelper.verifyItemsCreated) MockServer.getLoanTypesSearches(org.folio.rest.impl.MockServer.getLoanTypesSearches) CloseReason(org.folio.rest.jaxrs.model.CloseReason) NON_ZERO_COST_ELECTRONIC_QTY(org.folio.rest.core.exceptions.ErrorCodes.NON_ZERO_COST_ELECTRONIC_QTY) Error(org.folio.rest.jaxrs.model.Error) Collectors.toList(java.util.stream.Collectors.toList) Response(io.restassured.response.Response) ApplicationConfig(org.folio.config.ApplicationConfig) INVALID_LANG(org.folio.TestConstants.INVALID_LANG) POL_ACCESS_PROVIDER_IS_INACTIVE(org.folio.rest.core.exceptions.ErrorCodes.POL_ACCESS_PROVIDER_IS_INACTIVE) LogManager(org.apache.logging.log4j.LogManager) MockServer.getCreatedHoldings(org.folio.rest.impl.MockServer.getCreatedHoldings) MockServer.getInstanceTypesSearches(org.folio.rest.impl.MockServer.getInstanceTypesSearches) Arrays(java.util.Arrays) HelperUtils.calculateTotalQuantity(org.folio.orders.utils.HelperUtils.calculateTotalQuantity) COST_UNIT_PRICE_ELECTRONIC_INVALID(org.folio.rest.core.exceptions.ErrorCodes.COST_UNIT_PRICE_ELECTRONIC_INVALID) Matchers.not(org.hamcrest.Matchers.not) Header(io.restassured.http.Header) NON_EXIST_CONFIG_X_OKAPI_TENANT(org.folio.TestConstants.NON_EXIST_CONFIG_X_OKAPI_TENANT) Disabled(org.junit.jupiter.api.Disabled) TransactionCollection(org.folio.rest.acq.model.finance.TransactionCollection) Is(org.hamcrest.core.Is) AfterAll(org.junit.jupiter.api.AfterAll) BigDecimal(java.math.BigDecimal) MockitoAnnotations(org.mockito.MockitoAnnotations) InventoryInteractionTestHelper.joinExistingAndNewItems(org.folio.helper.InventoryInteractionTestHelper.joinExistingAndNewItems) Matcher(java.util.regex.Matcher) BUDGET_EXPENSE_CLASS_NOT_FOUND(org.folio.rest.core.exceptions.ErrorCodes.BUDGET_EXPENSE_CLASS_NOT_FOUND) BeforeAll(org.junit.jupiter.api.BeforeAll) Matchers.nullValue(org.hamcrest.Matchers.nullValue) JsonObject(io.vertx.core.json.JsonObject) OKAPI_URL(org.folio.rest.RestConstants.OKAPI_URL) Mockito.doReturn(org.mockito.Mockito.doReturn) MISSING_ONGOING(org.folio.rest.core.exceptions.ErrorCodes.MISSING_ONGOING) RestTestUtils.verifyPut(org.folio.RestTestUtils.verifyPut) Set(java.util.Set) RestTestUtils.verifyDeleteResponse(org.folio.RestTestUtils.verifyDeleteResponse) Fund(org.folio.rest.acq.model.finance.Fund) Matchers.startsWith(org.hamcrest.Matchers.startsWith) TestConfig.isVerticleNotDeployed(org.folio.TestConfig.isVerticleNotDeployed) COST_UNIT_PRICE_INVALID(org.folio.rest.core.exceptions.ErrorCodes.COST_UNIT_PRICE_INVALID) PROTECTED_READ_ONLY_TENANT(org.folio.TestConstants.PROTECTED_READ_ONLY_TENANT) X_OKAPI_TOKEN(org.folio.TestConstants.X_OKAPI_TOKEN) PO_NUMBER(org.folio.orders.utils.ResourcePathResolver.PO_NUMBER) FinanceInteractionsTestHelper.verifyEncumbrancesOnPoUpdate(org.folio.helper.FinanceInteractionsTestHelper.verifyEncumbrancesOnPoUpdate) Assertions.assertTrue(org.junit.jupiter.api.Assertions.assertTrue) Matchers.greaterThan(org.hamcrest.Matchers.greaterThan) Matchers.is(org.hamcrest.Matchers.is) TEXT_PLAIN(javax.ws.rs.core.MediaType.TEXT_PLAIN) Matchers.containsString(org.hamcrest.Matchers.containsString) Matchers.endsWith(org.hamcrest.Matchers.endsWith) COMPOSITE_PO_LINES_PREFIX(org.folio.TestConstants.COMPOSITE_PO_LINES_PREFIX) CreateInventory(org.folio.rest.jaxrs.model.Physical.CreateInventory) Mock(org.mockito.Mock) ID_DOES_NOT_EXIST(org.folio.TestConstants.ID_DOES_NOT_EXIST) Assertions.assertNull(org.junit.jupiter.api.Assertions.assertNull) TransactionService(org.folio.service.finance.transaction.TransactionService) MockServer.getExistingOrderSummaries(org.folio.rest.impl.MockServer.getExistingOrderSummaries) Transaction(org.folio.rest.acq.model.finance.Transaction) MockServer.getCreatedEncumbrances(org.folio.rest.impl.MockServer.getCreatedEncumbrances) PAYMENT_STATUS(org.folio.orders.utils.ResourcePathResolver.PAYMENT_STATUS) ArrayList(java.util.ArrayList) MockServer.getQueryParams(org.folio.rest.impl.MockServer.getQueryParams) INSTANCE_TYPE_CONTAINS_CODE_AS_INSTANCE_STATUS_TENANT_HEADER(org.folio.TestConstants.INSTANCE_TYPE_CONTAINS_CODE_AS_INSTANCE_STATUS_TENANT_HEADER) InvocationOnMock(org.mockito.invocation.InvocationOnMock) OKAPI_HEADER_PERMISSIONS(org.folio.helper.PurchaseOrderHelper.OKAPI_HEADER_PERMISSIONS) Matchers.lessThan(org.hamcrest.Matchers.lessThan) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) InventoryInteractionTestHelper.verifyInventoryInteraction(org.folio.helper.InventoryInteractionTestHelper.verifyInventoryInteraction) InjectMocks(org.mockito.InjectMocks) COMP_ORDER_MOCK_DATA_PATH(org.folio.TestConstants.COMP_ORDER_MOCK_DATA_PATH) RestTestUtils.verifyGet(org.folio.RestTestUtils.verifyGet) Piece(org.folio.rest.jaxrs.model.Piece) COMPOSITE_PO_LINES(org.folio.orders.utils.HelperUtils.COMPOSITE_PO_LINES) Assertions.assertArrayEquals(org.junit.jupiter.api.Assertions.assertArrayEquals) JsonArray(io.vertx.core.json.JsonArray) AcqDesiredPermissions(org.folio.orders.utils.AcqDesiredPermissions) TestUtils.getMockAsJson(org.folio.TestUtils.getMockAsJson) GENERIC_ERROR_CODE(org.folio.rest.core.exceptions.ErrorCodes.GENERIC_ERROR_CODE) Cost(org.folio.rest.jaxrs.model.Cost) MockServer.getItemsSearches(org.folio.rest.impl.MockServer.getItemsSearches) MockServer.getContributorNameTypesSearches(org.folio.rest.impl.MockServer.getContributorNameTypesSearches) TimeoutException(java.util.concurrent.TimeoutException) PoLine(org.folio.rest.jaxrs.model.PoLine) Ongoing(org.folio.rest.acq.model.Ongoing) MISMATCH_BETWEEN_ID_IN_PATH_AND_BODY(org.folio.rest.core.exceptions.ErrorCodes.MISMATCH_BETWEEN_ID_IN_PATH_AND_BODY) MockServer.getItemUpdates(org.folio.rest.impl.MockServer.getItemUpdates) FUNDS(org.folio.orders.utils.ResourcePathResolver.FUNDS) Assertions.assertFalse(org.junit.jupiter.api.Assertions.assertFalse) StringUtils.containsAny(org.apache.commons.lang3.StringUtils.containsAny) TestUtils.getMinimalContentCompositePurchaseOrder(org.folio.TestUtils.getMinimalContentCompositePurchaseOrder) InventoryInteractionTestHelper.verifyOpenOrderPiecesCreated(org.folio.helper.InventoryInteractionTestHelper.verifyOpenOrderPiecesCreated) APPLICATION_JSON(javax.ws.rs.core.MediaType.APPLICATION_JSON) BAD_QUERY(org.folio.TestConstants.BAD_QUERY) NON_EXIST_LOAN_TYPE_TENANT_HEADER(org.folio.TestConstants.NON_EXIST_LOAN_TYPE_TENANT_HEADER) RestTestUtils.checkPreventProtectedFieldsModificationRule(org.folio.RestTestUtils.checkPreventProtectedFieldsModificationRule) PIECES_TO_BE_DELETED(org.folio.rest.core.exceptions.ErrorCodes.PIECES_TO_BE_DELETED) FundDistribution(org.folio.rest.jaxrs.model.FundDistribution) HasPropertyWithValue(org.hamcrest.beans.HasPropertyWithValue) INSTANCE_ID_NOT_ALLOWED_FOR_PACKAGE_POLINE(org.folio.rest.core.exceptions.ErrorCodes.INSTANCE_ID_NOT_ALLOWED_FOR_PACKAGE_POLINE) InventoryInteractionTestHelper.verifyInventoryNonInteraction(org.folio.helper.InventoryInteractionTestHelper.verifyInventoryNonInteraction) InventoryInteractionTestHelper.verifyInstanceLinksForUpdatedOrder(org.folio.helper.InventoryInteractionTestHelper.verifyInstanceLinksForUpdatedOrder) PO_ID_OPEN_STATUS(org.folio.TestConstants.PO_ID_OPEN_STATUS) List(java.util.List) DistributionType(org.folio.rest.jaxrs.model.FundDistribution.DistributionType) EncumbranceService(org.folio.service.finance.transaction.EncumbranceService) Parameter(org.folio.rest.jaxrs.model.Parameter) Pattern(java.util.regex.Pattern) AcquisitionsUnitMembershipCollection(org.folio.rest.jaxrs.model.AcquisitionsUnitMembershipCollection) PIECES_STORAGE(org.folio.orders.utils.ResourcePathResolver.PIECES_STORAGE) RECEIPT_STATUS(org.folio.orders.utils.ResourcePathResolver.RECEIPT_STATUS) ORGANIZATION_NOT_A_VENDOR(org.folio.rest.core.exceptions.ErrorCodes.ORGANIZATION_NOT_A_VENDOR) X_ECHO_STATUS(org.folio.TestConstants.X_ECHO_STATUS) OKAPI_HEADER_TENANT(org.folio.rest.RestVerticle.OKAPI_HEADER_TENANT) HashMap(java.util.HashMap) PO_LINE_NUMBER_VALUE(org.folio.TestConstants.PO_LINE_NUMBER_VALUE) MockServer.getCreatedInstances(org.folio.rest.impl.MockServer.getCreatedInstances) MockServer.getCreatedPieces(org.folio.rest.impl.MockServer.getCreatedPieces) Title(org.folio.rest.jaxrs.model.Title) CompositePurchaseOrder(org.folio.rest.jaxrs.model.CompositePurchaseOrder) ObjectUtils(org.apache.commons.lang3.ObjectUtils) RequestContext(org.folio.rest.core.models.RequestContext) EMPTY(org.apache.commons.lang3.StringUtils.EMPTY) RestTestUtils.prepareHeaders(org.folio.RestTestUtils.prepareHeaders) PURCHASE_ORDER_STORAGE(org.folio.orders.utils.ResourcePathResolver.PURCHASE_ORDER_STORAGE) PO_ID_OPEN_TO_CANCEL(org.folio.TestConstants.PO_ID_OPEN_TO_CANCEL) INCORRECT_FUND_DISTRIBUTION_TOTAL(org.folio.rest.core.exceptions.ErrorCodes.INCORRECT_FUND_DISTRIBUTION_TOTAL) PHYSICAL_COST_LOC_QTY_MISMATCH(org.folio.rest.core.exceptions.ErrorCodes.PHYSICAL_COST_LOC_QTY_MISMATCH) NON_EXIST_INSTANCE_STATUS_TENANT_HEADER(org.folio.TestConstants.NON_EXIST_INSTANCE_STATUS_TENANT_HEADER) INACTIVE_EXPENSE_CLASS(org.folio.rest.core.exceptions.ErrorCodes.INACTIVE_EXPENSE_CLASS) MockServer.getInstanceStatusesSearches(org.folio.rest.impl.MockServer.getInstanceStatusesSearches) PurchaseOrderCollection(org.folio.rest.jaxrs.model.PurchaseOrderCollection) HttpMethod(io.vertx.core.http.HttpMethod) HttpStatus(org.folio.HttpStatus) X_OKAPI_USER_ID_WITH_ACQ_UNITS(org.folio.TestConstants.X_OKAPI_USER_ID_WITH_ACQ_UNITS) NON_EXIST_INSTANCE_TYPE_TENANT_HEADER(org.folio.TestConstants.NON_EXIST_INSTANCE_TYPE_TENANT_HEADER) WorkflowStatus(org.folio.rest.jaxrs.model.CompositePurchaseOrder.WorkflowStatus) ELECTRONIC(org.folio.rest.jaxrs.model.Piece.Format.ELECTRONIC) Collections(java.util.Collections) ORDER_OPEN(org.folio.rest.core.exceptions.ErrorCodes.ORDER_OPEN) FinanceInteractionsTestHelper.verifyEncumbrancesOnPoCreation(org.folio.helper.FinanceInteractionsTestHelper.verifyEncumbrancesOnPoCreation) Physical(org.folio.rest.jaxrs.model.Physical) Transaction(org.folio.rest.acq.model.finance.Transaction) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) JsonObject(io.vertx.core.json.JsonObject) TestUtils.getMinimalContentCompositePurchaseOrder(org.folio.TestUtils.getMinimalContentCompositePurchaseOrder) CompositePurchaseOrder(org.folio.rest.jaxrs.model.CompositePurchaseOrder) Test(org.junit.jupiter.api.Test) Disabled(org.junit.jupiter.api.Disabled)

Aggregations

JsonObject (io.vertx.core.json.JsonObject)7 ArrayList (java.util.ArrayList)7 Arrays (java.util.Arrays)7 Collections (java.util.Collections)7 List (java.util.List)7 Objects (java.util.Objects)7 ExecutionException (java.util.concurrent.ExecutionException)7 TimeoutException (java.util.concurrent.TimeoutException)7 Collectors (java.util.stream.Collectors)7 APPLICATION_JSON (javax.ws.rs.core.MediaType.APPLICATION_JSON)7 LogManager (org.apache.logging.log4j.LogManager)7 Logger (org.apache.logging.log4j.Logger)7 ApiTestSuite (org.folio.ApiTestSuite)7 HttpStatus (org.folio.HttpStatus)7 Header (io.restassured.http.Header)5 Headers (io.restassured.http.Headers)5 RestTestUtils.prepareHeaders (org.folio.RestTestUtils.prepareHeaders)4 RestTestUtils.verifyPostResponse (org.folio.RestTestUtils.verifyPostResponse)4 TestConfig.clearServiceInteractions (org.folio.TestConfig.clearServiceInteractions)4 TestConfig.initSpringContext (org.folio.TestConfig.initSpringContext)4