@Test public void errorWithContinueOnErrorPreferHeader() throws Exception { ODataClient client = getClient(); client.getConfiguration().setContinueOnError(true); final ODataBatchRequest request = client.getBatchRequestFactory().getBatchRequest(SERVICE_URI); final BatchManager payload = request.payloadManager(); appendGetRequest(payload, "ESAllPrim", 32767, false); // Without error appendGetRequest(payload, "ESAllPrim", 42, false); // Error ( Key does not exist ) appendGetRequest(payload, "ESAllPrim", 0, false); // Without error // Fetch result final ODataBatchResponse response = payload.getResponse(); assertEquals(HttpStatusCode.ACCEPTED.getStatusCode(), response.getStatusCode()); assertEquals( PreferenceName.CONTINUE_ON_ERROR.getName(), response.getHeader(HttpHeader.PREFERENCE_APPLIED).iterator().next()); final Iterator<ODataBatchResponseItem> bodyIterator = response.getBody(); // Check first get request assertTrue(bodyIterator.hasNext()); ODataBatchResponseItem item = bodyIterator.next(); assertFalse(item.isChangeset()); ODataResponse oDataResponse = item.next(); assertNotNull(oDataResponse); assertEquals(HttpStatusCode.OK.getStatusCode(), oDataResponse.getStatusCode()); assertEquals(1, oDataResponse.getHeader(HttpHeader.ODATA_VERSION).size()); assertEquals("4.0", oDataResponse.getHeader(HttpHeader.ODATA_VERSION).toArray()[0]); assertEquals(1, oDataResponse.getHeader(HttpHeader.CONTENT_LENGTH).size()); assertEquals("605", oDataResponse.getHeader(HttpHeader.CONTENT_LENGTH).toArray()[0]); assertEquals(ContentType.JSON.toContentTypeString(), oDataResponse.getContentType()); // Check second get request assertTrue(bodyIterator.hasNext()); item = bodyIterator.next(); assertFalse(item.isChangeset()); oDataResponse = item.next(); assertNotNull(oDataResponse); assertEquals(HttpStatusCode.NOT_FOUND.getStatusCode(), oDataResponse.getStatusCode()); // Check if third request is available assertTrue(bodyIterator.hasNext()); item = bodyIterator.next(); assertFalse(item.isChangeset()); oDataResponse = item.next(); assertNotNull(oDataResponse); assertEquals(HttpStatusCode.OK.getStatusCode(), oDataResponse.getStatusCode()); assertEquals(1, oDataResponse.getHeader(HttpHeader.ODATA_VERSION).size()); assertEquals("4.0", oDataResponse.getHeader(HttpHeader.ODATA_VERSION).iterator().next()); assertEquals(1, oDataResponse.getHeader(HttpHeader.CONTENT_LENGTH).size()); assertEquals("517", oDataResponse.getHeader(HttpHeader.CONTENT_LENGTH).iterator().next()); assertEquals(ContentType.JSON.toContentTypeString(), oDataResponse.getContentType()); }
@Test public void getBatchRequest() throws URISyntaxException { final ODataBatchRequest request = getClient().getBatchRequestFactory().getBatchRequest(SERVICE_URI); final BatchManager payload = request.payloadManager(); // create new request appendGetRequest(payload, "ESAllPrim", 32767, false); // Fetch result final ODataBatchResponse response = payload.getResponse(); assertEquals(HttpStatusCode.ACCEPTED.getStatusCode(), response.getStatusCode()); assertEquals("Accepted", response.getStatusMessage()); final Iterator<ODataBatchResponseItem> iter = response.getBody(); assertTrue(iter.hasNext()); ODataBatchResponseItem item = iter.next(); assertFalse(item.isChangeset()); ODataResponse oDataResponse = item.next(); assertNotNull(oDataResponse); assertEquals(HttpStatusCode.OK.getStatusCode(), oDataResponse.getStatusCode()); assertEquals(1, oDataResponse.getHeader("OData-Version").size()); assertEquals("4.0", oDataResponse.getHeader("OData-Version").toArray()[0]); assertEquals(1, oDataResponse.getHeader("Content-Length").size()); assertEquals("605", oDataResponse.getHeader("Content-Length").toArray()[0]); assertEquals(ContentType.JSON.toContentTypeString(), oDataResponse.getContentType()); }
@Test public void errorWithoutContinueOnErrorPreferHeader() throws URISyntaxException { final ODataBatchRequest request = getClient().getBatchRequestFactory().getBatchRequest(SERVICE_URI); final BatchManager payload = request.payloadManager(); appendGetRequest(payload, "ESAllPrim", 32767, false); // Without error appendGetRequest(payload, "ESAllPrim", 42, false); // Error ( Key does not exist ) appendGetRequest(payload, "ESAllPrim", 0, false); // Without error // Fetch result final ODataBatchResponse response = payload.getResponse(); assertEquals(HttpStatusCode.ACCEPTED.getStatusCode(), response.getStatusCode()); final Iterator<ODataBatchResponseItem> iter = response.getBody(); // Check first get request assertTrue(iter.hasNext()); ODataBatchResponseItem item = iter.next(); assertFalse(item.isChangeset()); ODataResponse oDataResponse = item.next(); assertNotNull(oDataResponse); assertEquals(HttpStatusCode.OK.getStatusCode(), oDataResponse.getStatusCode()); assertEquals(1, oDataResponse.getHeader("OData-Version").size()); assertEquals("4.0", oDataResponse.getHeader("OData-Version").toArray()[0]); assertEquals(1, oDataResponse.getHeader("Content-Length").size()); assertEquals("605", oDataResponse.getHeader("Content-Length").toArray()[0]); assertEquals(ContentType.JSON.toContentTypeString(), oDataResponse.getContentType()); // Check second get request assertTrue(iter.hasNext()); item = iter.next(); assertFalse(item.isChangeset()); oDataResponse = item.next(); assertNotNull(oDataResponse); assertEquals(HttpStatusCode.NOT_FOUND.getStatusCode(), oDataResponse.getStatusCode()); // Check if third request is available assertFalse(iter.hasNext()); }