Search in sources :

Example 1 with ReceivingResult

use of org.folio.rest.jaxrs.model.ReceivingResult in project mod-orders by folio-org.

the class CheckinReceivingApiTest method testPostReceivingPhysicalWithErrors.

@Test
void testPostReceivingPhysicalWithErrors() throws IOException {
    logger.info("=== Test POST Receiving - Receive physical resources with different errors");
    ReceivingCollection receivingRq = getMockAsJson(RECEIVING_RQ_MOCK_DATA_PATH + "receive-physical-resources-6-of-10-with-errors.json").mapTo(ReceivingCollection.class);
    CompositePoLine poLines = getMockAsJson(POLINES_COLLECTION).getJsonArray("poLines").getJsonObject(3).mapTo(CompositePoLine.class);
    MockServer.addMockTitles(Collections.singletonList(poLines));
    ReceivingResults results = verifyPostResponse(ORDERS_RECEIVING_ENDPOINT, JsonObject.mapFrom(receivingRq).encode(), prepareHeaders(EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10), APPLICATION_JSON, 200).as(ReceivingResults.class);
    assertThat(results.getTotalRecords(), is(receivingRq.getTotalRecords()));
    assertThat(results.getReceivingResults(), hasSize(1));
    ReceivingResult receivingResult = results.getReceivingResults().get(0);
    assertThat(receivingResult.getPoLineId(), not(is(emptyString())));
    assertThat(receivingResult.getProcessedSuccessfully(), is(5));
    assertThat(receivingResult.getProcessedWithError(), is(5));
    Set<String> errorCodes = new HashSet<>();
    for (ReceivingItemResult receivingItemResult : receivingResult.getReceivingItemResults()) {
        assertThat(receivingItemResult.getPieceId(), not(is(emptyString())));
        assertThat(receivingItemResult.getProcessingStatus(), not(nullValue()));
        if (receivingItemResult.getProcessingStatus().getType() == SUCCESS) {
            assertThat(receivingItemResult.getProcessingStatus().getError(), nullValue());
        } else {
            assertThat(receivingItemResult.getProcessingStatus().getError(), not(nullValue()));
            errorCodes.add(receivingItemResult.getProcessingStatus().getError().getCode());
        }
    }
    assertThat(errorCodes, containsInAnyOrder(PIECE_ALREADY_RECEIVED.getCode(), PIECE_POL_MISMATCH.getCode(), PIECE_NOT_FOUND.getCode(), ITEM_UPDATE_FAILED.getCode(), PIECE_UPDATE_FAILED.getCode()));
    List<JsonObject> itemUpdates = getItemUpdates();
    List<JsonObject> polUpdates = getPoLineUpdates();
    assertThat(getPoLineSearches(), hasSize(1));
    assertThat(polUpdates, hasSize(1));
    assertThat(itemUpdates, hasSize(6));
    itemUpdates.forEach(item -> {
        assertThat(item.getJsonObject(ITEM_STATUS), notNullValue());
        assertThat(item.getJsonObject(ITEM_STATUS).getString(ITEM_STATUS_NAME), equalTo(ReceivedItem.ItemStatus.IN_PROCESS.value()));
    });
    polUpdates.forEach(pol -> {
        PoLine poLine = pol.mapTo(PoLine.class);
        assertThat(poLine.getReceiptStatus(), is(PoLine.ReceiptStatus.PARTIALLY_RECEIVED));
        assertThat(poLine.getReceiptDate(), is(nullValue()));
    });
    verifyProperQuantityOfHoldingsCreated(receivingRq);
    // Verify messages sent via event bus
    verifyOrderStatusUpdateEvent(1);
}
Also used : ReceivingItemResult(org.folio.rest.jaxrs.model.ReceivingItemResult) ReceivingResult(org.folio.rest.jaxrs.model.ReceivingResult) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) PoLine(org.folio.rest.jaxrs.model.PoLine) ReceivingCollection(org.folio.rest.jaxrs.model.ReceivingCollection) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) JsonObject(io.vertx.core.json.JsonObject) Matchers.emptyString(org.hamcrest.Matchers.emptyString) ReceivingResults(org.folio.rest.jaxrs.model.ReceivingResults) HashSet(java.util.HashSet) Test(org.junit.jupiter.api.Test)

