@Test public void testDistinctStr() { Query query = new Query(kindName, rootKey); query.addProjection(new PropertyProjection("stringData", String.class)); query.setDistinct(true); assertTrue(query.getDistinct()); // distinct false query = new Query(kindName, rootKey); query.addProjection(new PropertyProjection("stringData", String.class)); query.setDistinct(false); assertEquals(count, service.prepare(query).countEntities(fo)); assertFalse(query.getDistinct()); }
@Test public void testDistinctNum() { Query query = new Query(kindName, rootKey); query.addProjection(new PropertyProjection("floatData", Float.class)); query.setDistinct(true); assertEquals(4, service.prepare(query).countEntities(fo)); assertTrue(query.getDistinct()); query = new Query(kindName, rootKey); query.addProjection(new PropertyProjection("floatData", Float.class)); query.setDistinct(false); assertEquals(count, service.prepare(query).countEntities(fo)); assertFalse(query.getDistinct()); }
@Test public void testDistinctList() { Query query = new Query(kindName, rootKey); query.addProjection(new PropertyProjection("intList", Integer.class)); query.setDistinct(true); assertEquals("Expecting 24 entities: " + service.prepare(query).asList(fo), 24, service.prepare(query).countEntities(fo)); assertTrue(query.getDistinct()); // distinct false query = new Query(kindName, rootKey); query.addProjection(new PropertyProjection("intList", Integer.class)); query.setDistinct(false); // 3 cols * 30 rows assertEquals(count * 3, service.prepare(query).countEntities(fo)); assertFalse(query.getDistinct()); }
@Test public void testDistinctMix() { Query query = new Query(kindName, rootKey); query.addProjection(new PropertyProjection("stringData", String.class)); query.addProjection(new PropertyProjection("floatData", Float.class)); query.setDistinct(true); assertEquals(7, service.prepare(query).countEntities(fo)); assertTrue(query.getDistinct()); // distinct false query = new Query(kindName, rootKey); query.addProjection(new PropertyProjection("stringData", String.class)); query.addProjection(new PropertyProjection("floatData", Float.class)); query.setDistinct(false); assertEquals(count, service.prepare(query).countEntities(fo)); assertFalse(query.getDistinct()); }
@Test public void testDistinctFilter() { Query query = new Query(kindName, rootKey); query.addProjection(new PropertyProjection("stringData", String.class)); query.addProjection(new PropertyProjection("floatData", Float.class)); query.setFilter(new FilterPredicate("stringData", Query.FilterOperator.NOT_EQUAL, "string1")); query.addSort("stringData", Query.SortDirection.DESCENDING); query.setDistinct(true); assertEquals(5, service.prepare(query).countEntities(fo)); assertTrue(query.getDistinct()); }
@Test public void testDistinctSort() { Query query = new Query(kindName, rootKey); query.addProjection(new PropertyProjection("stringData", String.class)); query.addProjection(new PropertyProjection("floatData", Float.class)); query.addSort("stringData", Query.SortDirection.DESCENDING); query.setDistinct(true); assertEquals(7, service.prepare(query).countEntities(fo)); assertTrue(query.getDistinct()); query.addSort("floatData", Query.SortDirection.DESCENDING); assertEquals(7, service.prepare(query).countEntities(fo)); }
@Test public void testDistinctFilter2() { Query query = new Query(kindName, rootKey); query.addProjection(new PropertyProjection("stringData", String.class)); query.addProjection(new PropertyProjection("floatData", Float.class)); query.setFilter(new FilterPredicate("stringData", Query.FilterOperator.GREATER_THAN, "string0")); query.addSort("stringData", Query.SortDirection.DESCENDING); query.addSort("floatData", Query.SortDirection.DESCENDING); query.setDistinct(true); assertEquals(2, service.prepare(query).countEntities(fo)); assertTrue(query.getDistinct()); } }