diff --git a/galasa-parent/dev.galasa.framework.api.openapi/src/main/resources/openapi.yaml b/galasa-parent/dev.galasa.framework.api.openapi/src/main/resources/openapi.yaml index 0ea38548e..706bed6a3 100644 --- a/galasa-parent/dev.galasa.framework.api.openapi/src/main/resources/openapi.yaml +++ b/galasa-parent/dev.galasa.framework.api.openapi/src/main/resources/openapi.yaml @@ -277,7 +277,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/JsonError' + $ref: '#/components/schemas/APIError' examples: genericerror: value: @@ -1164,16 +1164,6 @@ paths: schema: type: string example: dev.galasa.inttests.simbank.local.mvp.SimBankLocalJava11UbuntuMvp - - name: page - in: query - description: | - Deprecated (since 0.37.0) - Use the 'cursor' query parameter instead. - Causes a specific page in the available results to be returned. - The first page is page 1. - If omitted, then page 1 is returned. - schema: - type: integer - example: 2 - name: size in: query description: | @@ -1200,16 +1190,6 @@ paths: schema: type: string example: U1578 - - # Temporary feature flag to enable cursor-based pagination - - name: includeCursor - in: query - description: | - A boolean flag to enable cursor-based pagination and return the next page cursor - in the response. If omitted, it will default to false. - schema: - type: string - example: 'true' - name: cursor in: query description: | @@ -2084,12 +2064,8 @@ components: RunResults: type: object properties: - pageNumber: - type: integer pageSize: type: integer - numPages: - type: integer amountOfRuns: type: integer nextCursor: diff --git a/galasa-parent/dev.galasa.framework.api.ras/src/main/java/dev/galasa/framework/api/ras/internal/common/RasQueryParameters.java b/galasa-parent/dev.galasa.framework.api.ras/src/main/java/dev/galasa/framework/api/ras/internal/common/RasQueryParameters.java index c7b9ff9ce..0aa0c627d 100644 --- a/galasa-parent/dev.galasa.framework.api.ras/src/main/java/dev/galasa/framework/api/ras/internal/common/RasQueryParameters.java +++ b/galasa-parent/dev.galasa.framework.api.ras/src/main/java/dev/galasa/framework/api/ras/internal/common/RasQueryParameters.java @@ -102,10 +102,6 @@ public String getPageCursor() throws InternalServletException { return generalQueryParams.getSingleString("cursor", null); } - public boolean getIncludeCursor() throws InternalServletException { - return generalQueryParams.getSingleBoolean("includeCursor", false); - } - public RasSortField getSortValue() throws InternalServletException { return getSortValue(null); } diff --git a/galasa-parent/dev.galasa.framework.api.ras/src/main/java/dev/galasa/framework/api/ras/internal/routes/RunQueryRoute.java b/galasa-parent/dev.galasa.framework.api.ras/src/main/java/dev/galasa/framework/api/ras/internal/routes/RunQueryRoute.java index 5a7b6903f..769cda7dd 100644 --- a/galasa-parent/dev.galasa.framework.api.ras/src/main/java/dev/galasa/framework/api/ras/internal/routes/RunQueryRoute.java +++ b/galasa-parent/dev.galasa.framework.api.ras/src/main/java/dev/galasa/framework/api/ras/internal/routes/RunQueryRoute.java @@ -5,8 +5,6 @@ */ package dev.galasa.framework.api.ras.internal.routes; -import org.apache.commons.collections4.ListUtils; - import com.google.gson.JsonElement; import com.google.gson.JsonObject; @@ -81,10 +79,8 @@ public HttpServletResponse handleGetRequest(String pathInfo, QueryParameters gen private String retrieveResults(RasQueryParameters queryParams) throws InternalServletException { - int pageNum = queryParams.getPageNumber(); int pageSize = queryParams.getPageSize(); - boolean includeCursor = queryParams.getIncludeCursor(); String pageCursor = queryParams.getPageCursor(); List runs = new ArrayList<>(); @@ -101,27 +97,16 @@ private String retrieveResults(RasQueryParameters queryParams) throws InternalSe String responseJson = null; try { if (runIds != null && runIds.size() > 0) { - runs = getRunsByIds(runIds); - } else { - List criteria = getCriteria(queryParams); - if (includeCursor || pageCursor != null) { - runsPage = getRunsPage(pageCursor, pageSize, formatSortField(sortValue), criteria); - } else { - runs = getRuns(criteria); - } - } - - if (runsPage == null) { - runs = sortResults(runs, queryParams, sortValue); - responseJson = buildResponseBody(runs, pageNum, pageSize); + runs = sortResults(getRunsByIds(runIds), queryParams, sortValue); + responseJson = buildResponseBody(runs, pageSize, null); } else { + runsPage = getRunsPage(pageCursor, pageSize, formatSortField(sortValue), getCriteria(queryParams)); responseJson = buildResponseBody(runsPage, pageSize); } } catch (ResultArchiveStoreException e) { ServletError error = new ServletError(GAL5003_ERROR_RETRIEVING_RUNS); throw new InternalServletException(error, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e); } - return responseJson; } @@ -178,48 +163,23 @@ private List getCriteria(RasQueryParameters queryParams) thr return criteria ; } - private String buildResponseBody(List runs, int pageNum, int pageSize) throws InternalServletException { + private String buildResponseBody(List runs, int pageSize, String nextPageCursor) { + JsonObject pageJson = new JsonObject(); - //Splits up the pages based on the page size - List> paginatedResults = ListUtils.partition(runs, pageSize); - - //Building the object to be returned by the API and splitting - JsonObject runsPage = null; - try { - if ((pageNum == 1) && paginatedResults.isEmpty()) { - // No results at all, so return one page saying that. - runsPage = pageToJson(runs, runs.size(), 1, pageSize,1); - } else { - runsPage = pageToJson( - paginatedResults.get(pageNum - 1), - runs.size(), - pageNum, - pageSize, - paginatedResults.size() - ); - } - } catch (IndexOutOfBoundsException e) { - ServletError error = new ServletError(GAL5004_ERROR_RETRIEVING_PAGE); - throw new InternalServletException(error, HttpServletResponse.SC_BAD_REQUEST, e); - } - return gson.toJson(runsPage); - } - - private String buildResponseBody(RasRunResultPage runsPage, int pageSize) throws ResultArchiveStoreException { - - //Building the object to be returned by the API and splitting - JsonObject pageJson = new JsonObject(); - - List runs = convertRunsToRunResults(runsPage.getRuns()); JsonElement tree = gson.toJsonTree(runs); pageJson.addProperty("pageSize", pageSize); pageJson.addProperty("amountOfRuns", runs.size()); - pageJson.addProperty("nextCursor", runsPage.getNextCursor()); + pageJson.addProperty("nextCursor", nextPageCursor); pageJson.add("runs", tree); return gson.toJson(pageJson); } + private String buildResponseBody(RasRunResultPage runsPage, int pageSize) throws ResultArchiveStoreException { + List runs = convertRunsToRunResults(runsPage.getRuns()); + return buildResponseBody(runs, pageSize, runsPage.getNextCursor()); + } + private List getCriteria( String requestor, String testName, @@ -271,37 +231,6 @@ private List getCriteria( return critList; } - private JsonObject pageToJson(List resultsInPage, int totalRuns, int pageNum, int pageSize, int numPages) { - JsonObject obj = new JsonObject(); - - obj.addProperty("pageNum", pageNum); - obj.addProperty("pageSize", pageSize); - obj.addProperty("numPages", numPages); - obj.addProperty("amountOfRuns", totalRuns); - - JsonElement tree = gson.toJsonTree(resultsInPage); - - obj.add("runs", tree); - return obj; - } - - private List getRuns(List critList) throws ResultArchiveStoreException, InternalServletException { - - IRasSearchCriteria[] criteria = new IRasSearchCriteria[critList.size()]; - - critList.toArray(criteria); - - // Collect all the runs from all the RAS stores into a single list - List runs = new ArrayList<>(); - for (IResultArchiveStoreDirectoryService directoryService : getFramework().getResultArchiveStore().getDirectoryServices()) { - runs.addAll(directoryService.getRuns(criteria)); - } - - List runResults = convertRunsToRunResults(runs); - - return runResults; - } - private RasRunResultPage getRunsPage(String pageCursor, int maxResults, RasSortField primarySort, List critList) throws ResultArchiveStoreException { IRasSearchCriteria[] criteria = new IRasSearchCriteria[critList.size()]; diff --git a/galasa-parent/dev.galasa.framework.api.ras/src/test/java/dev/galasa/framework/api/ras/internal/mocks/MockResultArchiveStoreDirectoryService.java b/galasa-parent/dev.galasa.framework.api.ras/src/test/java/dev/galasa/framework/api/ras/internal/mocks/MockResultArchiveStoreDirectoryService.java index 64c16dc57..7adfca896 100644 --- a/galasa-parent/dev.galasa.framework.api.ras/src/test/java/dev/galasa/framework/api/ras/internal/mocks/MockResultArchiveStoreDirectoryService.java +++ b/galasa-parent/dev.galasa.framework.api.ras/src/test/java/dev/galasa/framework/api/ras/internal/mocks/MockResultArchiveStoreDirectoryService.java @@ -48,6 +48,9 @@ private void applySearchCriteria( IRasSearchCriteria searchCriteria) throws Resu @Override public @NotNull RasRunResultPage getRunsPage(int maxResults, RasSortField primarySort, String pageCursor, @NotNull IRasSearchCriteria... searchCriterias) throws ResultArchiveStoreException { + if (pageCursor != null && pageCursor.equals("error")) { + throw new ResultArchiveStoreException("simulating a RAS error!"); + } return new RasRunResultPage(getRuns(searchCriterias), nextCursor); } diff --git a/galasa-parent/dev.galasa.framework.api.ras/src/test/java/dev/galasa/framework/api/ras/internal/routes/TestRunQuery.java b/galasa-parent/dev.galasa.framework.api.ras/src/test/java/dev/galasa/framework/api/ras/internal/routes/TestRunQuery.java index d18617cc4..51b7380ef 100644 --- a/galasa-parent/dev.galasa.framework.api.ras/src/test/java/dev/galasa/framework/api/ras/internal/routes/TestRunQuery.java +++ b/galasa-parent/dev.galasa.framework.api.ras/src/test/java/dev/galasa/framework/api/ras/internal/routes/TestRunQuery.java @@ -13,7 +13,6 @@ import dev.galasa.framework.spi.utils.GalasaGson; import org.junit.Test; -import org.apache.commons.collections4.ListUtils; import org.apache.commons.lang3.RandomStringUtils; import dev.galasa.framework.api.ras.internal.RasServlet; @@ -69,9 +68,15 @@ private Map addQueryTimeParameter ( Map map, return map; } - private Map setQueryParameter (Integer page, Integer size,String sort, String runname, String requestor, Integer agemin, Integer agemax){ + private Map setQueryParameters( + Integer size, + String sort, + String runname, + String requestor, + Integer agemin, + Integer agemax + ) { Map parameterMap = new HashMap(); - parameterMap = addQueryIntParameter(parameterMap, "page", page); parameterMap = addQueryIntParameter(parameterMap, "size", size); parameterMap = addQueryParameter(parameterMap, "sort", sort); parameterMap = addQueryParameter(parameterMap, "runname", runname); @@ -147,29 +152,6 @@ private JsonArray createRunsJsonArray(List mockRuns) throws ResultAr return runsJson; } - private String generateExpectedJson(List mockInputRunResults, int pageSize, int pageNum) throws ResultArchiveStoreException { - List> pagedRuns = ListUtils.partition(mockInputRunResults, pageSize); - - JsonObject jsonResult = new JsonObject(); - jsonResult.addProperty("pageNum", pageNum); - jsonResult.addProperty("pageSize", pageSize); - - JsonArray runsJson = new JsonArray(); - if (!pagedRuns.isEmpty()) { - jsonResult.addProperty("numPages", pagedRuns.size()); - - runsJson = createRunsJsonArray(pagedRuns.get(pageNum - 1)); - - } else { - jsonResult.addProperty("numPages", 1); - } - - jsonResult.addProperty("amountOfRuns", mockInputRunResults.size()); - jsonResult.add("runs", runsJson); - - return gson.toJson(jsonResult); - } - private String generateExpectedJson(List mockInputRunResults, String nextCursor, int pageSize) throws ResultArchiveStoreException { JsonObject jsonResult = new JsonObject(); @@ -407,7 +389,7 @@ public void TestPathRegexMultipleForwardSlashPathReturnsFalse(){ @Test public void testQueryWithRequestorNotSortedButNoDBServiceReturnsError() throws Exception { // Given... - Map parameterMap = setQueryParameter(1,100,null, null,"mickey", 72, null); + Map parameterMap = setQueryParameters(100,null, null,"mickey", 72, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap,"/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment(null,mockRequest); @@ -469,7 +451,6 @@ public void testNoQueryNotSortedWithDBServiceReturnsOK() throws Exception { // Given... Map parameterMap = new HashMap(); int pageSize = 100; - int pageNo = 1; List mockInputRunResults= new ArrayList(); @@ -487,7 +468,7 @@ public void testNoQueryNotSortedWithDBServiceReturnsOK() throws Exception { // Then... // We expect an empty page back, because the API server couldn't find any results - String expectedJson = generateExpectedJson(mockInputRunResults, pageSize, pageNo); + String expectedJson = generateExpectedJson(mockInputRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedJson); assertThat(resp.getContentType()).isEqualTo("application/json"); @@ -496,7 +477,7 @@ public void testNoQueryNotSortedWithDBServiceReturnsOK() throws Exception { @Test public void testQueryWithRequestorNotSortedWithEmptyDBServiceReturnsOK() throws Exception { // Given... - Map parameterMap = setQueryParameter(1,100,null, null,"mickey", 72, null); + Map parameterMap = setQueryParameters(100,null, null,"mickey", 72, null); List mockInputRunResults= new ArrayList(); @@ -508,7 +489,6 @@ public void testQueryWithRequestorNotSortedWithEmptyDBServiceReturnsOK() throws HttpServletResponse resp = mockServletEnvironment.getResponse(); ServletOutputStream outStream = resp.getOutputStream(); int pageSize = 100; - int pageNo = 1; // When... servlet.init(); @@ -517,14 +497,12 @@ public void testQueryWithRequestorNotSortedWithEmptyDBServiceReturnsOK() throws //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 0, // "runs": [ // ] // } - String expectedJson = generateExpectedJson(mockInputRunResults, pageSize, pageNo); + String expectedJson = generateExpectedJson(mockInputRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedJson); assertThat(resp.getContentType()).isEqualTo("application/json"); @@ -535,13 +513,12 @@ public void testQueryWithRequestorNotSortedWithDBServiceWithOneRecordReturnsOK() //Given.. List mockInputRunResults = generateTestDataAscendingTime(1,1,1); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,null, null,null, 72, null); + Map parameterMap = setQueryParameters(100,null, null,null, 72, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); int pageSize = 100; - int pageNo = 1; RasServlet servlet = mockServletEnvironment.getServlet(); HttpServletRequest req = mockServletEnvironment.getRequest(); HttpServletResponse resp = mockServletEnvironment.getResponse(); @@ -554,9 +531,7 @@ public void testQueryWithRequestorNotSortedWithDBServiceWithOneRecordReturnsOK() //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 1, // "runs": [ // { @@ -568,7 +543,7 @@ public void testQueryWithRequestorNotSortedWithDBServiceWithOneRecordReturnsOK() // } // ] // } - String expectedJson = generateExpectedJson(mockInputRunResults,pageSize, pageNo); + String expectedJson = generateExpectedJson(mockInputRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedJson); assertThat(resp.getContentType()).isEqualTo("application/json"); @@ -579,7 +554,7 @@ public void testQueryWithRequestorNotSortedWithDBServiceTenRecordsReturnsOK() th //Given.. List mockInputRunResults = generateTestDataAscendingTime(10,2,1); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,null, null,null, 72, null); + Map parameterMap = setQueryParameters(100,null, null,null, 72, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -596,9 +571,7 @@ public void testQueryWithRequestorNotSortedWithDBServiceTenRecordsReturnsOK() th //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [ // { @@ -633,13 +606,12 @@ public void testQueryWithFromDateNotSortedWithDBServiceWithOneRecordReturnsOK() //Given.. List mockInputRunResults = generateTestDataAscendingTime(1,1,1); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,null, null,null, 72, null); + Map parameterMap = setQueryParameters(100,null, null,null, 72, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); int pageSize = 100; - int pageNo = 1; RasServlet servlet = mockServletEnvironment.getServlet(); HttpServletRequest req = mockServletEnvironment.getRequest(); HttpServletResponse resp = mockServletEnvironment.getResponse(); @@ -652,9 +624,7 @@ public void testQueryWithFromDateNotSortedWithDBServiceWithOneRecordReturnsOK() //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 1, // "runs": [ // { @@ -666,7 +636,7 @@ public void testQueryWithFromDateNotSortedWithDBServiceWithOneRecordReturnsOK() // } // ] // } - String expectedJson = generateExpectedJson(mockInputRunResults ,pageSize, pageNo); + String expectedJson = generateExpectedJson(mockInputRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedJson); assertThat(resp.getContentType()).isEqualTo("application/json"); @@ -677,7 +647,7 @@ public void testQueryWithoutFromDateOrRunNameNotSortedWithDBServiceTenRecordsRet //Given.. List mockInputRunResults = generateTestDataAscendingTime(10,2, 48); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,null, null ,null, null, null); + Map parameterMap = setQueryParameters(100,null, null ,null, null, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -691,9 +661,6 @@ public void testQueryWithoutFromDateOrRunNameNotSortedWithDBServiceTenRecordsRet servlet.init(); servlet.doGet(req,resp); - //Then... - // Expecting: - //Then... assertThat(resp.getStatus()).isEqualTo(400); assertThat(outStream.toString()).contains("GAL5010E: Error parsing the query parameters. from time is a mandatory field if no runname is supplied."); @@ -705,7 +672,7 @@ public void testNoQueryWithDBServiceTenRecordsReturnsOK() throws Exception { //Given.. List mockInputRunResults = generateTestDataAscendingTime(10,2, 15); //Build Http query parameters - Map parameterMap = setQueryParameter(null,null,null, null ,null, null, null); + Map parameterMap = setQueryParameters(null,null, null ,null, null, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -719,9 +686,6 @@ public void testNoQueryWithDBServiceTenRecordsReturnsOK() throws Exception { servlet.init(); servlet.doGet(req,resp); - //Then... - // Expecting: - //Then... List expectedRunNames = generateExpectedRunNames(mockInputRunResults); String actualOutput = outStream.toString(); @@ -741,9 +705,8 @@ public void testQueryWithoutFromDateWithRunNameNotSortedWithDBServiceTenRecordsR //Build Http query parameters IRunResult run = mockInputRunResults.get(1); int pageSize = 100; - int pageNum = 1; - Map parameterMap = setQueryParameter(pageNum,pageSize,null,run.getTestStructure().getRunName(),null, 72, null); + Map parameterMap = setQueryParameters(pageSize,null,run.getTestStructure().getRunName(),null, 72, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -762,13 +725,11 @@ public void testQueryWithoutFromDateWithRunNameNotSortedWithDBServiceTenRecordsR //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 0, // "runs": [] // } - String expectedJson = generateExpectedJson(expectedRun, pageSize, pageNum); + String expectedJson = generateExpectedJson(expectedRun, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedJson); assertThat(resp.getContentType()).isEqualTo("application/json"); @@ -782,8 +743,7 @@ public void testQueryWithFromDateAndRunnameNotSortedWithDBServiceTenRecordsRetur IRunResult run = mockInputRunResults.get(5); int pageSize = 100; - int pageNum = 1; - Map parameterMap = setQueryParameter(pageNum,pageSize,null,run.getTestStructure().getRunName(),null, 72, null); + Map parameterMap = setQueryParameters(pageSize,null,run.getTestStructure().getRunName(),null, 72, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -802,13 +762,11 @@ public void testQueryWithFromDateAndRunnameNotSortedWithDBServiceTenRecordsRetur //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 0, // "runs": [] // } - String expectedJson = generateExpectedJson(expectedRun, pageSize, pageNum); + String expectedJson = generateExpectedJson(expectedRun, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedJson); assertThat(resp.getContentType()).isEqualTo("application/json"); @@ -822,8 +780,7 @@ public void testQueryWithFromDateAndRunnameOutsideNotSortedWithDBServiceTenRecor IRunResult run = mockInputRunResults.get(5); int pageSize = 100; - int pageNum = 1; - Map parameterMap = setQueryParameter(pageNum,pageSize,null,run.getTestStructure().getRunName(),null, 24, null); + Map parameterMap = setQueryParameters(pageSize,null,run.getTestStructure().getRunName(),null, 24, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -841,13 +798,11 @@ public void testQueryWithFromDateAndRunnameOutsideNotSortedWithDBServiceTenRecor //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 0, // "runs": [] // } - String expectedJson = generateExpectedJson(expectedRun, pageSize, pageNum); + String expectedJson = generateExpectedJson(expectedRun, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedJson); assertThat(resp.getContentType()).isEqualTo("application/json"); @@ -859,7 +814,7 @@ public void testQueryWithRequestorNotSortedWithDBServiceTenRecordsPageSizeFiveRe List mockInputRunResults = generateTestDataAscendingTime(10,5,1); //Build Http query parameters String requestor = mockInputRunResults.get(0).getTestStructure().getRequestor(); - Map parameterMap = setQueryParameter(1,100,null,null,requestor, 72, null); + Map parameterMap = setQueryParameters(100,null,null,requestor, 72, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -876,9 +831,7 @@ public void testQueryWithRequestorNotSortedWithDBServiceTenRecordsPageSizeFiveRe //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 5, - // "numPages": 2, // "amountOfRuns": 10, // "runs": [ // { @@ -917,7 +870,7 @@ public void testQueryWithRequestorNotSortedWithDBServiceTenRecordsPageSizeFivePa List mockInputRunResults = generateTestDataAscendingTime(10,5,2); //Build Http query parameters - Map parameterMap = setQueryParameter(2,5,null,null,null, 72, null); + Map parameterMap = setQueryParameters(5,null,null,null, 72, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -934,9 +887,7 @@ public void testQueryWithRequestorNotSortedWithDBServiceTenRecordsPageSizeFivePa //Then... // Expecting: // { - // "pageNum": 2, // "pageSize": 5, - // "numPages": 2, // "amountOfRuns": 10, // "runs": [ // { @@ -978,8 +929,7 @@ public void testQueryWithRequestorNotSortedWithDBServiceTwentyRecordsPageSizeFiv List mockInputRunResults = generateTestDataAscendingTime(20,5,1); //Build Http query parameters int pageSize = 5; - int pageNum = 3; - Map parameterMap = setQueryParameter(pageNum,pageSize,null,null,null, 72, null); + Map parameterMap = setQueryParameters(pageSize,null,null,null, 72, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -996,9 +946,7 @@ public void testQueryWithRequestorNotSortedWithDBServiceTwentyRecordsPageSizeFiv //Then... // Expecting: // { - // "pageNum": 3, // "pageSize": 5, - // "numPages": 4, // "amountOfRuns": 20, // "runs": [ // { @@ -1017,49 +965,19 @@ public void testQueryWithRequestorNotSortedWithDBServiceTwentyRecordsPageSizeFiv // } // ] // } - Collections.reverse(mockInputRunResults); - - String expectedJson = generateExpectedJson(mockInputRunResults, pageSize, pageNum); + String expectedJson = generateExpectedJson(mockInputRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedJson); assertThat(resp.getContentType()).isEqualTo("application/json"); } - @Test - public void testQueryWithRequestorNotSortedWithDBServiceTwentyRecordsPageSizeFivePageFiveReturnsError() throws Exception { - //Given.. - List mockInputRunResults = generateTestDataAscendingTime(20,3,1); - //Build Http query parameters - String requestor = mockInputRunResults.get(0).getTestStructure().getRequestor(); - Map parameterMap = setQueryParameter(5,5,null,null,requestor, 72, null); - - MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); - MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); - - RasServlet servlet = mockServletEnvironment.getServlet(); - HttpServletRequest req = mockServletEnvironment.getRequest(); - HttpServletResponse resp = mockServletEnvironment.getResponse(); - ServletOutputStream outStream = resp.getOutputStream(); - - //When... - servlet.init(); - servlet.doGet(req,resp); - - //Then... - assertThat(resp.getStatus()).isEqualTo(400); - - checkErrorStructure(outStream.toString(), 5004, "GAL5004E: ", "Error retrieving page."); - - assertThat(resp.getContentType()).isEqualTo("application/json"); - } - @Test public void testQueryWithResultsSortedWithDBServiceTenRecordsPageSize100FalseFromDateReturnsError() throws Exception { //Given.. List mockInputRunResults = generateTestDataAscendingTime(20,10,1); //Build Http query parameters String requestor = mockInputRunResults.get(0).getTestStructure().getRequestor(); - Map parameterMap = setQueryParameter(1,100,"result:asc",null,requestor, null, null); + Map parameterMap = setQueryParameters(100,"result:asc",null,requestor, null, null); String[] fromTime = {"erroneousValue"}; parameterMap.put("from", fromTime); @@ -1093,7 +1011,7 @@ public void testQueryWithResultsSortedWithDBServiceTenRecordsPageSize100FalseToD List mockInputRunResults = generateTestDataAscendingTime(20,10,1); //Build Http query parameters String requestor = mockInputRunResults.get(0).getTestStructure().getRequestor(); - Map parameterMap = setQueryParameter(1,100,null,null,requestor, null, null); + Map parameterMap = setQueryParameters(100,null,null,requestor, null, null); String[] toTime = {"erroneousValue"}; parameterMap.put("to", toTime); @@ -1135,7 +1053,7 @@ public IRunResult getRunById(@NotNull String runId) throws ResultArchiveStoreExc //Build Http query parameters String requestor = mockInputRunResults.get(0).getTestStructure().getRequestor(); - Map parameterMap = setQueryParameter(1,100,null,null,requestor, 72, null);; + Map parameterMap = setQueryParameters(100,null,null,requestor, 72, null); String[] runId = {"erroneousrunId"}; parameterMap.put("runId", runId); @@ -1177,18 +1095,6 @@ public void testQueryWithNonIntegerPageSizeReturnsError () throws Exception { testQueryParametersReturnsError(parameterMap ,5005, "GAL5005E:","'size'","Invalid","NonIntegerErroneousValue"); } - @Test - public void testQueryWithNonIntegerPageNumberReturnsError () throws Exception { - - //Build Http query parameters - Map parameterMap = new HashMap(); - - String[] pageNumber = {"NonIntegerErroneousValue"}; // << This is what should cause the failure. - parameterMap.put("page", pageNumber); - - testQueryParametersReturnsError(parameterMap ,5005, "GAL5005E:","'page'","Invalid","NonIntegerErroneousValue"); - } - @Test public void testQueryWithMultipleRequestorsReturnsError () throws Exception { @@ -1233,13 +1139,12 @@ public void testQueryWithMultipleResultsReturnsOK () throws Exception { //Given... //Build Http query parameters - Map parameterMap = setQueryParameter(null,null,"result:asc",null, null, 72, null); + Map parameterMap = setQueryParameters(null,"result:asc",null, null, 72, null); // Two results should return all the results String[] results = new String[] {"Passed,Failed"}; parameterMap.put("result", results); int pageSize = 100; - int pageNo = 1; List mockInputRunResults = generateTestDataAscendingTime(20,10,1); @@ -1256,7 +1161,7 @@ public void testQueryWithMultipleResultsReturnsOK () throws Exception { servlet.doGet(req,resp); //Then... - String expectedJson = generateExpectedJson(mockInputRunResults,pageSize, pageNo); + String expectedJson = generateExpectedJson(mockInputRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(resp.getContentType()).isEqualTo("application/json"); assertThat(outStream.toString()).isEqualTo(expectedJson); @@ -1267,13 +1172,12 @@ public void testQueryWithMultipleStatusesReturnsOK () throws Exception { //Given... //Build Http query parameters - Map parameterMap = setQueryParameter(null,null,"result:asc",null, null, 72, null); + Map parameterMap = setQueryParameters(null,"result:asc",null, null, 72, null); // Two results should return all the results String[] statuses = new String[] {"building,running"}; parameterMap.put("status", statuses); int pageSize = 100; - int pageNo = 1; List mockInputRunResults = generateTestDataAscendingTime(20,10,1); @@ -1290,7 +1194,7 @@ public void testQueryWithMultipleStatusesReturnsOK () throws Exception { servlet.doGet(req,resp); //Then... - String expectedJson = generateExpectedJson(mockInputRunResults,pageSize, pageNo); + String expectedJson = generateExpectedJson(mockInputRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(resp.getContentType()).isEqualTo("application/json"); assertThat(outStream.toString()).isEqualTo(expectedJson); @@ -1348,19 +1252,6 @@ public void testQueryWithMultiplePageSizesReturnsError () throws Exception { testQueryParametersReturnsError(parameterMap ,5006, "GAL5006E:","'size'","Duplicate"); } - @Test - public void testQueryWithMultiplePageNumReturnsError () throws Exception { - - //Build Http query parameters - Map parameterMap = new HashMap(); - - // Two page numbers ! should be invalid ! - String[] pageNums = new String[] {"5","10"}; - parameterMap.put("page", pageNums); - - testQueryParametersReturnsError(parameterMap ,5006, "GAL5006E:","'page'","Duplicate"); - } - @Test public void testQueryWithFromDateAndToDateNotSortedWithDBServiceTenRecordsReturnsOK() throws Exception { //Given.. @@ -1372,7 +1263,7 @@ public void testQueryWithFromDateAndToDateNotSortedWithDBServiceTenRecordsReturn excludedRuns.addAll(mockInputRunResults); mockInputRunResults.addAll(expectedInputRunResults); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,null,null, null, 72, 36); + Map parameterMap = setQueryParameters(100,null,null, null, 72, 36); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -1389,9 +1280,7 @@ public void testQueryWithFromDateAndToDateNotSortedWithDBServiceTenRecordsReturn //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } @@ -1415,7 +1304,7 @@ public void testQueryWithFromDateAndToDatetSortedToDescendingWithDBServiceTenRec excludedRuns.addAll(mockInputRunResults); mockInputRunResults.addAll(expectedInputRunResults); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,"to:desc",null, null, 72, 36); + Map parameterMap = setQueryParameters(100,"to:desc",null, null, 72, 36); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -1432,9 +1321,7 @@ public void testQueryWithFromDateAndToDatetSortedToDescendingWithDBServiceTenRec //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } @@ -1460,7 +1347,7 @@ public void testQueryWithFromDateAndToDatetSortedToAscendingWithDBServiceTenReco excludedRuns.addAll(mockInputRunResults); mockInputRunResults.addAll(expectedInputRunResults); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,"to:asc",null, null, 72, 36); + Map parameterMap = setQueryParameters(100,"to:asc",null, null, 72, 36); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -1477,9 +1364,7 @@ public void testQueryWithFromDateAndToDatetSortedToAscendingWithDBServiceTenReco //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } @@ -1505,7 +1390,7 @@ public void testQueryWithFromDateAndToDatetSortedResultDescendingWithDBServiceTe excludedRuns.addAll(mockInputRunResults); mockInputRunResults.addAll(expectedInputRunResults); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,"result:desc",null, null, 72, 36); + Map parameterMap = setQueryParameters(100,"result:desc",null, null, 72, 36); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -1522,9 +1407,7 @@ public void testQueryWithFromDateAndToDatetSortedResultDescendingWithDBServiceTe //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } @@ -1550,7 +1433,7 @@ public void testQueryWithFromDateAndToDateResultSortedResultAscendingWithDBServi excludedRuns.addAll(mockInputRunResults); mockInputRunResults.addAll(expectedInputRunResults); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,"result:asc",null, null, 72, 36); + Map parameterMap = setQueryParameters(100,"result:asc",null, null, 72, 36); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -1567,9 +1450,7 @@ public void testQueryWithFromDateAndToDateResultSortedResultAscendingWithDBServi //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } @@ -1591,7 +1472,7 @@ public void testQueryWithFromDateSortedTestclassDescendingWithDBServiceTenRecord List expectedInputRunResults = generateTestDataAscendingTime(10,2, 48); mockInputRunResults.addAll(expectedInputRunResults); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,"testclass:desc",null, null, 72, null); + Map parameterMap = setQueryParameters(100,"testclass:desc",null, null, 72, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -1608,9 +1489,7 @@ public void testQueryWithFromDateSortedTestclassDescendingWithDBServiceTenRecord //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } @@ -1635,7 +1514,7 @@ public void testQueryWithFromDateAndToDateResultSortedTestclassAscendingWithDBSe excludedRuns.addAll(mockInputRunResults); mockInputRunResults.addAll(expectedInputRunResults); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,"testclass:asc",null, null, 72, 36); + Map parameterMap = setQueryParameters(100,"testclass:asc",null, null, 72, 36); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -1652,9 +1531,7 @@ public void testQueryWithFromDateAndToDateResultSortedTestclassAscendingWithDBSe //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } @@ -1675,7 +1552,7 @@ public void testQueryWithFromDateAndToDateBadSortWithDBServiceTenRecordsReturnsE List mockInputRunResults = generateTestDataAscendingTime(10,2, 48); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,"badsort",null, null, 72, 36); + Map parameterMap = setQueryParameters(100,"badsort",null, null, 72, 36); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -1692,9 +1569,7 @@ public void testQueryWithFromDateAndToDateBadSortWithDBServiceTenRecordsReturnsE //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } @@ -1709,7 +1584,7 @@ public void testQueryWithFromDateBadSortValueWithDBServiceTenRecordsReturnsError List mockInputRunResults = generateTestDataAscendingTime(10,2, 48); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,"to:erroneoussort",null, null, 72, null); + Map parameterMap = setQueryParameters(100,"to:erroneoussort",null, null, 72, null); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); @@ -1729,40 +1604,6 @@ public void testQueryWithFromDateBadSortValueWithDBServiceTenRecordsReturnsError assertThat(resp.getContentType()).isEqualTo("application/json"); } - @Test - public void testQueryWithFromDateBadSortKeyWithDBServiceTenRecordsReturnsOkUnsorted() throws Exception { - //Given.. - List mockInputRunResults = generateTestDataAscendingTime(10,2, 48); - - //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,"erroneoussort:desc",null, null, 72, null); - - MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); - MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment( mockInputRunResults,mockRequest); - - RasServlet servlet = mockServletEnvironment.getServlet(); - HttpServletRequest req = mockServletEnvironment.getRequest(); - HttpServletResponse resp = mockServletEnvironment.getResponse(); - ServletOutputStream outStream = resp.getOutputStream(); - - //When... - servlet.init(); - servlet.doGet(req,resp); - - //Then... - // Expecting: - // { - // "pageNum": 1, - // "pageSize": 100, - // "numPages": 1, - // "amountOfRuns": 10, - // "runs": [...] - // } - assertThat(resp.getStatus()).isEqualTo(400); - assertThat(outStream.toString()).contains("GAL5011E", "Error parsing the query parameters", "sort value 'erroneoussort' not recognised"); - assertThat(resp.getContentType()).isEqualTo("application/json"); - } - @Test public void testQueryWithFromResultNotSortedWithDBServiceTenRecordsReturnsOK() throws Exception { //Given.. @@ -1772,7 +1613,7 @@ public void testQueryWithFromResultNotSortedWithDBServiceTenRecordsReturnsOK() t excludedRuns.addAll(mockInputRunResults); mockInputRunResults.addAll(expectedInputRunResults); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,"to:asc",null, null, 72, null); + Map parameterMap = setQueryParameters(100,"to:asc",null, null, 72, null); parameterMap.put("result", new String[] {"Passed"}); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); @@ -1790,9 +1631,7 @@ public void testQueryWithFromResultNotSortedWithDBServiceTenRecordsReturnsOK() t //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } @@ -1816,7 +1655,7 @@ public void testQueryWithFromtestNameNotSortedWithDBServiceTenRecordsReturnsOK() IRunResult run = expectedInputRunResults.get(0); String testName = run.getTestStructure().getTestName().toString(); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,"to:asc",null, null, 72, null); + Map parameterMap = setQueryParameters(100,"to:asc",null, null, 72, null); parameterMap.put("testname", new String[] {testName}); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); @@ -1834,9 +1673,7 @@ public void testQueryWithFromtestNameNotSortedWithDBServiceTenRecordsReturnsOK() //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } @@ -1860,7 +1697,7 @@ public void testQueryWithFromBundleNotSortedWithDBServiceTenRecordsReturnsOK() t IRunResult run = expectedInputRunResults.get(0); String bundle = run.getTestStructure().getBundle(); //Build Http query parameters - Map parameterMap = setQueryParameter(1,100,"to:asc",null, null, 72, null); + Map parameterMap = setQueryParameters(100,"to:asc",null, null, 72, null); parameterMap.put("bundle", new String[] {bundle}); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); @@ -1878,9 +1715,7 @@ public void testQueryWithFromBundleNotSortedWithDBServiceTenRecordsReturnsOK() t //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } @@ -1904,8 +1739,7 @@ public void testQueryWithFromRunIdNotSortedWithDBServiceTenRecordsReturnsOK() th // Build query parameters int pageSize = 100; - int pageNum = 1; - Map parameterMap = setQueryParameter(pageNum,pageSize,"to:asc",null, null, 72, null); + Map parameterMap = setQueryParameters(pageSize,"to:asc",null, null, 72, null); parameterMap.put("runId", new String[] {runid}); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); @@ -1923,13 +1757,11 @@ public void testQueryWithFromRunIdNotSortedWithDBServiceTenRecordsReturnsOK() th //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } - String expectedRunNames = generateExpectedJson(expectedInputRunResults, pageSize, pageNum); + String expectedRunNames = generateExpectedJson(expectedInputRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedRunNames); assertThat(resp.getContentType()).isEqualTo("application/json"); @@ -1948,8 +1780,7 @@ public void testQueryWithFromRunIdsNotSortedWithDBServiceTenRecordsReturnsOK() t //Build query parameters int pageSize = 100; - int pageNum = 1; - Map parameterMap = setQueryParameter(pageNum, pageSize, null, null, null, 72, null); + Map parameterMap = setQueryParameters(pageSize, null, null, null, 72, null); parameterMap.put("runId", new String[] {runid+","+runid1}); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); @@ -1967,14 +1798,12 @@ public void testQueryWithFromRunIdsNotSortedWithDBServiceTenRecordsReturnsOK() t //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } Collections.reverse(expectedInputRunResults); - String expectedRunNames = generateExpectedJson(expectedInputRunResults, pageSize, pageNum); + String expectedRunNames = generateExpectedJson(expectedInputRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedRunNames); assertThat(resp.getContentType()).isEqualTo("application/json"); @@ -1991,10 +1820,8 @@ public void testQueryWithRunIdsNotSortedWithDBServiceTenRecordsReturnsOK() throw IRunResult run1 = expectedInputRunResults.get(1); String runid1 = run1.getRunId(); - //Build Http query parameters int pageSize = 100; - int pageNum = 1; - Map parameterMap = setQueryParameter(pageNum, pageSize, null, null, null, null, null); + Map parameterMap = setQueryParameters(pageSize, null, null, null, null, null); parameterMap.put("runId", new String[] {runid+","+runid1}); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); @@ -2012,14 +1839,12 @@ public void testQueryWithRunIdsNotSortedWithDBServiceTenRecordsReturnsOK() throw //Then... // Expecting: // { - // "pageNum": 1, // "pageSize": 100, - // "numPages": 1, // "amountOfRuns": 10, // "runs": [...] // } Collections.reverse(expectedInputRunResults); - String expectedRunNames = generateExpectedJson(expectedInputRunResults, pageSize, pageNum); + String expectedRunNames = generateExpectedJson(expectedInputRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedRunNames); assertThat(resp.getContentType()).isEqualTo("application/json"); @@ -2104,7 +1929,6 @@ public void testNoQueryNotSortedWithAcceptHeaderWithDBServiceReturnsOK() throws // Given... Map parameterMap = new HashMap(); int pageSize = 100; - int pageNo = 1; Map headerMap = new HashMap(); headerMap.put("Accept","application/json"); @@ -2125,7 +1949,7 @@ public void testNoQueryNotSortedWithAcceptHeaderWithDBServiceReturnsOK() throws // Then... // We expect an empty page back, because the API server couldn't find any results - String expectedJson = generateExpectedJson(mockInputRunResults, pageSize, pageNo); + String expectedJson = generateExpectedJson(mockInputRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedJson); assertThat(resp.getContentType()).isEqualTo("application/json"); @@ -2138,7 +1962,7 @@ public void testQueryWithIncludeCursorReturnsResultsWithNextTokenOK() throws Exc // Build query parameters int pageSize = 100; - Map parameterMap = setQueryParameter(null,pageSize,null, null,null, 72, null);; + Map parameterMap = setQueryParameters(pageSize,null, null,null, 72, null); parameterMap = addQueryParameter(parameterMap, "includeCursor", "true"); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); @@ -2165,16 +1989,21 @@ public void testQueryWithIncludeCursorReturnsResultsWithNextTokenOK() throws Exc } @Test - public void testQueryWithInvalidIncludeCursorValueThrowsError() throws Exception { + public void testQueryWithCursorReturnsResultsWithNextTokenOK() throws Exception { // Given.. List mockInputRunResults = generateTestDataAscendingTime(1,1,1); // Build query parameters - Map parameterMap = setQueryParameter(null,100,null, null,null, 72, null);; - parameterMap = addQueryParameter(parameterMap, "includeCursor", "notaboolean"); + int pageSize = 100; + Map parameterMap = setQueryParameters(pageSize,null, null,null, 72, null); + parameterMap = addQueryParameter(parameterMap, "cursor", "iwantthispage"); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment(mockInputRunResults,mockRequest); + MockResultArchiveStoreDirectoryService mockRasService = (MockResultArchiveStoreDirectoryService) mockServletEnvironment.getDirectoryService().get(0); + + String nextCursor = "next-page"; + mockRasService.setNextCursor(nextCursor); RasServlet servlet = mockServletEnvironment.getServlet(); HttpServletRequest req = mockServletEnvironment.getRequest(); @@ -2186,27 +2015,24 @@ public void testQueryWithInvalidIncludeCursorValueThrowsError() throws Exception servlet.doGet(req,resp); // Then... - assertThat(resp.getStatus()).isEqualTo(400); - assertThat(outStream.toString()).contains("GAL5090E", "Error parsing the query parameter 'includeCursor'", "Expecting a boolean"); + String expectedJson = generateExpectedJson(mockInputRunResults, nextCursor, pageSize); + assertThat(resp.getStatus()).isEqualTo(200); + assertThat(outStream.toString()).isEqualTo(expectedJson); assertThat(resp.getContentType()).isEqualTo("application/json"); } @Test - public void testQueryWithCursorReturnsResultsWithNextTokenOK() throws Exception { + public void testQueryWithBadCursorThrowsError() throws Exception { // Given.. List mockInputRunResults = generateTestDataAscendingTime(1,1,1); // Build query parameters int pageSize = 100; - Map parameterMap = setQueryParameter(null,pageSize,null, null,null, 72, null);; - parameterMap = addQueryParameter(parameterMap, "cursor", "iwantthispage"); + Map parameterMap = setQueryParameters(pageSize,null, null,null, 72, null); + parameterMap = addQueryParameter(parameterMap, "cursor", "error"); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); MockRasServletEnvironment mockServletEnvironment = new MockRasServletEnvironment(mockInputRunResults,mockRequest); - MockResultArchiveStoreDirectoryService mockRasService = (MockResultArchiveStoreDirectoryService) mockServletEnvironment.getDirectoryService().get(0); - - String nextCursor = "next-page"; - mockRasService.setNextCursor(nextCursor); RasServlet servlet = mockServletEnvironment.getServlet(); HttpServletRequest req = mockServletEnvironment.getRequest(); @@ -2218,9 +2044,8 @@ public void testQueryWithCursorReturnsResultsWithNextTokenOK() throws Exception servlet.doGet(req,resp); // Then... - String expectedJson = generateExpectedJson(mockInputRunResults, nextCursor, pageSize); - assertThat(resp.getStatus()).isEqualTo(200); - assertThat(outStream.toString()).isEqualTo(expectedJson); + assertThat(resp.getStatus()).isEqualTo(500); + assertThat(outStream.toString()).contains("GAL5003E", "Error retrieving runs"); assertThat(resp.getContentType()).isEqualTo("application/json"); } @@ -2239,9 +2064,8 @@ public void testQueryWithUnknownSortThrowsError() throws Exception { // Build query parameters int pageSize = 100; - int pageNum = 1; String unknownSort = "unknown:desc"; - Map parameterMap = setQueryParameter(pageNum, pageSize,unknownSort, null,null, 72, null); + Map parameterMap = setQueryParameters(pageSize, unknownSort, null,null, 72, null); parameterMap.put("runId", new String[] { runId1 + "," + runId2 }); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); @@ -2285,9 +2109,8 @@ public void testQueryWithSortByQueuedTimeAscendingReturnsRunsOk() throws Excepti // Build query parameters int pageSize = 100; - int pageNum = 1; String sort = "from:asc"; - Map parameterMap = setQueryParameter(pageNum, pageSize, sort, null,null, 72, null); + Map parameterMap = setQueryParameters(pageSize, sort, null,null, 72, null); parameterMap.put("runId", new String[] { runId1 + "," + runId2 + "," + runId3 }); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); @@ -2309,7 +2132,7 @@ public void testQueryWithSortByQueuedTimeAscendingReturnsRunsOk() throws Excepti testRun3 ); - String expectedJson = generateExpectedJson(expectedOrderedRunResults, pageSize, pageNum); + String expectedJson = generateExpectedJson(expectedOrderedRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedJson); assertThat(resp.getContentType()).isEqualTo("application/json"); @@ -2338,9 +2161,8 @@ public void testQueryWithSortByQueuedTimeDescendingReturnsRunsOk() throws Except // Build query parameters int pageSize = 100; - int pageNum = 1; String sort = "from:desc"; - Map parameterMap = setQueryParameter(pageNum, pageSize, sort, null,null, 72, null); + Map parameterMap = setQueryParameters(pageSize, sort, null,null, 72, null); parameterMap.put("runId", new String[] { runId1 + "," + runId2 + "," + runId3 }); MockHttpServletRequest mockRequest = new MockHttpServletRequest(parameterMap, "/runs"); @@ -2362,7 +2184,7 @@ public void testQueryWithSortByQueuedTimeDescendingReturnsRunsOk() throws Except testRun1 ); - String expectedJson = generateExpectedJson(expectedOrderedRunResults, pageSize, pageNum); + String expectedJson = generateExpectedJson(expectedOrderedRunResults, null, pageSize); assertThat(resp.getStatus()).isEqualTo(200); assertThat(outStream.toString()).isEqualTo(expectedJson); assertThat(resp.getContentType()).isEqualTo("application/json");