Example 2 with ReceivingResult

use of org.folio.rest.jaxrs.model.ReceivingResult in project mod-orders by folio-org.

the class CheckinReceivingApiTest method testPostCheckInPhysicalWithMissingItem.

@Test
void testPostCheckInPhysicalWithMissingItem() {
    logger.info("=== Test POST Checkin - CheckIn physical resource with only one item updated");
    CompositePoLine poLines = getMockAsJson(POLINES_COLLECTION).getJsonArray("poLines").getJsonObject(7).mapTo(CompositePoLine.class);
    MockServer.addMockTitles(Collections.singletonList(poLines));
    CheckinCollection checkInRq = getMockAsJson(CHECKIN_RQ_MOCK_DATA_PATH + "checkin-pe-mix-2-physical-resources.json").mapTo(CheckinCollection.class);
    ReceivingResults results = verifyPostResponse(ORDERS_CHECKIN_ENDPOINT, JsonObject.mapFrom(checkInRq).encode(), prepareHeaders(EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10), APPLICATION_JSON, 200).as(ReceivingResults.class);
    assertThat(results.getTotalRecords(), equalTo(checkInRq.getTotalRecords()));
    ReceivingResult receivingResult = results.getReceivingResults().get(0);
    for (ReceivingItemResult receivingItemResult : receivingResult.getReceivingItemResults()) {
        assertThat(receivingItemResult.getPieceId(), not(is(emptyString())));
        assertThat(receivingItemResult.getProcessingStatus(), not(nullValue()));
        assertThat(receivingItemResult.getProcessingStatus().getType(), is(SUCCESS));
        assertThat(receivingItemResult.getProcessingStatus().getError(), nullValue());
    }
    List<JsonObject> pieceSearches = getPieceSearches();
    List<JsonObject> pieceUpdates = getPieceUpdates();
    List<JsonObject> itemsSearches = getItemsSearches();
    List<JsonObject> itemUpdates = getItemUpdates();
    List<JsonObject> polSearches = getPoLineSearches();
    List<JsonObject> polUpdates = getPoLineUpdates();
    assertThat(pieceSearches, not(nullValue()));
    assertThat(pieceUpdates, not(nullValue()));
    assertThat(itemsSearches, not(nullValue()));
    assertThat(itemUpdates, not(nullValue()));
    assertThat(polSearches, not(nullValue()));
    assertThat(polUpdates, not(nullValue()));
    assertThat(pieceSearches, hasSize(2));
    assertThat(pieceUpdates, hasSize(2));
    assertThat(itemsSearches, hasSize(1));
    assertThat(itemUpdates, hasSize(1));
    assertThat(polSearches, hasSize(1));
    assertThat(polUpdates, hasSize(1));
    itemUpdates.forEach(item -> {
        assertThat(item.getJsonObject(ITEM_STATUS), notNullValue());
        assertThat(item.getJsonObject(ITEM_STATUS).getString(ITEM_STATUS_NAME), equalTo(CheckInPiece.ItemStatus.IN_PROCESS.value()));
    });
    polUpdates.forEach(pol -> {
        PoLine poLine = pol.mapTo(PoLine.class);
        assertThat(poLine.getCheckinItems(), is(true));
        assertThat(poLine.getReceiptStatus(), is(PoLine.ReceiptStatus.PARTIALLY_RECEIVED));
        assertThat(poLine.getReceiptDate(), is(notNullValue()));
    });
    // Verify message is sent via event bus
    verifyCheckinOrderStatusUpdateEvent(1);
}
Also used : CheckinCollection(org.folio.rest.jaxrs.model.CheckinCollection) ReceivingItemResult(org.folio.rest.jaxrs.model.ReceivingItemResult) ReceivingResult(org.folio.rest.jaxrs.model.ReceivingResult) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) PoLine(org.folio.rest.jaxrs.model.PoLine) CompositePoLine(org.folio.rest.jaxrs.model.CompositePoLine) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) JsonObject(io.vertx.core.json.JsonObject) ReceivingResults(org.folio.rest.jaxrs.model.ReceivingResults) Test(org.junit.jupiter.api.Test)

