public void testSeparateSessions() { ExtObjectContainer oc1 = openNewSession(); ExtObjectContainer oc2 = openNewSession(); try { ObjectSet os1 = oc1.query(Item.class); ObjectSet os2 = oc2.query(Item.class); deleteObjectSet(oc1, os1); assertOccurrences(oc1, Atom.class, 0); assertOccurrences(oc2, Atom.class, 1); deleteObjectSet(oc2, os2); assertOccurrences(oc1, Atom.class, 0); assertOccurrences(oc2, Atom.class, 0); oc1.rollback(); assertOccurrences(oc1, Atom.class, 1); assertOccurrences(oc2, Atom.class, 0); oc1.commit(); assertOccurrences(oc1, Atom.class, 1); assertOccurrences(oc2, Atom.class, 0); deleteAll(oc2, Item.class); oc2.commit(); assertOccurrences(oc1, Atom.class, 0); assertOccurrences(oc2, Atom.class, 0); } finally { oc1.close(); oc2.close(); } }
public void conc(ExtObjectContainer oc) { Query q = oc.query(); q.constrain(QueryForUnknownFieldTestCase.class); q.descend("_name").constrain("name"); Assert.areEqual(1, q.execute().size()); q = oc.query(); q.constrain(QueryForUnknownFieldTestCase.class); q.descend("name").constrain("name"); Assert.areEqual(0, q.execute().size()); }
public void conc(ExtObjectContainer oc) { oc.queryByExample((new QueryNonExistantTestCase(true))); assertOccurrences(oc, QueryNonExistantTestCase.class, 0); Query q = oc.query(); q.constrain(new QueryNonExistantTestCase(true)); Assert.areEqual(0, q.execute().size()); }
public void concRead(ExtObjectContainer oc) { for (int i = 0; i < COUNT; i++) { Query q = oc.query(); q.constrain(Atom.class); q.descend("name").constrain("ibi" + i); ObjectSet objectSet = q.execute(); Assert.areEqual(1, objectSet.size()); Atom child = (Atom) objectSet.next(); q = oc.query(); q.constrain(IndexedByIdentityTestCase.class); q.descend("atom").constrain(child).identity(); objectSet = q.execute(); Assert.areEqual(1, objectSet.size()); IndexedByIdentityTestCase ibi = (IndexedByIdentityTestCase) objectSet.next(); Assert.areSame(child, ibi.atom); } }
public void concUpdateSameObject(ExtObjectContainer oc, int seq) throws Exception { Query query = oc.query(); query.descend("_s").constrain(testString + COUNT / 2); ObjectSet result = query.execute(); Assert.areEqual(1, result.size()); SimpleObject o = (SimpleObject) result.next(); o.setI(COUNT + seq); oc.store(o); }
public void checkUpdateSameObject(ExtObjectContainer oc) throws Exception { Query query = oc.query(); query.descend("_s").constrain(testString + COUNT / 2); ObjectSet result = query.execute(); Assert.areEqual(1, result.size()); SimpleObject o = (SimpleObject) result.next(); int i = o.getI(); Assert.isTrue(COUNT <= i && i < COUNT + threadCount()); }
public void concUpdate(ExtObjectContainer oc, int seq) throws Exception { Query q = oc.query(); q.constrain(IndexedByIdentityTestCase.class); ObjectSet os = q.execute(); Assert.areEqual(COUNT, os.size()); while (os.hasNext()) { IndexedByIdentityTestCase idi = (IndexedByIdentityTestCase) os.next(); idi.atom.name = "updated" + seq; oc.store(idi); Thread.sleep(100); } }
public void concUpdateDifferentObject(ExtObjectContainer oc, int seq) throws Exception { Query query = oc.query(); query .descend("_s") .constrain(testString + seq) .and(query.descend("_i").constrain(new Integer(seq))); ObjectSet result = query.execute(); Assert.areEqual(1, result.size()); SimpleObject o = (SimpleObject) result.next(); o.setI(seq + COUNT); oc.store(o); }
public void testDelete() { ExtObjectContainer oc = fixture().db(); initGenericObjects(); ReflectClass rc = getReflectClass(oc, PERSON_CLASSNAME); Assert.isNotNull(rc); Query q = oc.query(); q.constrain(rc); ObjectSet results = q.execute(); while (results.hasNext()) { Object o = results.next(); oc.delete(o); } oc.commit(); // now query to make sure there are none left q = oc.query(); q.constrain(rc); q.descend("surname").constrain("John"); results = q.execute(); Assert.isTrue(results.size() == 0); }
public void testUpdate() { ExtObjectContainer oc = fixture().db(); initGenericObjects(); // Db4oUtil.dump(oc); ReflectClass rc = getReflectClass(oc, PERSON_CLASSNAME); Assert.isNotNull(rc); Query q = oc.query(); q.constrain(rc); ObjectSet results = q.execute(); // Db4oUtil.dumpResults(oc, results); Assert.isTrue(results.size() == 1); }
public void checkUpdateDifferentObject(ExtObjectContainer oc) throws Exception { ObjectSet result = oc.query(SimpleObject.class); Assert.areEqual(COUNT, result.size()); while (result.hasNext()) { SimpleObject o = (SimpleObject) result.next(); int i = o.getI(); if (i >= COUNT) { i -= COUNT; } Assert.areEqual(testString + i, o.getS()); } }
public void testCreate() throws Exception { initGenericObjects(); // fixture().reopen(); ExtObjectContainer oc = fixture().db(); // now check to see if person was saved ReflectClass rc = getReflectClass(oc, PERSON_CLASSNAME); Assert.isNotNull(rc); Query q = oc.query(); q.constrain(rc); ObjectSet results = q.execute(); Assert.isTrue(results.size() == 1); // Db4oUtil.dumpResults(fixture().db(), results); }
public void checkUpdate(ExtObjectContainer oc) { Query q = oc.query(); q.constrain(IndexedByIdentityTestCase.class); ObjectSet os = q.execute(); Assert.areEqual(COUNT, os.size()); String expected = null; while (os.hasNext()) { IndexedByIdentityTestCase idi = (IndexedByIdentityTestCase) os.next(); if (expected == null) { expected = idi.atom.name; Assert.isTrue(expected.startsWith("updated")); Assert.isTrue(expected.length() > "updated".length()); } Assert.areEqual(expected, idi.atom.name); } }
public void concDelete(ExtObjectContainer oc) throws Exception { int size = countOccurences(oc, SimpleObject.class); if (size == 0) { // already deleted return; } Assert.areEqual(ELEMENT_COUNT, size); ObjectSet os = oc.query(ArrayItem.class); if (os.size() == 0) { // already deteled return; } Assert.areEqual(1, os.size()); ArrayItem item = (ArrayItem) os.next(); // waits for other threads Thread.sleep(500); oc.delete(item); oc.commit(); assertOccurrences(oc, SimpleObject.class, 0); }
public void conc1(ExtObjectContainer oc) throws Exception { ObjectSet os = oc.query(Item.class); Thread.sleep(500); deleteObjectSet(oc, os); oc.rollback(); }
public void conc2(ExtObjectContainer oc) throws Exception { ObjectSet os = oc.query(Item.class); Thread.sleep(500); deleteObjectSet(oc, os); assertOccurrences(oc, Atom.class, 0); }
public void concQueryCaseInsenstive(ExtObjectContainer oc) { Query q = oc.query(); q.constrain(CaseInsensitiveTestCase.class); q.constrain(new CaseInsensitiveEvaluation("helloworld")); Assert.areEqual(1, q.execute().size()); }
private void tQueryInts(ExtObjectContainer oc, int expectedZeroSize) { Query q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(0)); int zeroSize = q.execute().size(); Assert.areEqual(expectedZeroSize, zeroSize); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(4)).greater().equal(); tExpectInts(q, new int[] {5, 7}); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(4)).greater(); tExpectInts(q, new int[] {5, 7}); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(3)).greater(); tExpectInts(q, new int[] {5, 7}); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(3)).greater().equal(); tExpectInts(q, new int[] {3, 3, 5, 7}); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(2)).greater().equal(); tExpectInts(q, new int[] {2, 3, 3, 5, 7}); q = oc.query(); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(2)).greater(); tExpectInts(q, new int[] {3, 3, 5, 7}); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(1)).greater().equal(); tExpectInts(q, new int[] {1, 2, 3, 3, 5, 7}); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(1)).greater(); tExpectInts(q, new int[] {2, 3, 3, 5, 7}); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(4)).smaller(); tExpectInts(q, new int[] {1, 2, 3, 3}, zeroSize); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(4)).smaller().equal(); tExpectInts(q, new int[] {1, 2, 3, 3}, zeroSize); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(3)).smaller(); tExpectInts(q, new int[] {1, 2}, zeroSize); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(3)).smaller().equal(); tExpectInts(q, new int[] {1, 2, 3, 3}, zeroSize); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(2)).smaller().equal(); tExpectInts(q, new int[] {1, 2}, zeroSize); q = oc.query(); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(2)).smaller(); tExpectInts(q, new int[] {1}, zeroSize); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(1)).smaller().equal(); tExpectInts(q, new int[] {1}, zeroSize); q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_int").constrain(new Integer(1)).smaller(); tExpectInts(q, new int[] {}, zeroSize); }
private ObjectSet query(ExtObjectContainer oc, String n) { Query q = oc.query(); q.constrain(CreateIndexFor.class); q.descend("i_name").constrain(n); return q.execute(); }