@SuppressWarnings("unchecked") public void testQueryPermissionCheckedResults() throws Exception { CannedQueryFactory<String> qfOne = namedQueryFactoryRegistry.getNamedObject(QUERY_TEST_ONE); CannedQueryParameters params = new CannedQueryParameters(null, null, null, 0, null); CannedQuery<String> qOne = qfOne.getCannedQuery(params); CannedQueryResults<String> qrOne = qOne.execute(); // Check pages assertEquals("Incorrect number of results", 9, qrOne.getPagedResultCount()); assertEquals("Incorrect result order", "ONE_0", qrOne.getPages().get(0).get(0)); assertEquals("Incorrect result order", "ONE_1", qrOne.getPages().get(0).get(1)); assertEquals("Incorrect result order", "ONE_2", qrOne.getPages().get(0).get(2)); assertEquals("Incorrect result order", "ONE_3", qrOne.getPages().get(0).get(3)); assertEquals("Incorrect result order", "ONE_4", qrOne.getPages().get(0).get(4)); // << missing 5! assertEquals("Incorrect result order", "ONE_6", qrOne.getPages().get(0).get(5)); assertEquals("Incorrect result order", "ONE_7", qrOne.getPages().get(0).get(6)); assertEquals("Incorrect result order", "ONE_8", qrOne.getPages().get(0).get(7)); assertEquals("Incorrect result order", "ONE_9", qrOne.getPages().get(0).get(8)); assertFalse("Should NOT have any more pages/items", qrOne.hasMoreItems()); }
CannedQueryResults<String> qrOne = qOne.execute(); assertEquals("Incorrect number of results", 9, qrOne.getPagedResultCount()); assertEquals("No sorting was specified in the parameters", "ONE_0", qrOne.getPages().get(0).get(0)); assertEquals("No sorting was specified in the parameters", "ONE_9", qrOne.getPages().get(1).get(3)); List<List<String>> pages = qrOne.getPages(); assertEquals("Incorrect number of pages", 2, pages.size()); assertEquals("Incorrect results on page", 5, pages.get(0).size()); assertEquals("Incorrect results on page", 4, pages.get(1).size()); assertFalse("Should NOT have any more pages/items", qrOne.hasMoreItems()); assertEquals("Incorrect number of results", 7, qrOne.getPagedResultCount()); assertEquals("Incorrect number of pages", 3, qrOne.getPageCount()); pages = qrOne.getPages(); assertEquals("Incorrect number of pages", 3, pages.size()); assertEquals("Incorrect results on page", 3, pages.get(0).size()); assertEquals("Incorrect results on page", 3, pages.get(1).size()); assertEquals("Incorrect results on page", 1, pages.get(2).size()); assertFalse("Should NOT have any more pages/items", qrOne.hasMoreItems()); assertEquals("Incorrect number of results", 6, qrOne.getPagedResultCount()); assertEquals("Incorrect number of pages", 2, qrOne.getPageCount()); pages = qrOne.getPages(); assertEquals("Incorrect number of pages", 2, pages.size()); assertEquals("Incorrect results on page", 3, pages.get(0).size()); assertEquals("Incorrect results on page", 3, pages.get(1).size()); assertTrue("Should have more pages/items", qrOne.hasMoreItems());
fail("Second execution of same instance must not be allowed."); fail("Expected failure when requesting total count without explicit request."); assertEquals("Incorrect number of results", 9, pagedResultCount); assertEquals("No sorting was specified in the parameters", "ONE_0", qrOne.getPages().get(0).get(0)); assertFalse("Should NOT have any more pages/items", qrOne.hasMoreItems());
@SuppressWarnings({ "unchecked", "rawtypes" }) public void testRegistry() throws Exception { CannedQueryFactory<String> one = namedQueryFactoryRegistry.getNamedObject(QUERY_TEST_ONE); assertNotNull("No factory for " + QUERY_TEST_ONE, one); CannedQueryFactory<String> two = namedQueryFactoryRegistry.getNamedObject(QUERY_TEST_TWO); assertNotNull("No factory for " + QUERY_TEST_TWO, two); // Kick out registrations with incorrect naming convention try { TestCannedQueryFactory<Long> namedQueryFactoryBogus = new TestCannedQueryFactory(RESULTS_TWO); namedQueryFactoryBogus.setBeanName("test_query_blah"); namedQueryFactoryBogus.setRegistry(namedQueryFactoryRegistry); namedQueryFactoryBogus.afterPropertiesSet(); fail("Should have kicked out incorrectly-named registered queries"); } catch (IllegalArgumentException e) { // Expected } }
@SuppressWarnings("unchecked") public void testQueryPermissionCheckedPagedTotalCount() throws Exception { CannedQueryFactory<String> qfOne = namedQueryFactoryRegistry.getNamedObject(QUERY_TEST_ONE); CannedQueryPageDetails qPageDetails = new CannedQueryPageDetails(5, 1, 1, 1); CannedQuerySortDetails qSortDetails = new CannedQuerySortDetails( new Pair<Object, SortOrder>("blah", SortOrder.DESCENDING)); CannedQueryParameters params = new CannedQueryParameters(null, qPageDetails, qSortDetails, 1000, null); CannedQuery<String> qOne = qfOne.getCannedQuery(params); CannedQueryResults<String> qrOne = qOne.execute(); // Check pages assertEquals("Incorrect number of total results", new Pair<Integer, Integer>(9,9), qrOne.getTotalResultCount()); // Pre-paging assertEquals("Incorrect number of paged results", 1, qrOne.getPagedResultCount()); // Skipped 5 assertEquals("Incorrect result order", "ONE_3", qrOne.getPages().get(0).get(0)); // Order reversed assertTrue("Should have more pages/items", qrOne.hasMoreItems()); }
@SuppressWarnings("unchecked") public void testQueryMaxResults() throws Exception { // An instance of the CannedQueryFactory could be injected or constructed as well CannedQueryFactory<String> qfOne = namedQueryFactoryRegistry.getNamedObject(QUERY_TEST_ONE); CannedQuery<String> qOne = qfOne.getCannedQuery(null, 0, 9, null); CannedQueryResults<String> qrOne = qOne.execute(); // Get the paged result count int pagedResultCount = qrOne.getPagedResultCount(); assertEquals("Incorrect number of results", 9, pagedResultCount); assertEquals("Incorrect number of pages", 1, qrOne.getPageCount()); List<List<String>> pages = qrOne.getPages(); assertEquals("Incorrect number of pages", 1, pages.size()); assertEquals("No sorting was specified in the parameters", "ONE_0", qrOne.getPages().get(0).get(0)); assertEquals("No sorting was specified in the parameters", "ONE_9", qrOne.getPages().get(0).get(8)); assertFalse("Should have more pages/items", qrOne.hasMoreItems()); }
@SuppressWarnings("unchecked") public void testQuerySortedResults() throws Exception { CannedQueryFactory<String> qfOne = namedQueryFactoryRegistry.getNamedObject(QUERY_TEST_ONE); CannedQuerySortDetails qSortDetails = new CannedQuerySortDetails( new Pair<Object, SortOrder>("blah", SortOrder.DESCENDING)); CannedQueryParameters params = new CannedQueryParameters(null, null, qSortDetails); CannedQuery<String> qOne = qfOne.getCannedQuery(params); CannedQueryResults<String> qrOne = qOne.execute(); // Check pages assertEquals("Incorrect number of results", 9, qrOne.getPagedResultCount()); assertEquals("Expected inverse sorting", "ONE_9", qrOne.getPages().get(0).get(0)); assertEquals("Expected inverse sorting", "ONE_0", qrOne.getPages().get(0).get(8)); assertFalse("Should NOT have any more pages/items", qrOne.hasMoreItems()); }