Example 3 with ReceivingResult

use of org.folio.rest.jaxrs.model.ReceivingResult in project mod-orders by folio-org.

the class CheckinHelper method prepareResponseBody.

private ReceivingResults prepareResponseBody(CheckinCollection checkinCollection, Map<String, List<Piece>> piecesGroupedByPoLine) {
    ReceivingResults results = new ReceivingResults();
    results.setTotalRecords(checkinCollection.getTotalRecords());
    for (ToBeCheckedIn toBeCheckedIn : checkinCollection.getToBeCheckedIn()) {
        String poLineId = toBeCheckedIn.getPoLineId();
        ReceivingResult result = new ReceivingResult();
        results.getReceivingResults().add(result);
        // Get all processed piece records for PO Line
        Map<String, Piece> processedPiecesForPoLine = StreamEx.of(piecesGroupedByPoLine.getOrDefault(poLineId, Collections.emptyList())).toMap(Piece::getId, piece -> piece);
        Map<String, Integer> resultCounts = new HashMap<>();
        resultCounts.put(ProcessingStatus.Type.SUCCESS.toString(), 0);
        resultCounts.put(ProcessingStatus.Type.FAILURE.toString(), 0);
        for (CheckInPiece checkinPiece : toBeCheckedIn.getCheckInPieces()) {
            String pieceId = checkinPiece.getId();
            calculateProcessingErrors(poLineId, result, processedPiecesForPoLine, resultCounts, pieceId);
        }
        result.withPoLineId(poLineId).withProcessedSuccessfully(resultCounts.get(ProcessingStatus.Type.SUCCESS.toString())).withProcessedWithError(resultCounts.get(ProcessingStatus.Type.FAILURE.toString()));
    }
    return results;
}
Also used : ReceivingResult(org.folio.rest.jaxrs.model.ReceivingResult) HashMap(java.util.HashMap) CheckInPiece(org.folio.rest.jaxrs.model.CheckInPiece) Piece(org.folio.rest.jaxrs.model.Piece) CheckInPiece(org.folio.rest.jaxrs.model.CheckInPiece) ReceivingResults(org.folio.rest.jaxrs.model.ReceivingResults) ToBeCheckedIn(org.folio.rest.jaxrs.model.ToBeCheckedIn)

Example 4 with ReceivingResult

use of org.folio.rest.jaxrs.model.ReceivingResult in project mod-orders by folio-org.

the class ReceivingHelper method prepareResponseBody.

private ReceivingResults prepareResponseBody(ReceivingCollection receivingCollection, Map<String, List<Piece>> piecesGroupedByPoLine) {
    ReceivingResults results = new ReceivingResults();
    results.setTotalRecords(receivingCollection.getTotalRecords());
    for (ToBeReceived toBeReceived : receivingCollection.getToBeReceived()) {
        String poLineId = toBeReceived.getPoLineId();
        ReceivingResult result = new ReceivingResult();
        results.getReceivingResults().add(result);
        // Get all processed piece records for PO Line
        Map<String, Piece> processedPiecesForPoLine = StreamEx.of(piecesGroupedByPoLine.getOrDefault(poLineId, Collections.emptyList())).toMap(Piece::getId, piece -> piece);
        Map<String, Integer> resultCounts = new HashMap<>();
        resultCounts.put(ProcessingStatus.Type.SUCCESS.toString(), 0);
        resultCounts.put(ProcessingStatus.Type.FAILURE.toString(), 0);
        for (ReceivedItem receivedItem : toBeReceived.getReceivedItems()) {
            String pieceId = receivedItem.getPieceId();
            calculateProcessingErrors(poLineId, result, processedPiecesForPoLine, resultCounts, pieceId);
        }
        result.withPoLineId(poLineId).withProcessedSuccessfully(resultCounts.get(ProcessingStatus.Type.SUCCESS.toString())).withProcessedWithError(resultCounts.get(ProcessingStatus.Type.FAILURE.toString()));
    }
    return results;
}
Also used : ReceivingResult(org.folio.rest.jaxrs.model.ReceivingResult) ReceivedItem(org.folio.rest.jaxrs.model.ReceivedItem) HashMap(java.util.HashMap) ToBeReceived(org.folio.rest.jaxrs.model.ToBeReceived) Piece(org.folio.rest.jaxrs.model.Piece) ReceivingResults(org.folio.rest.jaxrs.model.ReceivingResults)

