Revision: 5621
http://datanucleus.svn.sourceforge.net/datanucleus/?rev=5621&view=rev
Author: andy_jefferson
Date: 2009-03-18 12:05:26 +0000 (Wed, 18 Mar 2009)
Log Message:
-----------
Added cleanup on many tests
Modified Paths:
--------------
test/accessplatform/trunk/test.jdo.datastore/src/test/org/datanucleus/tests/JDOQLResultTest.java
Modified: test/accessplatform/trunk/test.jdo.datastore/src/test/org/datanucleus/tests/JDOQLResultTest.java
===================================================================
--- test/accessplatform/trunk/test.jdo.datastore/src/test/org/datanucleus/tests/JDOQLResultTest.java 2009-03-18 11:54:57 UTC (rev 5620)
+++ test/accessplatform/trunk/test.jdo.datastore/src/test/org/datanucleus/tests/JDOQLResultTest.java 2009-03-18 12:05:26 UTC (rev 5621)
@@ -1218,148 +1218,155 @@
*/
public void testOrdering()
{
- PersistenceManager pm = pmf.getPersistenceManager();
- Transaction tx = pm.currentTransaction();
try
{
- // Try some ordering using basic fields
- tx.begin();
- BasicTypeHolder basics[] = new BasicTypeHolder[5];
- for (int i=0; i<basics.length; i++)
+ PersistenceManager pm = pmf.getPersistenceManager();
+ Transaction tx = pm.currentTransaction();
+ try
{
- basics[i] = new BasicTypeHolder();
- basics[i].setLongField(i+1);
- basics[i].setShortField((short) (i+11));
- basics[i].setIntField(20040101);
- basics[i].setBooleanObjectField(new Boolean(i%2==0));
- basics[i].setCharField('0');
- }
- pm.makePersistentAll(basics);
+ // Try some ordering using basic fields
+ tx.begin();
+ BasicTypeHolder basics[] = new BasicTypeHolder[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ basics[i] = new BasicTypeHolder();
+ basics[i].setLongField(i+1);
+ basics[i].setShortField((short) (i+11));
+ basics[i].setIntField(20040101);
+ basics[i].setBooleanObjectField(new Boolean(i%2==0));
+ basics[i].setCharField('0');
+ }
+ pm.makePersistentAll(basics);
- StringHolder strings[] = new StringHolder[5];
- for (int i=0; i<strings.length; i++)
- {
- strings[i] = new StringHolder();
- }
- strings[0].setNormalString("Aaa");
- strings[1].setNormalString("bBB");
- strings[2].setNormalString("ddd");
- strings[3].setNormalString("Ccc");
- strings[4].setNormalString("eEe");
- pm.makePersistentAll(strings);
- pm.flush();
+ StringHolder strings[] = new StringHolder[5];
+ for (int i=0; i<strings.length; i++)
+ {
+ strings[i] = new StringHolder();
+ }
+ strings[0].setNormalString("Aaa");
+ strings[1].setNormalString("bBB");
+ strings[2].setNormalString("ddd");
+ strings[3].setNormalString("Ccc");
+ strings[4].setNormalString("eEe");
+ pm.makePersistentAll(strings);
+ pm.flush();
- Query q = pm.newQuery(BasicTypeHolder.class);
- q.setOrdering("longField ascending");
- List l = (List) q.execute();
- Assert.assertEquals(5, l.size());
+ Query q = pm.newQuery(BasicTypeHolder.class);
+ q.setOrdering("longField ascending");
+ List l = (List) q.execute();
+ Assert.assertEquals(5, l.size());
- q = pm.newQuery(BasicTypeHolder.class);
- q.setOrdering("longField - shortField ascending");
- l = (List) q.execute();
- Assert.assertEquals(5, l.size());
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setOrdering("longField - shortField ascending");
+ l = (List) q.execute();
+ Assert.assertEquals(5, l.size());
- q = pm.newQuery(BasicTypeHolder.class);
- q.setOrdering("(longField - shortField) ascending");
- l = (List) q.execute();
- Assert.assertEquals(5, l.size());
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setOrdering("(longField - shortField) ascending");
+ l = (List) q.execute();
+ Assert.assertEquals(5, l.size());
- q = pm.newQuery(BasicTypeHolder.class);
- q.setOrdering("Math.abs(-longField) ascending");
- l = (List) q.execute();
- Assert.assertEquals(5, l.size());
- Assert.assertEquals(1, ((BasicTypeHolder)l.get(0)).getLongField());
- Assert.assertEquals(2, ((BasicTypeHolder)l.get(1)).getLongField());
- Assert.assertEquals(3, ((BasicTypeHolder)l.get(2)).getLongField());
- Assert.assertEquals(4, ((BasicTypeHolder)l.get(3)).getLongField());
- Assert.assertEquals(5, ((BasicTypeHolder)l.get(4)).getLongField());
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setOrdering("Math.abs(-longField) ascending");
+ l = (List) q.execute();
+ Assert.assertEquals(5, l.size());
+ Assert.assertEquals(1, ((BasicTypeHolder)l.get(0)).getLongField());
+ Assert.assertEquals(2, ((BasicTypeHolder)l.get(1)).getLongField());
+ Assert.assertEquals(3, ((BasicTypeHolder)l.get(2)).getLongField());
+ Assert.assertEquals(4, ((BasicTypeHolder)l.get(3)).getLongField());
+ Assert.assertEquals(5, ((BasicTypeHolder)l.get(4)).getLongField());
- // Query our 5 StringHolders and order by uppercase(normalString)
- q = pm.newQuery(StringHolder.class);
- q.setOrdering("normalString.toUpperCase() ascending");
- l = (List) q.execute();
- assertEquals("The number of returned elements is incorrect", 5, l.size());
- assertEquals("The first Primitive is incorrectly ordered",
- "Aaa", ((StringHolder)l.get(0)).getNormalString());
- assertEquals("The second Primitive is incorrectly ordered",
- "bBB", ((StringHolder)l.get(1)).getNormalString());
- assertEquals("The third Primitive is incorrectly ordered",
- "Ccc", ((StringHolder)l.get(2)).getNormalString());
- assertEquals("The fourth Primitive is incorrectly ordered",
- "ddd", ((StringHolder)l.get(3)).getNormalString());
- assertEquals("The fifth Primitive is incorrectly ordered",
- "eEe", ((StringHolder)l.get(4)).getNormalString());
-
- // Composite ordering
- q = pm.newQuery(BasicTypeHolder.class);
- q.setOrdering("(longField - shortField) ascending , this.longField ascending");
- l = (List) q.execute();
- Assert.assertEquals(5, l.size());
+ // Query our 5 StringHolders and order by uppercase(normalString)
+ q = pm.newQuery(StringHolder.class);
+ q.setOrdering("normalString.toUpperCase() ascending");
+ l = (List) q.execute();
+ assertEquals("The number of returned elements is incorrect", 5, l.size());
+ assertEquals("The first Primitive is incorrectly ordered",
+ "Aaa", ((StringHolder)l.get(0)).getNormalString());
+ assertEquals("The second Primitive is incorrectly ordered",
+ "bBB", ((StringHolder)l.get(1)).getNormalString());
+ assertEquals("The third Primitive is incorrectly ordered",
+ "Ccc", ((StringHolder)l.get(2)).getNormalString());
+ assertEquals("The fourth Primitive is incorrectly ordered",
+ "ddd", ((StringHolder)l.get(3)).getNormalString());
+ assertEquals("The fifth Primitive is incorrectly ordered",
+ "eEe", ((StringHolder)l.get(4)).getNormalString());
- q = pm.newQuery(BasicTypeHolder.class);
- q.setOrdering("this.booleanObjField ascending");
- l = (List) q.execute();
- Assert.assertEquals(5, l.size());
+ // Composite ordering
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setOrdering("(longField - shortField) ascending , this.longField ascending");
+ l = (List) q.execute();
+ Assert.assertEquals(5, l.size());
- tx.rollback(); // Don't actually create the instances
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setOrdering("this.booleanObjField ascending");
+ l = (List) q.execute();
+ Assert.assertEquals(5, l.size());
- // Try some ordering using self-referencing relations
- tx.begin();
- Person p1 = new Person(1, "Bart", "Simpson", "bart@...");
- Person p2 = new Person(2, "Homer", "Simpson", "homer@...");
- Person p3 = new Person(3, "Lisa", "Simpson", "lisa@...");
- Person p4 = new Person(4, "Marge", "Simpson", "marge@...");
- Person p5 = new Person(5, "Maggie", "Simpson", "maggie@...");
- Person p6 = new Person(6, "Moe", "Bartender", "moe@...");
- Person p7 = new Person(7, "Deputy", "Dawg", "deputy@...");
- Person p8 = new Person(8, "Road", "Runner", "maggie@...");
- Person p9 = new Person(9, "Donald", "Duck", "moe@...");
- p4.setBestFriend(p2);
- p5.setBestFriend(p3);
- p6.setBestFriend(p1);
- pm.makePersistentAll(new Object[] { p4, p5, p6, p7, p8, p9});
+ tx.rollback(); // Don't actually create the instances
- q = pm.newQuery(Person.class);
- q.setOrdering("bestFriend.firstName ascending");
- l = (List) q.execute();
- Assert.assertEquals(9, l.size()); // 9 Person objects so 9 results - 6 nulls, and then 3 results
- Iterator it = l.iterator();
- Person p = (Person)it.next();
- assertTrue(p.getBestFriend() == null);
- p = (Person)it.next();
- assertTrue(p.getBestFriend() == null);
- p = (Person)it.next();
- assertTrue(p.getBestFriend() == null);
- p = (Person)it.next();
- assertTrue(p.getBestFriend() == null);
- p = (Person)it.next();
- assertTrue(p.getBestFriend() == null);
- p = (Person)it.next();
- assertTrue(p.getBestFriend() == null);
- p = (Person)it.next();
- assertTrue(p.getBestFriend().getFirstName().equals("Bart"));
- assertTrue(p.getFirstName().equals("Moe"));
- p = (Person)it.next();
- assertTrue(p.getBestFriend().getFirstName().equals("Homer"));
- assertTrue(p.getFirstName().equals("Marge"));
- p = (Person)it.next();
- assertTrue(p.getBestFriend().getFirstName().equals("Lisa"));
- assertTrue(p.getFirstName().equals("Maggie"));
+ // Try some ordering using self-referencing relations
+ tx.begin();
+ Person p1 = new Person(1, "Bart", "Simpson", "bart@...");
+ Person p2 = new Person(2, "Homer", "Simpson", "homer@...");
+ Person p3 = new Person(3, "Lisa", "Simpson", "lisa@...");
+ Person p4 = new Person(4, "Marge", "Simpson", "marge@...");
+ Person p5 = new Person(5, "Maggie", "Simpson", "maggie@...");
+ Person p6 = new Person(6, "Moe", "Bartender", "moe@...");
+ Person p7 = new Person(7, "Deputy", "Dawg", "deputy@...");
+ Person p8 = new Person(8, "Road", "Runner", "maggie@...");
+ Person p9 = new Person(9, "Donald", "Duck", "moe@...");
+ p4.setBestFriend(p2);
+ p5.setBestFriend(p3);
+ p6.setBestFriend(p1);
+ pm.makePersistentAll(new Object[] { p4, p5, p6, p7, p8, p9});
- tx.rollback(); // Don't actually create the instances
+ q = pm.newQuery(Person.class);
+ q.setOrdering("bestFriend.firstName ascending");
+ l = (List) q.execute();
+ Assert.assertEquals(9, l.size()); // 9 Person objects so 9 results - 6 nulls, and then 3 results
+ Iterator it = l.iterator();
+ Person p = (Person)it.next();
+ assertTrue(p.getBestFriend() == null);
+ p = (Person)it.next();
+ assertTrue(p.getBestFriend() == null);
+ p = (Person)it.next();
+ assertTrue(p.getBestFriend() == null);
+ p = (Person)it.next();
+ assertTrue(p.getBestFriend() == null);
+ p = (Person)it.next();
+ assertTrue(p.getBestFriend() == null);
+ p = (Person)it.next();
+ assertTrue(p.getBestFriend() == null);
+ p = (Person)it.next();
+ assertTrue(p.getBestFriend().getFirstName().equals("Bart"));
+ assertTrue(p.getFirstName().equals("Moe"));
+ p = (Person)it.next();
+ assertTrue(p.getBestFriend().getFirstName().equals("Homer"));
+ assertTrue(p.getFirstName().equals("Marge"));
+ p = (Person)it.next();
+ assertTrue(p.getBestFriend().getFirstName().equals("Lisa"));
+ assertTrue(p.getFirstName().equals("Maggie"));
+
+ tx.rollback(); // Don't actually create the instances
+ }
+ catch (Exception e)
+ {
+ LOG.error("Exception in query", e);
+ fail("Exception thrown by query " + e.getMessage());
+ }
+ finally
+ {
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+ pm.close();
+ }
}
- catch (Exception e)
- {
- LOG.error("Exception in query", e);
- fail("Exception thrown by query " + e.getMessage());
- }
finally
{
- if (tx.isActive())
- {
- tx.rollback();
- }
- pm.close();
+ clean(BasicTypeHolder.class);
}
}
@@ -1417,56 +1424,60 @@
*/
public void testSetResultDistinct()
{
- PersistenceManager pm = pmf.getPersistenceManager();
- Transaction tx = pm.currentTransaction();
try
{
- // Populate some data
- tx.begin();
- BasicTypeHolder basics[] = new BasicTypeHolder[5];
- for( int i=0; i<basics.length; i++)
+ PersistenceManager pm = pmf.getPersistenceManager();
+ Transaction tx = pm.currentTransaction();
+ try
{
- basics[i] = new BasicTypeHolder();
- basics[i].setLongField(i+1);
- basics[i].setShortField((short) (i+11));
- basics[i].setCharField('0');
- }
- pm.makePersistentAll(basics);
- tx.commit();
+ // Populate some data
+ tx.begin();
+ BasicTypeHolder basics[] = new BasicTypeHolder[5];
+ for( int i=0; i<basics.length; i++)
+ {
+ basics[i] = new BasicTypeHolder();
+ basics[i].setLongField(i+1);
+ basics[i].setShortField((short) (i+11));
+ basics[i].setCharField('0');
+ }
+ pm.makePersistentAll(basics);
+ tx.commit();
- // Query the data
- tx.begin();
+ // Query the data
+ tx.begin();
- Query q = pm.newQuery(BasicTypeHolder.class);
- q.setFilter("longField == 2 || longField == 3");
- q.setResult("distinct this.longField");
- q.setOrdering("this.longField ascending");
- Collection c = (Collection) q.execute();
- Assert.assertEquals(2,c.size());
-
- try
- {
- Iterator it = c.iterator();
- assertEquals(2,((Long)it.next()).longValue());
- assertEquals(3,((Long)it.next()).longValue());
+ Query q = pm.newQuery(BasicTypeHolder.class);
+ q.setFilter("longField == 2 || longField == 3");
+ q.setResult("distinct this.longField");
+ q.setOrdering("this.longField ascending");
+ Collection c = (Collection) q.execute();
+ Assert.assertEquals(2,c.size());
+
+ try
+ {
+ Iterator it = c.iterator();
+ assertEquals(2,((Long)it.next()).longValue());
+ assertEquals(3,((Long)it.next()).longValue());
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ fail(e.getMessage());
+ }
+
+ tx.commit();
}
- catch (Exception e)
+ finally
{
- e.printStackTrace();
- fail(e.getMessage());
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+ pm.close();
}
-
- tx.commit();
}
finally
{
- if (tx.isActive())
- {
- tx.rollback();
- }
- pm.close();
-
- // Clean out our data
clean(BasicTypeHolder.class);
}
}
@@ -1476,111 +1487,116 @@
*/
public void testSetResult()
{
- PersistenceManager pm = pmf.getPersistenceManager();
- Transaction tx = pm.currentTransaction();
try
{
- tx.begin();
- BasicTypeHolder basics[] = new BasicTypeHolder[5];
- for (int i=0; i<basics.length; i++)
+ PersistenceManager pm = pmf.getPersistenceManager();
+ Transaction tx = pm.currentTransaction();
+ try
{
- basics[i] = new BasicTypeHolder();
- basics[i].setLongField(i+1);
- basics[i].setShortField((short) (i+11));
- basics[i].setCharField('0');
- }
- pm.makePersistentAll(basics);
- tx.commit();
- Object ids[] = new Object[5];
- for (int i=0; i<basics.length; i++)
- {
- ids[i] = pm.getObjectId(basics[i]);
- }
+ tx.begin();
+ BasicTypeHolder basics[] = new BasicTypeHolder[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ basics[i] = new BasicTypeHolder();
+ basics[i].setLongField(i+1);
+ basics[i].setShortField((short) (i+11));
+ basics[i].setCharField('0');
+ }
+ pm.makePersistentAll(basics);
+ tx.commit();
+ Object ids[] = new Object[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ ids[i] = pm.getObjectId(basics[i]);
+ }
- tx.begin();
- Query q = pm.newQuery(BasicTypeHolder.class);
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("this.longField");
- q.setOrdering("this.longField ascending");
- Collection c = (Collection) q.execute();
- Assert.assertEquals(2,c.size());
-
- try
- {
+ tx.begin();
+ Query q = pm.newQuery(BasicTypeHolder.class);
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("this.longField");
+ q.setOrdering("this.longField ascending");
+ Collection c = (Collection) q.execute();
+ Assert.assertEquals(2,c.size());
+
+ try
+ {
+ Iterator it = c.iterator();
+ assertEquals(2,((Long)it.next()).longValue());
+ assertEquals(3,((Long)it.next()).longValue());
+ }
+ catch( Exception e )
+ {
+ fail(e.getMessage());
+ }
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setResult("this.longField, this.shortField");
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setOrdering("this.longField ascending");
+ c = (Collection) q.execute();
+ Assert.assertEquals(2,c.size());
+
+ try
+ {
+ Iterator it = c.iterator();
+ Object[] object = (Object[])it.next();
+ assertEquals(2,((Long)object[0]).longValue());
+ assertEquals(12,((Short)object[1]).shortValue());
+ object = (Object[])it.next();
+ assertEquals(3,((Long)object[0]).longValue());
+ assertEquals(13,((Short)object[1]).shortValue());
+ }
+ catch( Exception e )
+ {
+ fail(e.getMessage());
+ }
+
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setResult("this.longField, this.shortField, this");
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setOrdering("this.longField ascending");
+ c = (Collection) q.execute();
+
+ try
+ {
+ Iterator it = c.iterator();
+ Object[] object = (Object[])it.next();
+ assertEquals(2,((Long)object[0]).longValue());
+ assertEquals(12,((Short)object[1]).shortValue());
+ assertEquals(ids[1],JDOHelper.getObjectId(object[2]));
+ object = (Object[])it.next();
+ assertEquals(3,((Long)object[0]).longValue());
+ assertEquals(13,((Short)object[1]).shortValue());
+ assertEquals(ids[2],JDOHelper.getObjectId(object[2]));
+ }
+ catch( Exception e )
+ {
+ fail(e.getMessage());
+ }
+
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setFilter("this.longField == 1 || this.longField == 2");
+ q.setResult("JDOHelper.getObjectId(this)");
+ c = (Collection) q.execute();
+ Assert.assertEquals(2,c.size());
+
Iterator it = c.iterator();
- assertEquals(2,((Long)it.next()).longValue());
- assertEquals(3,((Long)it.next()).longValue());
- }
- catch( Exception e )
- {
- fail(e.getMessage());
- }
- q = pm.newQuery(BasicTypeHolder.class);
- q.setResult("this.longField, this.shortField");
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setOrdering("this.longField ascending");
- c = (Collection) q.execute();
- Assert.assertEquals(2,c.size());
-
- try
- {
- Iterator it = c.iterator();
- Object[] object = (Object[])it.next();
- assertEquals(2,((Long)object[0]).longValue());
- assertEquals(12,((Short)object[1]).shortValue());
- object = (Object[])it.next();
- assertEquals(3,((Long)object[0]).longValue());
- assertEquals(13,((Short)object[1]).shortValue());
- }
- catch( Exception e )
- {
- fail(e.getMessage());
- }
+ assertEquals(ids[0],it.next());
+ assertEquals(ids[1],it.next());
- q = pm.newQuery(BasicTypeHolder.class);
- q.setResult("this.longField, this.shortField, this");
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setOrdering("this.longField ascending");
- c = (Collection) q.execute();
+ tx.commit();
- try
- {
- Iterator it = c.iterator();
- Object[] object = (Object[])it.next();
- assertEquals(2,((Long)object[0]).longValue());
- assertEquals(12,((Short)object[1]).shortValue());
- assertEquals(ids[1],JDOHelper.getObjectId(object[2]));
- object = (Object[])it.next();
- assertEquals(3,((Long)object[0]).longValue());
- assertEquals(13,((Short)object[1]).shortValue());
- assertEquals(ids[2],JDOHelper.getObjectId(object[2]));
}
- catch( Exception e )
+ finally
{
- fail(e.getMessage());
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+ pm.close();
}
-
- q = pm.newQuery(BasicTypeHolder.class);
- q.setFilter("this.longField == 1 || this.longField == 2");
- q.setResult("JDOHelper.getObjectId(this)");
- c = (Collection) q.execute();
- Assert.assertEquals(2,c.size());
-
- Iterator it = c.iterator();
- assertEquals(ids[0],it.next());
- assertEquals(ids[1],it.next());
-
- tx.commit();
-
}
finally
{
- if (tx.isActive())
- {
- tx.rollback();
- }
- pm.close();
-
// Clean out our data
clean(BasicTypeHolder.class);
}
@@ -1591,60 +1607,65 @@
*/
public void testCandidateCollection()
{
- PersistenceManager pm = pmf.getPersistenceManager();
- Transaction tx = pm.currentTransaction();
try
{
- tx.begin();
- BasicTypeHolder basics[] = new BasicTypeHolder[5];
- for( int i=0; i<basics.length; i++)
+ PersistenceManager pm = pmf.getPersistenceManager();
+ Transaction tx = pm.currentTransaction();
+ try
{
- basics[i] = new BasicTypeHolder();
- basics[i].setLongField(i+1);
- basics[i].setShortField((short) (i+11));
- basics[i].setCharField('0');
- }
- pm.makePersistentAll(basics);
+ tx.begin();
+ BasicTypeHolder basics[] = new BasicTypeHolder[5];
+ for( int i=0; i<basics.length; i++)
+ {
+ basics[i] = new BasicTypeHolder();
+ basics[i].setLongField(i+1);
+ basics[i].setShortField((short) (i+11));
+ basics[i].setCharField('0');
+ }
+ pm.makePersistentAll(basics);
- List candidates = new ArrayList();
- candidates.add(basics[0]);
- candidates.add(basics[1]);
- candidates.add(basics[2]);
- candidates.add(basics[3]);
- candidates.add(basics[4]);
+ List candidates = new ArrayList();
+ candidates.add(basics[0]);
+ candidates.add(basics[1]);
+ candidates.add(basics[2]);
+ candidates.add(basics[3]);
+ candidates.add(basics[4]);
- // Basic candidate test
- Query q = pm.newQuery(BasicTypeHolder.class);
- q.setCandidates(candidates);
- Collection c = (Collection) q.execute();
- assertEquals(5, c.size());
+ // Basic candidate test
+ Query q = pm.newQuery(BasicTypeHolder.class);
+ q.setCandidates(candidates);
+ Collection c = (Collection) q.execute();
+ assertEquals(5, c.size());
- // Add duplicate of one candidate (so should get dup in result)
- candidates.add(basics[4]);
- q.setCandidates(candidates);
- c = (Collection) q.execute();
- assertEquals(6, c.size());
+ // Add duplicate of one candidate (so should get dup in result)
+ candidates.add(basics[4]);
+ q.setCandidates(candidates);
+ c = (Collection) q.execute();
+ assertEquals(6, c.size());
- // Same thing but with result
- q.setResult("this");
- c = (Collection) q.execute();
- assertEquals(6, c.size());
+ // Same thing but with result
+ q.setResult("this");
+ c = (Collection) q.execute();
+ assertEquals(6, c.size());
- // Same thing but with distinct result so we eliminate the dup candidate
- q.setResult("distinct this");
- c = (Collection) q.execute();
- assertEquals(5, c.size());
+ // Same thing but with distinct result so we eliminate the dup candidate
+ q.setResult("distinct this");
+ c = (Collection) q.execute();
+ assertEquals(5, c.size());
- tx.commit();
+ tx.commit();
+ }
+ finally
+ {
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+ pm.close();
+ }
}
finally
{
- if (tx.isActive())
- {
- tx.rollback();
- }
- pm.close();
-
// Clean out our data
clean(BasicTypeHolder.class);
}
@@ -1655,47 +1676,52 @@
*/
public void testCandidateCollectionWithResultNotSameTypeAsCandidates()
{
- PersistenceManager pm = pmf.getPersistenceManager();
- Transaction tx = pm.currentTransaction();
try
{
- tx.begin();
- BasicTypeHolder basics[] = new BasicTypeHolder[5];
- for (int i=0; i<basics.length; i++)
+ PersistenceManager pm = pmf.getPersistenceManager();
+ Transaction tx = pm.currentTransaction();
+ try
{
- basics[i] = new BasicTypeHolder();
- basics[i].setLongField(i+1);
- basics[i].setShortField((short) (i+11));
- basics[i].setCharField('0');
- }
- pm.makePersistentAll(basics);
+ tx.begin();
+ BasicTypeHolder basics[] = new BasicTypeHolder[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ basics[i] = new BasicTypeHolder();
+ basics[i].setLongField(i+1);
+ basics[i].setShortField((short) (i+11));
+ basics[i].setCharField('0');
+ }
+ pm.makePersistentAll(basics);
- List candidates = new ArrayList();
- candidates.add(basics[0]);
- candidates.add(basics[1]);
- candidates.add(basics[2]);
- candidates.add(basics[3]);
- candidates.add(basics[4]);
- candidates.add(basics[4]);
+ List candidates = new ArrayList();
+ candidates.add(basics[0]);
+ candidates.add(basics[1]);
+ candidates.add(basics[2]);
+ candidates.add(basics[3]);
+ candidates.add(basics[4]);
+ candidates.add(basics[4]);
- // Duplicate candidates, but with different result type
- Query q = pm.newQuery(BasicTypeHolder.class);
- q.setCandidates(candidates);
- q.setResult("this, this");
- Collection c = (Collection) q.execute();
- // Not returning object of candidate type so ignore dups in candidates
- assertEquals(5, c.size());
+ // Duplicate candidates, but with different result type
+ Query q = pm.newQuery(BasicTypeHolder.class);
+ q.setCandidates(candidates);
+ q.setResult("this, this");
+ Collection c = (Collection) q.execute();
+ // Not returning object of candidate type so ignore dups in candidates
+ assertEquals(5, c.size());
- tx.commit();
+ tx.commit();
+ }
+ finally
+ {
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+ pm.close();
+ }
}
finally
{
- if (tx.isActive())
- {
- tx.rollback();
- }
- pm.close();
-
// Clean out our data
clean(BasicTypeHolder.class);
}
@@ -1703,66 +1729,73 @@
public void testSetIllegalAttributeInResult()
{
- PersistenceManager pm = pmf.getPersistenceManager();
- Transaction tx = pm.currentTransaction();
try
{
- tx.begin();
+ PersistenceManager pm = pmf.getPersistenceManager();
+ Transaction tx = pm.currentTransaction();
try
{
- Query q = pm.newQuery(BasicTypeHolder.class);
- q.setResult("this.longFieldQQ");
- q.execute();
- fail("Expected JDOUserException");
- }
- catch(JDOUserException ex)
- {
- //expected
- }
- try
- {
- Query q = pm.newQuery(BasicTypeHolder.class);
- q.setResult("qngFieldQQ");
- q.execute();
- fail("Expected JDOUserException");
- }
- catch(JDOUserException ex)
- {
- //expected
- }
+ tx.begin();
+ try
+ {
+ Query q = pm.newQuery(BasicTypeHolder.class);
+ q.setResult("this.longFieldQQ");
+ q.execute();
+ fail("Expected JDOUserException");
+ }
+ catch(JDOUserException ex)
+ {
+ //expected
+ }
+ try
+ {
+ Query q = pm.newQuery(BasicTypeHolder.class);
+ q.setResult("qngFieldQQ");
+ q.execute();
+ fail("Expected JDOUserException");
+ }
+ catch(JDOUserException ex)
+ {
+ //expected
+ }
- try
- {
- Query q = pm.newQuery(BasicTypeHolder.class);
- q.setResult("this.longFieldQQ");
- q.compile();
- fail("Expected JDOUserException");
- }
- catch(JDOUserException ex)
- {
- //expected
- }
+ try
+ {
+ Query q = pm.newQuery(BasicTypeHolder.class);
+ q.setResult("this.longFieldQQ");
+ q.compile();
+ fail("Expected JDOUserException");
+ }
+ catch(JDOUserException ex)
+ {
+ //expected
+ }
- try
- {
- Query q = pm.newQuery(BasicTypeHolder.class);
- q.setResult("qngFieldQQ");
- q.compile();
- fail("Expected JDOUserException");
+ try
+ {
+ Query q = pm.newQuery(BasicTypeHolder.class);
+ q.setResult("qngFieldQQ");
+ q.compile();
+ fail("Expected JDOUserException");
+ }
+ catch(JDOUserException ex)
+ {
+ //expected
+ }
+ tx.rollback();
}
- catch(JDOUserException ex)
+ finally
{
- //expected
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+ pm.close();
}
- tx.rollback();
}
finally
{
- if (tx.isActive())
- {
- tx.rollback();
- }
- pm.close();
+ clean(BasicTypeHolder.class);
}
}
@@ -1771,133 +1804,138 @@
*/
public void testSetResultParameter()
{
- PersistenceManager pm = pmf.getPersistenceManager();
- Transaction tx = pm.currentTransaction();
try
{
- tx.begin();
- BasicTypeHolder basics[] = new BasicTypeHolder[5];
- for (int i=0; i<basics.length; i++)
+ PersistenceManager pm = pmf.getPersistenceManager();
+ Transaction tx = pm.currentTransaction();
+ try
{
- basics[i] = new BasicTypeHolder();
- basics[i].setLongField(i+1);
- basics[i].setShortField((short) (i+11));
- basics[i].setCharField('0');
- }
- pm.makePersistentAll(basics);
- tx.commit();
- Object ids[] = new Object[5];
- for (int i=0; i<basics.length; i++)
- {
- ids[i] = pm.getObjectId(basics[i]);
- }
+ tx.begin();
+ BasicTypeHolder basics[] = new BasicTypeHolder[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ basics[i] = new BasicTypeHolder();
+ basics[i].setLongField(i+1);
+ basics[i].setShortField((short) (i+11));
+ basics[i].setCharField('0');
+ }
+ pm.makePersistentAll(basics);
+ tx.commit();
+ Object ids[] = new Object[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ ids[i] = pm.getObjectId(basics[i]);
+ }
- tx.begin();
- //obtain a primite persistent instance
- Query q = pm.newQuery(BasicTypeHolder.class);
- q.setFilter("this.longField == 1 || this.longField == 2");
- q.setResult("this");
- Collection c = (Collection) q.execute();
+ tx.begin();
+ //obtain a primite persistent instance
+ Query q = pm.newQuery(BasicTypeHolder.class);
+ q.setFilter("this.longField == 1 || this.longField == 2");
+ q.setResult("this");
+ Collection c = (Collection) q.execute();
- Iterator it = c.iterator();
- BasicTypeHolder p = (BasicTypeHolder) it.next();
-
- //test return String
- q = pm.newQuery(BasicTypeHolder.class);
- q.setFilter("this.longField == 1 || this.longField == 2");
- q.setResult("s");
- q.declareParameters("String s");
- c = (Collection) q.execute("result");
- Assert.assertEquals(2,c.size());
-
- it = c.iterator();
- assertEquals("result",it.next());
- assertEquals("result",it.next());
+ Iterator it = c.iterator();
+ BasicTypeHolder p = (BasicTypeHolder) it.next();
- //test return Long
- q = pm.newQuery(BasicTypeHolder.class);
- q.setFilter("this.longField == 1 || this.longField == 2");
- q.setResult("l");
- q.declareParameters("Long l");
- c = (Collection) q.execute(new Long(10));
- Assert.assertEquals(2,c.size());
-
- it = c.iterator();
- assertEquals(new Long(10),it.next());
- assertEquals(new Long(10),it.next());
+ //test return String
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setFilter("this.longField == 1 || this.longField == 2");
+ q.setResult("s");
+ q.declareParameters("String s");
+ c = (Collection) q.execute("result");
+ Assert.assertEquals(2,c.size());
- //test return Primitive
- q = pm.newQuery(BasicTypeHolder.class);
- q.setFilter("this.longField == 1 || this.longField == 2");
- q.setResult("p");
- q.declareParameters("BasicTypeHolder p");
- c = (Collection) q.execute(p);
- Assert.assertEquals(2,c.size());
-
- it = c.iterator();
- assertEquals(p,it.next());
- assertEquals(p,it.next());
-
- //test return Primitive
- q = pm.newQuery(BasicTypeHolder.class);
- q.setFilter("this.longField == 1");
- q.setResult("p");
- q.declareParameters("BasicTypeHolder p");
- c = (Collection) q.execute(p);
- Assert.assertEquals(1,c.size());
-
- it = c.iterator();
- assertEquals(p,it.next());
+ it = c.iterator();
+ assertEquals("result",it.next());
+ assertEquals("result",it.next());
- //test return null
- q = pm.newQuery(BasicTypeHolder.class);
- q.setFilter("this.longField == 1");
- q.setResult("p");
- q.declareParameters("BasicTypeHolder p");
- c = (Collection) q.execute(null);
- Assert.assertEquals(1,c.size());
-
- it = c.iterator();
- assertNull(it.next());
+ //test return Long
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setFilter("this.longField == 1 || this.longField == 2");
+ q.setResult("l");
+ q.declareParameters("Long l");
+ c = (Collection) q.execute(new Long(10));
+ Assert.assertEquals(2,c.size());
- //test return Primitive
- q = pm.newQuery(BasicTypeHolder.class);
- q.setFilter("this.longField == 1");
- q.setResult("this, p");
- q.declareParameters("BasicTypeHolder p");
- c = (Collection) q.execute(p);
- Assert.assertEquals(1,c.size());
-
- it = c.iterator();
- assertEquals(p,((Object[])it.next())[1]);
+ it = c.iterator();
+ assertEquals(new Long(10),it.next());
+ assertEquals(new Long(10),it.next());
- //test return Long
- q = pm.newQuery(BasicTypeHolder.class);
- q.setFilter("this.longField == 1");
- q.setResult("p.longField");
- q.declareParameters("BasicTypeHolder p");
- c = (Collection) q.execute(p);
- Assert.assertEquals(1,c.size());
+ //test return Primitive
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setFilter("this.longField == 1 || this.longField == 2");
+ q.setResult("p");
+ q.declareParameters("BasicTypeHolder p");
+ c = (Collection) q.execute(p);
+ Assert.assertEquals(2,c.size());
- it = c.iterator();
- assertEquals(1, p.getLongField());
- assertEquals(new Long(1), it.next());
+ it = c.iterator();
+ assertEquals(p,it.next());
+ assertEquals(p,it.next());
- tx.commit();
+ //test return Primitive
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setFilter("this.longField == 1");
+ q.setResult("p");
+ q.declareParameters("BasicTypeHolder p");
+ c = (Collection) q.execute(p);
+ Assert.assertEquals(1,c.size());
+
+ it = c.iterator();
+ assertEquals(p,it.next());
+
+ //test return null
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setFilter("this.longField == 1");
+ q.setResult("p");
+ q.declareParameters("BasicTypeHolder p");
+ c = (Collection) q.execute(null);
+ Assert.assertEquals(1,c.size());
+
+ it = c.iterator();
+ assertNull(it.next());
+
+ //test return Primitive
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setFilter("this.longField == 1");
+ q.setResult("this, p");
+ q.declareParameters("BasicTypeHolder p");
+ c = (Collection) q.execute(p);
+ Assert.assertEquals(1,c.size());
+
+ it = c.iterator();
+ assertEquals(p,((Object[])it.next())[1]);
+
+ //test return Long
+ q = pm.newQuery(BasicTypeHolder.class);
+ q.setFilter("this.longField == 1");
+ q.setResult("p.longField");
+ q.declareParameters("BasicTypeHolder p");
+ c = (Collection) q.execute(p);
+ Assert.assertEquals(1,c.size());
+
+ it = c.iterator();
+ assertEquals(1, p.getLongField());
+ assertEquals(new Long(1), it.next());
+
+ tx.commit();
+ }
+ catch (Exception e)
+ {
+ LOG.error("Exception in query", e);
+ fail("Exception thrown by query " + e.getMessage());
+ }
+ finally
+ {
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+ pm.close();
+ }
}
- catch (Exception e)
- {
- LOG.error("Exception in query", e);
- fail("Exception thrown by query " + e.getMessage());
- }
finally
{
- if (tx.isActive())
- {
- tx.rollback();
- }
- pm.close();
-
// Clean out our data
clean(BasicTypeHolder.class);
}
@@ -2114,44 +2152,49 @@
public void testSetResultWithAggregationWithoutSubclasses()
{
- PersistenceManager pm = pmf.getPersistenceManager();
- Transaction tx = pm.currentTransaction();
try
{
- tx.begin();
- BasicTypeHolder basics[] = new BasicTypeHolder[5];
- for (int i=0; i<basics.length; i++)
+ PersistenceManager pm = pmf.getPersistenceManager();
+ Transaction tx = pm.currentTransaction();
+ try
{
- basics[i] = new BasicTypeHolder();
- basics[i].setLongField(i+1);
- basics[i].setShortField((short) (i+11));
- basics[i].setCharField('0');
+ tx.begin();
+ BasicTypeHolder basics[] = new BasicTypeHolder[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ basics[i] = new BasicTypeHolder();
+ basics[i].setLongField(i+1);
+ basics[i].setShortField((short) (i+11));
+ basics[i].setCharField('0');
+ }
+ pm.makePersistentAll(basics);
+ tx.commit();
+ Object ids[] = new Object[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ ids[i] = pm.getObjectId(basics[i]);
+ }
+
+ tx.begin();
+ Query q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("longField == 2 || longField == 3");
+ q.setResult("max(longField)");
+ Object result = q.execute();
+ assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
+ assertEquals("Result is incorrect", 3, ((Long)result).longValue());
+ tx.commit();
}
- pm.makePersistentAll(basics);
- tx.commit();
- Object ids[] = new Object[5];
- for (int i=0; i<basics.length; i++)
+ finally
{
- ids[i] = pm.getObjectId(basics[i]);
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+ pm.close();
}
-
- tx.begin();
- Query q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("longField == 2 || longField == 3");
- q.setResult("max(longField)");
- Object result = q.execute();
- assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
- assertEquals("Result is incorrect", 3, ((Long)result).longValue());
- tx.commit();
}
finally
{
- if (tx.isActive())
- {
- tx.rollback();
- }
- pm.close();
-
// Clean out our data
clean(BasicTypeHolder.class);
}
@@ -2159,44 +2202,49 @@
public void testSetResultWithAggregationWithSubclasses()
{
- PersistenceManager pm = pmf.getPersistenceManager();
- Transaction tx = pm.currentTransaction();
try
{
- tx.begin();
- BasicTypeHolder basics[] = new BasicTypeHolder[5];
- for (int i=0; i<basics.length; i++)
+ PersistenceManager pm = pmf.getPersistenceManager();
+ Transaction tx = pm.currentTransaction();
+ try
{
- basics[i] = new BasicTypeHolder();
- basics[i].setLongField(i+1);
- basics[i].setShortField((short) (i+11));
- basics[i].setCharField('0');
+ tx.begin();
+ BasicTypeHolder basics[] = new BasicTypeHolder[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ basics[i] = new BasicTypeHolder();
+ basics[i].setLongField(i+1);
+ basics[i].setShortField((short) (i+11));
+ basics[i].setCharField('0');
+ }
+ pm.makePersistentAll(basics);
+ tx.commit();
+ Object ids[] = new Object[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ ids[i] = pm.getObjectId(basics[i]);
+ }
+
+ tx.begin();
+ Query q = pm.newQuery(BasicTypeHolder.class);
+ q.setFilter("longField == 2 || longField == 3");
+ q.setResult("max(longField)");
+ Object result = q.execute();
+ assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
+ assertEquals("Result is incorrect", 3, ((Long)result).longValue());
+ tx.commit();
}
- pm.makePersistentAll(basics);
- tx.commit();
- Object ids[] = new Object[5];
- for (int i=0; i<basics.length; i++)
+ finally
{
- ids[i] = pm.getObjectId(basics[i]);
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+ pm.close();
}
-
- tx.begin();
- Query q = pm.newQuery(BasicTypeHolder.class);
- q.setFilter("longField == 2 || longField == 3");
- q.setResult("max(longField)");
- Object result = q.execute();
- assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
- assertEquals("Result is incorrect", 3, ((Long)result).longValue());
- tx.commit();
}
finally
{
- if (tx.isActive())
- {
- tx.rollback();
- }
- pm.close();
-
// Clean out our data
clean(BasicTypeHolder.class);
}
@@ -2204,130 +2252,135 @@
public void testSetResultWithAggregation1()
{
- PersistenceManager pm = pmf.getPersistenceManager();
- Transaction tx = pm.currentTransaction();
try
{
- tx.begin();
- BasicTypeHolder basics[] = new BasicTypeHolder[5];
- for (int i=0; i<basics.length; i++)
+ PersistenceManager pm = pmf.getPersistenceManager();
+ Transaction tx = pm.currentTransaction();
+ try
{
- basics[i] = new BasicTypeHolder();
- basics[i].setLongField(i+1);
- basics[i].setShortField((short) (i+11));
- basics[i].setCharField('0');
- }
- pm.makePersistentAll(basics);
- tx.commit();
+ tx.begin();
+ BasicTypeHolder basics[] = new BasicTypeHolder[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ basics[i] = new BasicTypeHolder();
+ basics[i].setLongField(i+1);
+ basics[i].setShortField((short) (i+11));
+ basics[i].setCharField('0');
+ }
+ pm.makePersistentAll(basics);
+ tx.commit();
- Object ids[] = new Object[5];
- for (int i=0; i<basics.length; i++)
- {
- ids[i] = pm.getObjectId(basics[i]);
- }
+ Object ids[] = new Object[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ ids[i] = pm.getObjectId(basics[i]);
+ }
- tx.begin();
- //-----------
- //MAX
- //-----------
- Query q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("max(this.longField)");
- Object result = q.execute();
- assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
- assertEquals("Result is incorrect", 3, ((Long)result).longValue());
+ tx.begin();
+ //-----------
+ //MAX
+ //-----------
+ Query q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("max(this.longField)");
+ Object result = q.execute();
+ assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
+ assertEquals("Result is incorrect", 3, ((Long)result).longValue());
- //-----------
- //MIN
- //-----------
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("min(this.longField)");
- result = q.execute();
- assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
- assertEquals("Result is incorrect", 2, ((Long)result).longValue());
+ //-----------
+ //MIN
+ //-----------
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("min(this.longField)");
+ result = q.execute();
+ assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
+ assertEquals("Result is incorrect", 2, ((Long)result).longValue());
- //-----------
- //SUM
- //-----------
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("sum(this.longField)");
- result = q.execute();
- assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
- assertEquals("Result is incorrect", 5, ((Long)result).longValue());
+ //-----------
+ //SUM
+ //-----------
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("sum(this.longField)");
+ result = q.execute();
+ assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
+ assertEquals("Result is incorrect", 5, ((Long)result).longValue());
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("count(this.longField)");
- result = q.execute();
- assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
- assertEquals("Result is incorrect", 2, ((Long)result).longValue());
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("count(this.longField)");
+ result = q.execute();
+ assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
+ assertEquals("Result is incorrect", 2, ((Long)result).longValue());
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("count(this.intField)");
- result = q.execute();
- assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
- assertEquals("Result is incorrect", 2, ((Long)result).longValue());
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("count(this.intField)");
+ result = q.execute();
+ assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
+ assertEquals("Result is incorrect", 2, ((Long)result).longValue());
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("count(this)");
- result = q.execute();
- assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
- assertEquals("Result is incorrect", 2, ((Long)result).longValue());
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("count(this)");
+ result = q.execute();
+ assertEquals("Type of result object is incorrect", result.getClass().getName(), "java.lang.Long");
+ assertEquals("Result is incorrect", 2, ((Long)result).longValue());
- //-----------
- //COUNT + non aggregate expression
- //-----------
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("count(this.longField),this.longField");
- q.setGrouping("this.longField");
- q.setOrdering("this.longField ascending");
- Collection c = (Collection) q.execute();
- Assert.assertEquals(2,c.size());
- try
- {
- Iterator it = c.iterator();
- Object[] object = (Object[])it.next();
- assertEquals(1,((Long)object[0]).longValue());
- assertEquals(2,((Long)object[1]).longValue());
- object = (Object[])it.next();
- assertEquals(1,((Long)object[0]).longValue());
- assertEquals(3,((Long)object[1]).longValue());
+ //-----------
+ //COUNT + non aggregate expression
+ //-----------
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("count(this.longField),this.longField");
+ q.setGrouping("this.longField");
+ q.setOrdering("this.longField ascending");
+ Collection c = (Collection) q.execute();
+ Assert.assertEquals(2,c.size());
+ try
+ {
+ Iterator it = c.iterator();
+ Object[] object = (Object[])it.next();
+ assertEquals(1,((Long)object[0]).longValue());
+ assertEquals(2,((Long)object[1]).longValue());
+ object = (Object[])it.next();
+ assertEquals(1,((Long)object[0]).longValue());
+ assertEquals(3,((Long)object[1]).longValue());
+ }
+ catch (Exception e)
+ {
+ fail(e.getMessage());
+ }
+
+ //-----------
+ //AVG
+ //-----------
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 4");
+ q.setResult("avg(this.longField)");
+ result = q.execute();
+ assertEquals("Type of result object is incorrect", "java.lang.Long", result.getClass().getName());
+ assertEquals("Result is incorrect", 3, ((Long)result).longValue());
+
+ tx.commit();
}
catch (Exception e)
{
- fail(e.getMessage());
+ LOG.error("Exception in query", e);
+ fail("Exception thrown by query " + e.getMessage());
}
-
- //-----------
- //AVG
- //-----------
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 4");
- q.setResult("avg(this.longField)");
- result = q.execute();
- assertEquals("Type of result object is incorrect", "java.lang.Long", result.getClass().getName());
- assertEquals("Result is incorrect", 3, ((Long)result).longValue());
-
- tx.commit();
+ finally
+ {
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+ pm.close();
+ }
}
- catch (Exception e)
- {
- LOG.error("Exception in query", e);
- fail("Exception thrown by query " + e.getMessage());
- }
finally
{
- if (tx.isActive())
- {
- tx.rollback();
- }
- pm.close();
-
// Clean out our data
clean(BasicTypeHolder.class);
}
@@ -2380,228 +2433,235 @@
public void testSetResultWithAggregationAndNonAggregateExpression()
{
- PersistenceManager pm = pmf.getPersistenceManager();
- Transaction tx = pm.currentTransaction();
try
{
- tx.begin();
- BasicTypeHolder basics[] = new BasicTypeHolder[5];
- for (int i=0; i<basics.length; i++)
+ PersistenceManager pm = pmf.getPersistenceManager();
+ Transaction tx = pm.currentTransaction();
+ try
{
- basics[i] = new BasicTypeHolder();
- basics[i].setLongField(i+1);
- basics[i].setShortField((short) (i+11));
- basics[i].setCharField('0');
- }
- pm.makePersistentAll(basics);
- Object ids[] = new Object[5];
- for (int i=0; i<basics.length; i++)
- {
- ids[i] = pm.getObjectId(basics[i]);
- }
+ tx.begin();
+ BasicTypeHolder basics[] = new BasicTypeHolder[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ basics[i] = new BasicTypeHolder();
+ basics[i].setLongField(i+1);
+ basics[i].setShortField((short) (i+11));
+ basics[i].setCharField('0');
+ }
+ pm.makePersistentAll(basics);
+ Object ids[] = new Object[5];
+ for (int i=0; i<basics.length; i++)
+ {
+ ids[i] = pm.getObjectId(basics[i]);
+ }
- //-----------
- //COUNT + non aggregate expression
- //-----------
- Query q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("count(this.longField),this.longField");
- q.setGrouping("this.longField");
- q.setOrdering("this.longField ascending");
- Collection c = (Collection) q.execute();
+ //-----------
+ //COUNT + non aggregate expression
+ //-----------
+ Query q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("count(this.longField),this.longField");
+ q.setGrouping("this.longField");
+ q.setOrdering("this.longField ascending");
+ Collection c = (Collection) q.execute();
- Assert.assertEquals(2,c.size());
-
- try
- {
- Iterator it = c.iterator();
- Object[] object = (Object[])it.next();
- assertEquals(1,((Long)object[0]).longValue());
- assertEquals(2,((Long)object[1]).longValue());
- object = (Object[])it.next();
- assertEquals(1,((Long)object[0]).longValue());
- assertEquals(3,((Long)object[1]).longValue());
- }
- catch( Exception e )
- {
- fail(e.getMessage());
- }
-
- //-----------
- //COUNT + non aggregate expression
- //-----------
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("this.longField,count(this.longField)");
- q.setGrouping("this.longField");
- q.setOrdering("this.longField ascending");
- c = (Collection) q.execute();
+ Assert.assertEquals(2,c.size());
- Assert.assertEquals(2,c.size());
-
- try
- {
+ try
+ {
+ Iterator it = c.iterator();
+ Object[] object = (Object[])it.next();
+ assertEquals(1,((Long)object[0]).longValue());
+ assertEquals(2,((Long)object[1]).longValue());
+ object = (Object[])it.next();
+ assertEquals(1,((Long)object[0]).longValue());
+ assertEquals(3,((Long)object[1]).longValue());
+ }
+ catch( Exception e )
+ {
+ fail(e.getMessage());
+ }
+
+ //-----------
+ //COUNT + non aggregate expression
+ //-----------
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("this.longField,count(this.longField)");
+ q.setGrouping("this.longField");
+ q.setOrdering("this.longField ascending");
+ c = (Collection) q.execute();
+
+ Assert.assertEquals(2,c.size());
+
+ try
+ {
+ Iterator it = c.iterator();
+ Object[] object = (Object[])it.next();
+ assertEquals(1,((Long)object[1]).longValue());
+ assertEquals(2,((Long)object[0]).longValue());
+ object = (Object[])it.next();
+ assertEquals(1,((Long)object[1]).longValue());
+ assertEquals(3,((Long)object[0]).longValue());
+ }
+ catch( Exception e )
+ {
+ fail(e.getMessage());
+ }
+
+ //-----------
+ //SUM + non aggregate expression
+ //-----------
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("this.longField,sum(this.longField)");
+ q.setGrouping("this.longField");
+ q.setOrdering("this.longField ascending");
+ c = (Collection) q.execute();
+
+ Assert.assertEquals(2,c.size());
+
+ try
+ {
+ Iterator it = c.iterator();
+ Object[] object = (Object[])it.next();
+ assertEquals(2,((Long)object[1]).longValue());
+ assertEquals(2,((Long)object[0]).longValue());
+ object = (Object[])it.next();
+ assertEquals(3,((Long)object[1]).longValue());
+ assertEquals(3,((Long)object[0]).longValue());
+ }
+ catch( Exception e )
+ {
+ fail(e.getMessage());
+ }
+ //-----------
+ //COUNT + non aggregate expression
+ //-----------
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("count(this.shortField),this.longField");
+ q.setGrouping("this.longField");
+ q.setOrdering("this.longField ascending");
+ c = (Collection) q.execute();
+
+ Assert.assertEquals(2,c.size());
+
+ try
+ {
+ Iterator it = c.iterator();
+ Object[] object = (Object[])it.next();
+ assertEquals(1,((Long)object[0]).longValue());
+ assertEquals(2,((Long)object[1]).longValue());
+ object = (Object[])it.next();
+ assertEquals(1,((Long)object[0]).longValue());
+ assertEquals(3,((Long)object[1]).longValue());
+ }
+ catch( Exception e )
+ {
+ fail(e.getMessage());
+ }
+
+ //-----------
+ //COUNT + non aggregate expression
+ //-----------
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("this.longField,count(this.shortField)");
+ q.setGrouping("this.longField");
+ q.setOrdering("this.longField ascending");
+ c = (Collection) q.execute();
+
+ Assert.assertEquals(2,c.size());
+
+ try
+ {
+ Iterator it = c.iterator();
+ Object[] object = (Object[])it.next();
+ assertEquals(1,((Long)object[1]).longValue());
+ assertEquals(2,((Long)object[0]).longValue());
+ object = (Object[])it.next();
+ assertEquals(1,((Long)object[1]).longValue());
+ assertEquals(3,((Long)object[0]).longValue());
+ }
+ catch( Exception e )
+ {
+ fail(e.getMessage());
+ }
+
+ //-----------
+ //SUM + non aggregate expression
+ //-----------
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("this.longField,sum(this.shortField)");
+ q.setGrouping("this.longField");
+ q.setOrdering("this.longField ascending");
+ c = (Collection) q.execute();
+
+ Assert.assertEquals(2,c.size());
+
Iterator it = c.iterator();
Object[] object = (Object[])it.next();
- assertEquals(1,((Long)object[1]).longValue());
+ assertEquals(12,((Long)object[1]).longValue());
assertEquals(2,((Long)object[0]).longValue());
object = (Object[])it.next();
- assertEquals(1,((Long)object[1]).longValue());
+ assertEquals(13,((Long)object[1]).longValue());
assertEquals(3,((Long)object[0]).longValue());
- }
- catch( Exception e )
- {
- fail(e.getMessage());
- }
-
- //-----------
- //SUM + non aggregate expression
- //-----------
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("this.longField,sum(this.longField)");
- q.setGrouping("this.longField");
- q.setOrdering("this.longField ascending");
- c = (Collection) q.execute();
- Assert.assertEquals(2,c.size());
-
- try
- {
- Iterator it = c.iterator();
- Object[] object = (Object[])it.next();
- assertEquals(2,((Long)object[1]).longValue());
+ //-----------
+ //SUM(this.XXX) + non aggregate expression
+ //-----------
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("this.longField,sum(this.shortField)");
+ q.setGrouping("this.longField");
+ c = (Collection) q.execute();
+
+ Assert.assertEquals(2,c.size());
+
+ it = c.iterator();
+ object = (Object[])it.next();
+ assertEquals(12,((Long)object[1]).longValue());
assertEquals(2,((Long)object[0]).longValue());
object = (Object[])it.next();
- assertEquals(3,((Long)object[1]).longValue());
+ assertEquals(13,((Long)object[1]).longValue());
assertEquals(3,((Long)object[0]).longValue());
- }
- catch( Exception e )
- {
- fail(e.getMessage());
- }
- //-----------
- //COUNT + non aggregate expression
- //-----------
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("count(this.shortField),this.longField");
- q.setGrouping("this.longField");
- q.setOrdering("this.longField ascending");
- c = (Collection) q.execute();
- Assert.assertEquals(2,c.size());
-
- try
- {
- Iterator it = c.iterator();
- Object[] object = (Object[])it.next();
- assertEquals(1,((Long)object[0]).longValue());
- assertEquals(2,((Long)object[1]).longValue());
+
+ //-----------
+ //SUM(XXX) + non aggregate expression
+ //-----------
+ q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
+ q.setFilter("this.longField == 2 || this.longField == 3");
+ q.setResult("this.longField,sum(shortField)");
+ q.setGrouping("this.longField");
+ c = (Collection) q.execute();
+
+ Assert.assertEquals(2,c.size());
+
+ it = c.iterator();
object = (Object[])it.next();
- assertEquals(1,((Long)object[0]).longValue());
- assertEquals(3,((Long)object[1]).longValue());
- }
- catch( Exception e )
- {
- fail(e.getMessage());
- }
-
- //-----------
- //COUNT + non aggregate expression
- //-----------
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("this.longField,count(this.shortField)");
- q.setGrouping("this.longField");
- q.setOrdering("this.longField ascending");
- c = (Collection) q.execute();
-
- Assert.assertEquals(2,c.size());
-
- try
- {
- Iterator it = c.iterator();
- Object[] object = (Object[])it.next();
- assertEquals(1,((Long)object[1]).longValue());
+ assertEquals(12,((Long)object[1]).longValue());
assertEquals(2,((Long)object[0]).longValue());
object = (Object[])it.next();
- assertEquals(1,((Long)object[1]).longValue());
+ assertEquals(13,((Long)object[1]).longValue());
assertEquals(3,((Long)object[0]).longValue());
+
+ tx.rollback(); // Dont persist the objects
}
- catch( Exception e )
+ finally
{
- fail(e.getMessage());
- }
-
- //-----------
- //SUM + non aggregate expression
- //-----------
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("this.longField,sum(this.shortField)");
- q.setGrouping("this.longField");
- q.setOrdering("this.longField ascending");
- c = (Collection) q.execute();
-
- Assert.assertEquals(2,c.size());
-
- Iterator it = c.iterator();
- Object[] object = (Object[])it.next();
- assertEquals(12,((Long)object[1]).longValue());
- assertEquals(2,((Long)object[0]).longValue());
- object = (Object[])it.next();
- assertEquals(13,((Long)object[1]).longValue());
- assertEquals(3,((Long)object[0]).longValue());
-
- //-----------
- //SUM(this.XXX) + non aggregate expression
- //-----------
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("this.longField,sum(this.shortField)");
- q.setGrouping("this.longField");
- c = (Collection) q.execute();
-
- Assert.assertEquals(2,c.size());
-
- it = c.iterator();
- object = (Object[])it.next();
- assertEquals(12,((Long)object[1]).longValue());
- assertEquals(2,((Long)object[0]).longValue());
- object = (Object[])it.next();
- assertEquals(13,((Long)object[1]).longValue());
- assertEquals(3,((Long)object[0]).longValue());
-
-
- //-----------
- //SUM(XXX) + non aggregate expression
- //-----------
- q = pm.newQuery(pm.getExtent(BasicTypeHolder.class,false));
- q.setFilter("this.longField == 2 || this.longField == 3");
- q.setResult("this.longField,sum(shortField)");
- q.setGrouping("this.longField");
- c = (Collection) q.execute();
-
- Assert.assertEquals(2,c.size());
-
- it = c.iterator();
- object = (Object[])it.next();
- assertEquals(12,((Long)object[1]).longValue());
- assertEquals(2,((Long)object[0]).longValue());
- object = (Object[])it.next();
- assertEquals(13,((Long)object[1]).longValue());
- assertEquals(3,((Long)object[0]).longValue());
-
- tx.rollback(); // Dont persist the objects
+ if (tx.isActive())
+ {
+ tx.rollback();
+ }
+ pm.close();
+ }
}
finally
{
- if (tx.isActive())
- {
- tx.rollback();
- }
- pm.close();
+ clean(BasicTypeHolder.class);
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|