package siena.base.test; import static siena.Json.map; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.List; import siena.Query; import siena.SienaRestrictedApiException; import siena.base.test.model.Address; import siena.base.test.model.AutoInc; import siena.base.test.model.Contact; import siena.base.test.model.DataTypes; import siena.base.test.model.DataTypes.EnumLong; import siena.base.test.model.Discovery4JoinStringId; import siena.base.test.model.DiscoveryPrivate; import siena.base.test.model.DiscoveryStringId; import siena.base.test.model.MultipleKeys; import siena.base.test.model.PersonLongAutoID; import siena.base.test.model.PersonLongManualID; import siena.base.test.model.PersonStringAutoIncID; import siena.base.test.model.PersonStringID; import siena.base.test.model.PersonUUID; import siena.sdb.SdbPersistenceManager; public abstract class BaseTestNoAutoInc_2_FETCH extends BaseTestNoAutoInc_BASE { public void testCount() { assertEquals(3, pm.createQuery(PersonUUID.class).count()); } public void testFetch() { List<PersonUUID> people = queryPersonUUIDOrderBy("n", 0, false).fetch(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(UUID_TESLA, people.get(0)); assertEquals(UUID_CURIE, people.get(1)); assertEquals(UUID_EINSTEIN, people.get(2)); } public void testFetchKeys() { List<PersonUUID> people = queryPersonUUIDOrderBy("n", 0, false).fetchKeys(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(UUID_TESLA.id, people.get(0).id); assertEquals(UUID_CURIE.id, people.get(1).id); assertEquals(UUID_EINSTEIN.id, people.get(2).id); assertTrue(people.get(0).isOnlyIdFilled()); assertTrue(people.get(1).isOnlyIdFilled()); assertTrue(people.get(2).isOnlyIdFilled()); } public void testFetchOrder() { List<PersonUUID> people = queryPersonUUIDOrderBy("firstName", "", false).fetch(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(UUID_EINSTEIN, people.get(0)); assertEquals(UUID_CURIE, people.get(1)); assertEquals(UUID_TESLA, people.get(2)); } public void testFetchOrderKeys() { List<PersonUUID> people = queryPersonUUIDOrderBy("firstName", "", false).fetchKeys(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(UUID_EINSTEIN.id, people.get(0).id); assertEquals(UUID_CURIE.id, people.get(1).id); assertEquals(UUID_TESLA.id, people.get(2).id); } public void testFetchOrderDesc() { List<PersonUUID> people = queryPersonUUIDOrderBy("lastName", "", true).fetch(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(UUID_TESLA, people.get(0)); assertEquals(UUID_EINSTEIN, people.get(1)); assertEquals(UUID_CURIE, people.get(2)); } public void testFetchOrderDescKeys() { List<PersonUUID> people = queryPersonUUIDOrderBy("lastName", "", true).fetchKeys(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(UUID_TESLA.id, people.get(0).id); assertEquals(UUID_EINSTEIN.id, people.get(1).id); assertEquals(UUID_CURIE.id, people.get(2).id); } public void testFetchOrderOnLongAutoId() { if(supportsAutoincrement()){ List<PersonLongAutoID> people = queryPersonLongAutoIDOrderBy("id", "", false).fetchKeys(); assertEquals(0, people.size()); }else { try { List<PersonLongAutoID> people = queryPersonLongAutoIDOrderBy("id", "", false).fetchKeys(); }catch(SienaRestrictedApiException ex){ return; } fail(); } } public void testFetchOrderOnLongManualId() { List<PersonLongManualID> people = queryPersonLongManualIDOrderBy("id", "", false).fetchKeys(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(LongManualID_TESLA.id, people.get(0).id); assertEquals(LongManualID_CURIE.id, people.get(1).id); assertEquals(LongManualID_EINSTEIN.id, people.get(2).id); } public void testFetchOrderOnStringId() { List<PersonStringID> people = queryPersonStringIDOrderBy("id", "", false).fetchKeys(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(StringID_CURIE.id, people.get(0).id); assertEquals(StringID_EINSTEIN.id, people.get(1).id); assertEquals(StringID_TESLA.id, people.get(2).id); } public void testFetchOrderOnUUID() { List<PersonUUID> l = getOrderedPersonUUIDs(); List<PersonUUID> people = queryPersonUUIDOrderBy("id", "", false).fetchKeys(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(l.get(0).id, people.get(0).id); assertEquals(l.get(1).id, people.get(1).id); assertEquals(l.get(2).id, people.get(2).id); } public void testFetchOrderOnLongAutoIdDesc() { if(supportsAutoincrement()){ List<PersonLongAutoID> people = queryPersonLongAutoIDOrderBy("id", "", true).fetchKeys(); assertEquals(0, people.size()); }else { try { List<PersonLongAutoID> people = queryPersonLongAutoIDOrderBy("id", "", true).fetchKeys(); }catch(SienaRestrictedApiException ex){ return; } fail(); } } public void testFetchOrderOnLongManualIdDesc() { List<PersonLongManualID> people = queryPersonLongManualIDOrderBy("id", "", true).fetchKeys(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(LongManualID_EINSTEIN.id, people.get(0).id); assertEquals(LongManualID_CURIE.id, people.get(1).id); assertEquals(LongManualID_TESLA.id, people.get(2).id); } public void testFetchOrderOnStringIdDesc() { List<PersonStringID> people = queryPersonStringIDOrderBy("id", "", true).fetchKeys(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(StringID_TESLA.id, people.get(0).id); assertEquals(StringID_EINSTEIN.id, people.get(1).id); assertEquals(StringID_CURIE.id, people.get(2).id); } public void testFetchOrderOnUUIDDesc() { List<PersonUUID> l = getOrderedPersonUUIDs(); List<PersonUUID> people = queryPersonUUIDOrderBy("id", "", true).fetchKeys(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(l.get(2).id, people.get(0).id); assertEquals(l.get(1).id, people.get(1).id); assertEquals(l.get(0).id, people.get(2).id); } public void testFilterOperatorEqualString() { PersonUUID person = pm.createQuery(PersonUUID.class).filter("firstName", "Albert").get(); assertNotNull(person); assertEquals(UUID_EINSTEIN, person); } public void testFilterOperatorEqualInt() { PersonUUID person = pm.createQuery(PersonUUID.class).filter("n", 3).get(); assertNotNull(person); assertEquals(UUID_EINSTEIN, person); } public void testFilterOperatorEqualUUID() { List<PersonUUID> l = getOrderedPersonUUIDs(); PersonUUID person = pm.createQuery(PersonUUID.class).filter("id", l.get(0).id).get(); assertNotNull(person); assertEquals(l.get(0), person); } public void testFilterOperatorEqualLongAutoID() { if(supportsAutoincrement()){ PersonLongAutoID person = pm.createQuery(PersonLongAutoID.class).filter("id", LongAutoID_EINSTEIN.id).get(); assertNotNull(person); assertEquals(LongAutoID_EINSTEIN, person); }else { try { PersonLongAutoID person = pm.createQuery(PersonLongAutoID.class).filter("id", LongAutoID_EINSTEIN.id).get(); }catch(SienaRestrictedApiException ex){ return; } fail(); } } public void testFilterOperatorEqualLongManualID() { PersonLongManualID person = pm.createQuery(PersonLongManualID.class).filter("id", 3L).get(); assertNotNull(person); assertEquals(LongManualID_EINSTEIN, person); } public void testFilterOperatorEqualStringID() { PersonStringID person = pm.createQuery(PersonStringID.class).filter("id", "EINSTEIN").get(); assertNotNull(person); assertEquals(StringID_EINSTEIN, person); } public void testFilterOperatorNotEqualString() { List<PersonStringID> people = pm.createQuery(PersonStringID.class).filter("firstName!=", "Albert").order("firstName").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(StringID_CURIE, people.get(0)); assertEquals(StringID_TESLA, people.get(1)); } public void testFilterOperatorNotEqualInt() { List<PersonUUID> people = pm.createQuery(PersonUUID.class).filter("n!=", 3).order("n").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(UUID_TESLA, people.get(0)); assertEquals(UUID_CURIE, people.get(1)); } public void testFilterOperatorNotEqualUUID() { List<PersonUUID> l = getOrderedPersonUUIDs(); List<PersonUUID> people = pm.createQuery(PersonUUID.class).filter("id!=", l.get(0).id).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(l.get(1), people.get(0)); assertEquals(l.get(2), people.get(1)); } public void testFilterOperatorNotEqualLongAutoID() { if(supportsAutoincrement()){ List<PersonLongAutoID> people = pm.createQuery(PersonLongAutoID.class).filter("id!=", LongAutoID_EINSTEIN.id).order("id").fetch(); assertEquals(0, people.size()); }else { try { List<PersonLongAutoID> people = pm.createQuery(PersonLongAutoID.class).filter("id!=", LongAutoID_EINSTEIN.id).order("id").fetch(); }catch(SienaRestrictedApiException ex){ return; } fail(); } } public void testFilterOperatorNotEqualLongManualID() { List<PersonLongManualID> people = pm.createQuery(PersonLongManualID.class).filter("id!=", 3L).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(LongManualID_TESLA, people.get(0)); assertEquals(LongManualID_CURIE, people.get(1)); } public void testFilterOperatorNotEqualStringID() { List<PersonStringID> people = pm.createQuery(PersonStringID.class).filter("id!=", StringID_EINSTEIN.id).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(StringID_CURIE, people.get(0)); assertEquals(StringID_TESLA, people.get(1)); } public void testFilterOperatorIn() { @SuppressWarnings("serial") List<PersonUUID> people = pm.createQuery(PersonUUID.class) .filter("n IN", new ArrayList<Integer>(){{ add(2); add(3); }}) .order("n") .fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(UUID_CURIE, people.get(0)); assertEquals(UUID_EINSTEIN, people.get(1)); } public void testFilterOperatorInOrder() { @SuppressWarnings("serial") List<PersonUUID> people = pm.createQuery(PersonUUID.class) .filter("n IN", new ArrayList<Integer>(){{ add(3); add(2); }}) .order("n") .fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(UUID_CURIE, people.get(0)); assertEquals(UUID_EINSTEIN, people.get(1)); } public void testFilterOperatorInForUUID() { List<PersonUUID> l = getOrderedPersonUUIDs(); List<PersonUUID> people = pm.createQuery(PersonUUID.class) .filter("id IN", Arrays.asList( l.get(0).id, l.get(1).id)) .order("id") .fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(l.get(0), people.get(0)); assertEquals(l.get(1), people.get(1)); } public void testFilterOperatorInForLongAutoID() { if(supportsAutoincrement()){ @SuppressWarnings("serial") List<PersonLongAutoID> people = pm.createQuery(PersonLongAutoID.class) .filter("id IN", new ArrayList<Long>(){{ add(LongAutoID_TESLA.id); add(LongAutoID_CURIE.id); }}) .fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(LongAutoID_TESLA, people.get(0)); assertEquals(LongAutoID_CURIE, people.get(1)); }else { try { @SuppressWarnings("serial") List<PersonLongAutoID> people = pm.createQuery(PersonLongAutoID.class) .filter("id IN", new ArrayList<Long>(){{ add(LongAutoID_TESLA.id); add(LongAutoID_CURIE.id); }}) .fetch(); }catch(SienaRestrictedApiException ex){ return; } fail(); } } public void testFilterOperatorInForLongManualID() { @SuppressWarnings("serial") List<PersonLongManualID> people = pm.createQuery(PersonLongManualID.class) .filter("id IN", new ArrayList<Long>(){{ add(LongManualID_TESLA.id); add(LongManualID_CURIE.id); }}) .fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(LongManualID_TESLA, people.get(0)); assertEquals(LongManualID_CURIE, people.get(1)); } public void testFilterOperatorInForStringID() { @SuppressWarnings("serial") List<PersonStringID> people = pm.createQuery(PersonStringID.class) .filter("id IN", new ArrayList<String>(){{ add(StringID_TESLA.id); add(StringID_CURIE.id); }}) .order("id") .fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(StringID_CURIE, people.get(0)); assertEquals(StringID_TESLA, people.get(1)); } public void testFilterOperatorLessThan() { List<PersonUUID> people = pm.createQuery(PersonUUID.class).filter("n<", 3).order("n").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(UUID_TESLA, people.get(0)); assertEquals(UUID_CURIE, people.get(1)); } public void testFilterOperatorLessThanForUUID() { List<PersonUUID> l = getOrderedPersonUUIDs(); List<PersonUUID> people = pm.createQuery(PersonUUID.class).filter("id<", l.get(2).id).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(l.get(0), people.get(0)); assertEquals(l.get(1), people.get(1)); } public void testFilterOperatorLessThanForLongAutoID() { if(supportsAutoincrement()){ List<PersonLongAutoID> people = pm.createQuery(PersonLongAutoID.class).filter("id<", LongAutoID_EINSTEIN.id).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(LongAutoID_TESLA, people.get(0)); assertEquals(LongAutoID_CURIE, people.get(1)); }else { try { List<PersonLongAutoID> people = pm.createQuery(PersonLongAutoID.class).filter("id<", LongAutoID_EINSTEIN.id).order("id").fetch(); }catch(SienaRestrictedApiException ex){ return; } } fail(); } public void testFilterOperatorLessThanForLongManualID() { List<PersonLongManualID> people = pm.createQuery(PersonLongManualID.class).filter("id<", 3L).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(LongManualID_TESLA, people.get(0)); assertEquals(LongManualID_CURIE, people.get(1)); } public void testFilterOperatorLessThanForStringID() { List<PersonStringID> people = pm.createQuery(PersonStringID.class).filter("id<", StringID_TESLA.id).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(StringID_CURIE, people.get(0)); assertEquals(StringID_EINSTEIN, people.get(1)); } public void testFilterOperatorLessThanOrEqual() { List<PersonUUID> people = pm.createQuery(PersonUUID.class).filter("n<=", 3).order("n").fetch(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(UUID_TESLA, people.get(0)); assertEquals(UUID_CURIE, people.get(1)); assertEquals(UUID_EINSTEIN, people.get(2)); } public void testFilterOperatorLessThanOrEqualForUUID() { List<PersonUUID> l = getOrderedPersonUUIDs(); List<PersonUUID> people = pm.createQuery(PersonUUID.class).filter("id<=", l.get(2).id).order("id").fetch(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(l.get(0), people.get(0)); assertEquals(l.get(1), people.get(1)); assertEquals(l.get(2), people.get(2)); } public void testFilterOperatorLessThanOrEqualForLongAutoID() { if(supportsAutoincrement()){ List<PersonLongAutoID> people = pm.createQuery(PersonLongAutoID.class).filter("id<=", LongAutoID_EINSTEIN.id).order("id").fetch(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(LongAutoID_TESLA, people.get(0)); assertEquals(LongAutoID_CURIE, people.get(1)); assertEquals(LongAutoID_EINSTEIN, people.get(2)); } else { try { List<PersonLongAutoID> people = pm.createQuery(PersonLongAutoID.class).filter("id<=", LongAutoID_EINSTEIN.id).order("id").fetch(); }catch(SienaRestrictedApiException ex){ return; } } fail(); } public void testFilterOperatorLessThanOrEqualForLongManualID() { List<PersonLongManualID> people = pm.createQuery(PersonLongManualID.class).filter("id<=", LongManualID_EINSTEIN.id).order("id").fetch(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(LongManualID_TESLA, people.get(0)); assertEquals(LongManualID_CURIE, people.get(1)); assertEquals(LongManualID_EINSTEIN, people.get(2)); } public void testFilterOperatorLessThanOrEqualForStringID() { List<PersonStringID> people = pm.createQuery(PersonStringID.class).filter("id<=", StringID_TESLA.id).order("id").fetch(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(StringID_CURIE, people.get(0)); assertEquals(StringID_EINSTEIN, people.get(1)); assertEquals(StringID_TESLA, people.get(2)); } public void testFilterOperatorMoreThan() { List<PersonUUID> people = pm.createQuery(PersonUUID.class).filter("n>", 1).order("n").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(UUID_CURIE, people.get(0)); assertEquals(UUID_EINSTEIN, people.get(1)); } public void testFilterOperatorMoreThanForUUID() { List<PersonUUID> l = getOrderedPersonUUIDs(); List<PersonUUID> people = pm.createQuery(PersonUUID.class).filter("id>", l.get(0).id).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(l.get(1), people.get(0)); assertEquals(l.get(2), people.get(1)); } public void testFilterOperatorMoreThanForLongAutoID() { if(supportsAutoincrement()){ List<PersonLongAutoID> people = pm.createQuery(PersonLongAutoID.class).filter("id>", LongAutoID_TESLA.id).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(LongAutoID_CURIE, people.get(0)); assertEquals(LongAutoID_EINSTEIN, people.get(1)); }else { try { List<PersonLongAutoID> people = pm.createQuery(PersonLongAutoID.class).filter("id>", LongAutoID_TESLA.id).order("id").fetch(); }catch(SienaRestrictedApiException ex){ return; } fail(); } } public void testFilterOperatorMoreThanForLongManualID() { List<PersonLongManualID> people = pm.createQuery(PersonLongManualID.class).filter("id>", LongManualID_TESLA.id).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(LongManualID_CURIE, people.get(0)); assertEquals(LongManualID_EINSTEIN, people.get(1)); } public void testFilterOperatorMoreThanForStringID() { List<PersonStringID> people = pm.createQuery(PersonStringID.class).filter("id>", StringID_CURIE.id).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(StringID_EINSTEIN, people.get(0)); assertEquals(StringID_TESLA, people.get(1)); } public void testFilterOperatorMoreThanOrEqual() { List<PersonUUID> people = pm.createQuery(PersonUUID.class).filter("n>=", 1).order("n").fetch(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(UUID_TESLA, people.get(0)); assertEquals(UUID_CURIE, people.get(1)); assertEquals(UUID_EINSTEIN, people.get(2)); } public void testFilterOperatorMoreThanOrEqualForUUID() { List<PersonUUID> l = getOrderedPersonUUIDs(); List<PersonUUID> people = pm.createQuery(PersonUUID.class).filter("id>=", l.get(0).id).order("id").fetch(); assertNotNull(people); assertEquals(3, people.size()); assertEquals(l.get(0), people.get(0)); assertEquals(l.get(1), people.get(1)); assertEquals(l.get(2), people.get(2)); } public void testFilterOperatorMoreThanOrEqualForLongAutoID() { if(supportsAutoincrement()){ List<PersonLongAutoID> people = pm.createQuery(PersonLongAutoID.class).filter("id>", LongAutoID_TESLA.id).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(LongAutoID_CURIE, people.get(0)); assertEquals(LongAutoID_EINSTEIN, people.get(1)); }else { try { List<PersonLongAutoID> people = pm.createQuery(PersonLongAutoID.class).filter("id>=", LongAutoID_CURIE.id).order("id").fetch(); }catch(SienaRestrictedApiException ex){ return; } fail(); } } public void testFilterOperatorMoreThanOrEqualForLongManualID() { List<PersonLongManualID> people = pm.createQuery(PersonLongManualID.class).filter("id>=", LongManualID_CURIE.id).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(LongManualID_CURIE, people.get(0)); assertEquals(LongManualID_EINSTEIN, people.get(1)); } public void testFilterOperatorMoreThanOrEqualForStringID() { List<PersonStringID> people = pm.createQuery(PersonStringID.class).filter("id>=", StringID_EINSTEIN.id).order("id").fetch(); assertNotNull(people); assertEquals(2, people.size()); assertEquals(StringID_EINSTEIN, people.get(0)); assertEquals(StringID_TESLA, people.get(1)); } public void testCountFilter() { assertEquals(2, pm.createQuery(PersonUUID.class).filter("n<", 3).count()); } public void testCountFilterNotEqual() { assertEquals(2, pm.createQuery(PersonUUID.class).filter("n!=", 3).count()); } public void testCountFilterIn() { assertEquals(2, pm.createQuery(PersonUUID.class).filter("n IN", Arrays.asList(1, 2)).count()); } public void testCountFilterUUID() { List<PersonUUID> l = getOrderedPersonUUIDs(); assertEquals(2, pm.createQuery(PersonUUID.class).filter("id<", l.get(2).id).count()); } public void testCountFilterLongAutoID() { if(supportsAutoincrement()){ assertEquals(2, pm.createQuery(PersonLongAutoID.class).filter("id<", LongAutoID_EINSTEIN.id).count()); }else { try { assertEquals(2, pm.createQuery(PersonLongAutoID.class).filter("id<", LongAutoID_EINSTEIN.id).count()); }catch(SienaRestrictedApiException ex){ return; } fail(); } } public void testCountFilterLongManualID() { assertEquals(2, pm.createQuery(PersonLongManualID.class).filter("id<", LongManualID_EINSTEIN.id).count()); } public void testCountFilterStringID() { assertEquals(2, pm.createQuery(PersonStringID.class).filter("id<", StringID_TESLA.id).count()); } public void testFetchLimit() { List<PersonUUID> people = queryPersonUUIDOrderBy("n", 0, false).fetch(1); assertNotNull(people); assertEquals(1, people.size()); assertEquals(UUID_TESLA, people.get(0)); } public void testFetchLimitUUID() { List<PersonUUID> l = getOrderedPersonUUIDs(); List<PersonUUID> people = queryPersonUUIDOrderBy("id", l.get(0), false).fetch(1); assertNotNull(people); assertEquals(1, people.size()); assertEquals(l.get(0), people.get(0)); } public void testFetchLimitLongAutoID() { if(supportsAutoincrement()) { List<PersonLongAutoID> people = queryPersonLongAutoIDOrderBy("id", 0, false).fetch(1); assertNotNull(people); assertEquals(1, people.size()); assertEquals(LongAutoID_TESLA, people.get(0)); }else { try { List<PersonLongAutoID> people = queryPersonLongAutoIDOrderBy("id", 0, false).fetch(1); }catch(SienaRestrictedApiException ex){ return; } fail(); } } public void testFetchLimitLongManualID() { List<PersonLongManualID> people = queryPersonLongManualIDOrderBy("id", 0, false).fetch(1); assertNotNull(people); assertEquals(1, people.size()); assertEquals(LongManualID_TESLA, people.get(0)); } public void testFetchLimitStringID() { List<PersonStringID> people = queryPersonStringIDOrderBy("id", StringID_CURIE, false).fetch(1); assertNotNull(people); assertEquals(1, people.size()); assertEquals(StringID_CURIE, people.get(0)); } /* @Deprecated public void testCountLimit() { assertEquals(1, pm.createQuery(PersonUUID.class).filter("n<", 3).count(1)); } */ public void testFetchLimitReal() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+i, StringID_CURIE); pm.insert(discs[i]); } List<DiscoveryStringId> res = pm.createQuery(DiscoveryStringId.class).order("name").fetch(3); assertNotNull(res); assertEquals(3, res.size()); assertEquals(discs[0], res.get(0)); assertEquals(discs[1], res.get(1)); assertEquals(discs[2], res.get(2)); } public void testFetchLimitOffsetReal() { DiscoveryStringId[] discs = new DiscoveryStringId[10]; for(int i=0; i<10; i++){ discs[i] = new DiscoveryStringId("Disc_"+i, StringID_CURIE); pm.insert(discs[i]); } List<DiscoveryStringId> res = pm.createQuery(DiscoveryStringId.class).order("name").fetch(3, 5); assertNotNull(res); assertEquals(3, res.size()); assertEquals(discs[5], res.get(0)); assertEquals(discs[6], res.get(1)); assertEquals(discs[7], res.get(2)); } public void testFetchLimitOffset() { Query<PersonUUID> query = queryPersonUUIDOrderBy("n", 0, false); query.fetch(1); List<PersonUUID> people = query.fetch(2, 1); assertNotNull(people); assertEquals(2, people.size()); assertEquals(UUID_CURIE, people.get(0)); assertEquals(UUID_EINSTEIN, people.get(1)); } public void testOrderLongAutoId() { if(supportsAutoincrement()){ List<PersonLongAutoID> people = queryPersonLongAutoIDOrderBy("id", "", false).fetch(); assertNotNull(people); assertEquals(3, people.size()); PersonLongAutoID[] array = new PersonLongAutoID[] { LongAutoID_TESLA, LongAutoID_CURIE, LongAutoID_EINSTEIN }; int i = 0; for (PersonLongAutoID person : people) { assertEquals(array[i], person); i++; } }else { try{ List<PersonLongAutoID> people = queryPersonLongAutoIDOrderBy("id", "", false).fetch(); }catch(SienaRestrictedApiException ex) { return; } fail(); } } public void testOrderLongManualId() { List<PersonLongManualID> people = queryPersonLongManualIDOrderBy("id", "", false).fetch(); assertNotNull(people); assertEquals(3, people.size()); PersonLongManualID[] array = new PersonLongManualID[] { LongManualID_TESLA, LongManualID_CURIE, LongManualID_EINSTEIN }; int i = 0; for (PersonLongManualID person : people) { assertEquals(array[i], person); i++; } } public void testOrderStringId() { List<PersonStringID> people = queryPersonStringIDOrderBy("id", "", false).fetch(); assertNotNull(people); assertEquals(3, people.size()); PersonStringID[] array = new PersonStringID[] { StringID_CURIE, StringID_EINSTEIN, StringID_TESLA }; int i = 0; for (PersonStringID person : people) { assertEquals(array[i], person); i++; } } public void testFetchLotsOfEntitiesStatefulMixed(){ DiscoveryStringId[] discs = new DiscoveryStringId[150]; for(int i=0; i<150; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%03d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).stateful().order("name"); List<DiscoveryStringId> res = query.paginate(50).fetch(); assertEquals(50, res.size()); for(int i=0; i<50; i++){ assertEquals(discs[i], res.get(i)); } res = query.fetch(50); assertEquals(50, res.size()); for(int i=0; i<50; i++){ assertEquals(discs[i], res.get(i)); } res = query.nextPage().fetch(); assertEquals(50, res.size()); for(int i=0; i<50; i++){ assertEquals(discs[i+50], res.get(i)); } res = query.fetch(50); assertEquals(50, res.size()); for(int i=0; i<50; i++){ assertEquals(discs[i+50], res.get(i)); } } public void testFetchLotsOfEntitiesStatefulMixed2(){ DiscoveryStringId[] discs = new DiscoveryStringId[150]; for(int i=0; i<150; i++){ discs[i] = new DiscoveryStringId("Disc_"+String.format("%03d", i), StringID_CURIE); } pm.insert((Object[])discs); Query<DiscoveryStringId> query = pm.createQuery(DiscoveryStringId.class).stateful().order("name"); List<DiscoveryStringId> res = query.fetch(50); assertEquals(50, res.size()); for(int i=0; i<50; i++){ assertEquals(discs[i], res.get(i)); } res = query.paginate(50).fetch(50); assertEquals(50, res.size()); for(int i=0; i<50; i++){ assertEquals(discs[i+50], res.get(i)); } res = query.nextPage().fetch(); assertEquals(50, res.size()); for(int i=0; i<50; i++){ assertEquals(discs[i+100], res.get(i)); } res = query.fetch(50); assertEquals(50, res.size()); for(int i=0; i<50; i++){ assertEquals(discs[i+100], res.get(i)); } } }