Example 5 with ReceivingResult

use of org.folio.rest.jaxrs.model.ReceivingResult in project mod-orders by folio-org.

the class CheckinReceivingApiTest method verifyReceivingSuccessRs.

private Map<String, Set<String>> verifyReceivingSuccessRs(ReceivingResults results) {
    Map<String, Set<String>> pieceIdsByPol = new HashMap<>();
    for (ReceivingResult receivingResult : results.getReceivingResults()) {
        assertThat(receivingResult.getPoLineId(), not(is(emptyString())));
        assertThat(receivingResult.getProcessedSuccessfully(), is(receivingResult.getReceivingItemResults().size()));
        assertThat(receivingResult.getProcessedWithError(), is(0));
        for (ReceivingItemResult receivingItemResult : receivingResult.getReceivingItemResults()) {
            assertThat(receivingItemResult.getPieceId(), not(is(emptyString())));
            assertThat(receivingItemResult.getProcessingStatus(), not(nullValue()));
            assertThat(receivingItemResult.getProcessingStatus().getType(), is(SUCCESS));
            assertThat(receivingItemResult.getProcessingStatus().getError(), nullValue());
            pieceIdsByPol.computeIfAbsent(receivingResult.getPoLineId(), k -> new HashSet<>()).add(receivingItemResult.getPieceId());
        }
    }
    return pieceIdsByPol;
}
Also used : ITEM_UPDATE_FAILED(org.folio.rest.core.exceptions.ErrorCodes.ITEM_UPDATE_FAILED) MockServer.getCreatedHoldings(org.folio.rest.impl.MockServer.getCreatedHoldings) Arrays(java.util.Arrays) CheckInPiece(org.folio.rest.jaxrs.model.CheckInPiece) HandlersTestHelper.verifyCheckinOrderStatusUpdateEvent(org.folio.orders.events.handlers.HandlersTestHelper.verifyCheckinOrderStatusUpdateEvent) Matchers.not(org.hamcrest.Matchers.not) ProcessingStatus(org.folio.rest.jaxrs.model.ProcessingStatus) MockServer.getPieceUpdates(org.folio.rest.impl.MockServer.getPieceUpdates) ApiTestSuite(org.folio.ApiTestSuite) AfterAll(org.junit.jupiter.api.AfterAll) PIECE_RECORDS_MOCK_DATA_PATH(org.folio.rest.impl.MockServer.PIECE_RECORDS_MOCK_DATA_PATH) ON_ORDER(org.folio.rest.jaxrs.model.ReceivedItem.ItemStatus.ON_ORDER) PoLineCommonUtil(org.folio.orders.utils.PoLineCommonUtil) BeforeAll(org.junit.jupiter.api.BeforeAll) Matchers.nullValue(org.hamcrest.Matchers.nullValue) Map(java.util.Map) PIECE_ALREADY_RECEIVED(org.folio.rest.core.exceptions.ErrorCodes.PIECE_ALREADY_RECEIVED) JsonObject(io.vertx.core.json.JsonObject) Errors(org.folio.rest.jaxrs.model.Errors) BASE_MOCK_DATA_PATH(org.folio.rest.impl.MockServer.BASE_MOCK_DATA_PATH) TestConfig.clearServiceInteractions(org.folio.TestConfig.clearServiceInteractions) Matchers.notNullValue(org.hamcrest.Matchers.notNullValue) Set(java.util.Set) ReceivingResults(org.folio.rest.jaxrs.model.ReceivingResults) TestConfig.isVerticleNotDeployed(org.folio.TestConfig.isVerticleNotDeployed) PoLineCommonUtil.isHoldingUpdateRequiredForEresource(org.folio.orders.utils.PoLineCommonUtil.isHoldingUpdateRequiredForEresource) Logger(org.apache.logging.log4j.Logger) Eresource(org.folio.rest.jaxrs.model.Eresource) TITLE_NOT_FOUND(org.folio.rest.core.exceptions.ErrorCodes.TITLE_NOT_FOUND) 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.is(org.hamcrest.Matchers.is) POLINES_COLLECTION(org.folio.rest.impl.MockServer.POLINES_COLLECTION) MockServer.addMockTitles(org.folio.rest.impl.MockServer.addMockTitles) PIECE_NOT_RETRIEVED(org.folio.rest.core.exceptions.ErrorCodes.PIECE_NOT_RETRIEVED) ArrayList(java.util.ArrayList) MAX_IDS_FOR_GET_RQ(org.folio.rest.RestConstants.MAX_IDS_FOR_GET_RQ) Matchers.hasSize(org.hamcrest.Matchers.hasSize) MatcherAssert.assertThat(org.hamcrest.MatcherAssert.assertThat) Assertions.assertEquals(org.junit.jupiter.api.Assertions.assertEquals) Matchers.isIn(org.hamcrest.Matchers.isIn) Physical(org.folio.rest.jaxrs.model.Physical) EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10(org.folio.TestConstants.EXIST_CONFIG_X_OKAPI_TENANT_LIMIT_10) PoLineCommonUtil.isHoldingUpdateRequiredForPhysical(org.folio.orders.utils.PoLineCommonUtil.isHoldingUpdateRequiredForPhysical) ToBeCheckedIn(org.folio.rest.jaxrs.model.ToBeCheckedIn) RestTestUtils.verifyPostResponse(org.folio.RestTestUtils.verifyPostResponse) MockServer.getPieceSearches(org.folio.rest.impl.MockServer.getPieceSearches) MULTIPLE_NONPACKAGE_TITLES(org.folio.rest.core.exceptions.ErrorCodes.MULTIPLE_NONPACKAGE_TITLES) Piece(org.folio.rest.jaxrs.model.Piece) TestConfig.initSpringContext(org.folio.TestConfig.initSpringContext) LOC_NOT_PROVIDED(org.folio.rest.core.exceptions.ErrorCodes.LOC_NOT_PROVIDED) IOException(java.io.IOException) ExecutionException(java.util.concurrent.ExecutionException) AfterEach(org.junit.jupiter.api.AfterEach) PoLineCollection(org.folio.rest.jaxrs.model.PoLineCollection) TestUtils.getMinimalContentCompositePoLine(org.folio.TestUtils.getMinimalContentCompositePoLine) TestUtils.getMockAsJson(org.folio.TestUtils.getMockAsJson) MockServer.getItemsSearches(org.folio.rest.impl.MockServer.getItemsSearches) CheckinCollection(org.folio.rest.jaxrs.model.CheckinCollection) Matchers.emptyString(org.hamcrest.Matchers.emptyString) TimeoutException(java.util.concurrent.TimeoutException) TestUtils.getInstanceId(org.folio.TestUtils.getInstanceId) PoLine(org.folio.rest.jaxrs.model.PoLine) PIECE_NOT_FOUND(org.folio.rest.core.exceptions.ErrorCodes.PIECE_NOT_FOUND) TestUtils.getMinimalContentPiece(org.folio.TestUtils.getMinimalContentPiece) SUCCESS(org.folio.rest.jaxrs.model.ProcessingStatus.Type.SUCCESS) MockServer.getItemUpdates(org.folio.rest.impl.MockServer.getItemUpdates) TestUtils.getMinimalContentCompositePurchaseOrder(org.folio.TestUtils.getMinimalContentCompositePurchaseOrder) APPLICATION_JSON(javax.ws.rs.core.MediaType.APPLICATION_JSON) UUID(java.util.UUID) Collectors(java.util.stream.Collectors) Test(org.junit.jupiter.api.Test) ReceivingCollection(org.folio.rest.jaxrs.model.ReceivingCollection) List(java.util.List) PIECE_POL_MISMATCH(org.folio.rest.core.exceptions.ErrorCodes.PIECE_POL_MISMATCH) Matchers.containsInAnyOrder(org.hamcrest.Matchers.containsInAnyOrder) Matchers.equalTo(org.hamcrest.Matchers.equalTo) ORDERS_RECEIVING_ENDPOINT(org.folio.TestConstants.ORDERS_RECEIVING_ENDPOINT) PieceCollection(org.folio.rest.acq.model.PieceCollection) PIECES_STORAGE(org.folio.orders.utils.ResourcePathResolver.PIECES_STORAGE) HandlersTestHelper.verifyOrderStatusUpdateEvent(org.folio.orders.events.handlers.HandlersTestHelper.verifyOrderStatusUpdateEvent) HashMap(java.util.HashMap) TestUtils.getMockData(org.folio.TestUtils.getMockData) HashSet(java.util.HashSet) ReceivingResult(org.folio.rest.jaxrs.model.ReceivingResult) PIECE_UPDATE_FAILED(org.folio.rest.core.exceptions.ErrorCodes.PIECE_UPDATE_FAILED) CompositePurchaseOrder(org.folio.rest.jaxrs.model.CompositePurchaseOrder) RestTestUtils.prepareHeaders(org.folio.RestTestUtils.prepareHeaders) ReceivingItemResult(org.folio.rest.jaxrs.model.ReceivingItemResult) PURCHASE_ORDER_STORAGE(org.folio.orders.utils.ResourcePathResolver.PURCHASE_ORDER_STORAGE) ReceivedItem(org.folio.rest.jaxrs.model.ReceivedItem) MockServer.getPoLineSearches(org.folio.rest.impl.MockServer.getPoLineSearches) Error(org.folio.rest.jaxrs.model.Error) ORDERS_CHECKIN_ENDPOINT(org.folio.TestConstants.ORDERS_CHECKIN_ENDPOINT) Response(io.restassured.response.Response) ITEM_NOT_RETRIEVED(org.folio.rest.core.exceptions.ErrorCodes.ITEM_NOT_RETRIEVED) MockServer.getPoLineUpdates(org.folio.rest.impl.MockServer.getPoLineUpdates) HttpStatus(org.folio.HttpStatus) ApplicationConfig(org.folio.config.ApplicationConfig) Collections(java.util.Collections) LogManager(org.apache.logging.log4j.LogManager) Set(java.util.Set) HashSet(java.util.HashSet) ReceivingItemResult(org.folio.rest.jaxrs.model.ReceivingItemResult) ReceivingResult(org.folio.rest.jaxrs.model.ReceivingResult) HashMap(java.util.HashMap) Matchers.emptyString(org.hamcrest.Matchers.emptyString) HashSet(java.util.HashSet)

Aggregations

ReceivingResult (org.folio.rest.jaxrs.model.ReceivingResult)8 ReceivingResults (org.folio.rest.jaxrs.model.ReceivingResults)7 ReceivingItemResult (org.folio.rest.jaxrs.model.ReceivingItemResult)6 Test (org.junit.jupiter.api.Test)5 TestUtils.getMinimalContentCompositePoLine (org.folio.TestUtils.getMinimalContentCompositePoLine)4 CompositePoLine (org.folio.rest.jaxrs.model.CompositePoLine)4 ReceivingCollection (org.folio.rest.jaxrs.model.ReceivingCollection)4 JsonObject (io.vertx.core.json.JsonObject)3 HashMap (java.util.HashMap)3 Piece (org.folio.rest.jaxrs.model.Piece)3 Matchers.emptyString (org.hamcrest.Matchers.emptyString)3 HashSet (java.util.HashSet)2 CheckInPiece (org.folio.rest.jaxrs.model.CheckInPiece)2 Error (org.folio.rest.jaxrs.model.Error)2 PoLine (org.folio.rest.jaxrs.model.PoLine)2 ReceivedItem (org.folio.rest.jaxrs.model.ReceivedItem)2 ToBeCheckedIn (org.folio.rest.jaxrs.model.ToBeCheckedIn)2 Response (io.restassured.response.Response)1 IOException (java.io.IOException)1 ArrayList (java.util.ArrayList)1