use of org.jpox.samples.models.company.Office in project tests by datanucleus.
the class JDOQLResultTest method testSetResultWithAggregationGroupingOfAbs.
public void testSetResultWithAggregationGroupingOfAbs() {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Office o1 = new Office(1, "Turquoise", "Small office at the end of the long corridor");
Office o2 = new Office(2, "Green", "Large fully-featured modern office");
Office o3 = new Office(1, "Yellow", "Medium sized office");
pm.makePersistent(o1);
pm.makePersistent(o2);
pm.makePersistent(o3);
pm.flush();
Query q = pm.newQuery("SELECT abs(floor), count(this) FROM " + Office.class.getName() + " GROUP BY abs(floor)");
Collection c = (Collection) q.execute();
Assert.assertEquals(2, c.size());
Iterator it = c.iterator();
Object[] object = (Object[]) it.next();
assertEquals(1.0, ((Double) object[0]).doubleValue());
assertEquals(2, ((Long) object[1]).longValue());
object = (Object[]) it.next();
assertEquals(2.0, ((Double) object[0]).doubleValue());
assertEquals(1, ((Long) object[1]).longValue());
tx.rollback();
} catch (Exception e) {
LOG.error("Exception in query", e);
fail("Exception thrown by query " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
// Clean out our data
clean(Office.class);
}
}
use of org.jpox.samples.models.company.Office in project tests by datanucleus.
the class JDOQLResultTest method testSetResultCartesianProductContains1.
/**
* Test cartesian products
*/
public void testSetResultCartesianProductContains1() {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
try {
tx.begin();
Manager bart = new Manager(2, "Bart", "Simpson", "bart@simpson.com", 2, "serial 2");
Manager[] boss = new Manager[5];
boss[0] = new Manager(3, "Boss", "WakesUp", "boss@wakes.up", 4, "serial 3");
boss[1] = new Manager(4, "Boss", "WakesUp2", "boss2@wakes.up", 5, "serial 4");
boss[2] = new Manager(5, "Boss", "WakesUp3", "boss3@wakes.up", 6, "serial 5");
boss[3] = new Manager(6, "Boss", "WakesUp4", "boss4@wakes.up", 7, "serial 6");
boss[4] = new Manager(7, "Boss", "WakesUp5", "boss5@wakes.up", 8, "serial 7");
Office office = new Office(5, "cubicle 1", "none");
bart.addSubordinate(boss[0]);
bart.addSubordinate(boss[1]);
Department deptA = new Department("DeptA");
Department deptB = new Department("DeptB");
bart.getDepartments().add(deptA);
boss[3].getDepartments().add(deptB);
pm.makePersistent(bart);
pm.makePersistentAll(boss);
pm.makePersistent(office);
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
}
try {
tx.begin();
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Manager e");
q.setResult("this, e");
q.setFilter("e.departments.contains(this)");
List results = (List) q.execute();
assertEquals(2, results.size());
q.closeAll();
tx.commit();
} catch (Exception e) {
LOG.error("Exception during test", e);
fail("Exception during test : " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
}
try {
tx.begin();
try {
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Manager e");
q.setResult("e");
q.setFilter("e.departments.contains(this)");
List results = (List) q.execute();
assertEquals(2, results.size());
q.closeAll();
} catch (RuntimeException e) {
fail(e.getMessage());
}
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
}
} finally {
pm.close();
}
} finally {
CompanyHelper.clearCompanyData(pmf);
}
}
use of org.jpox.samples.models.company.Office in project tests by datanucleus.
the class JDOQLResultTest method testSetResultCartesianProductCollection.
/**
* Test cartesian products
*/
public void testSetResultCartesianProductCollection() {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Manager bart = new Manager(2, "Bart", "Simpson", "bart@simpson.com", 2, "serial 2");
Manager[] boss = new Manager[5];
boss[0] = new Manager(3, "Boss", "WakesUp", "boss@wakes.up", 4, "serial 3");
boss[1] = new Manager(4, "Boss", "WakesUp2", "boss2@wakes.up", 5, "serial 4");
boss[2] = new Manager(5, "Boss", "WakesUp3", "boss3@wakes.up", 6, "serial 5");
boss[3] = new Manager(6, "Boss", "WakesUp4", "boss4@wakes.up", 7, "serial 6");
boss[4] = new Manager(7, "Boss", "WakesUp5", "boss5@wakes.up", 8, "serial 7");
Office office = new Office(5, "cubicle 1", "none");
bart.addSubordinate(boss[0]);
bart.addSubordinate(boss[1]);
Department deptA = new Department("DeptA");
Department deptB = new Department("DeptB");
bart.getDepartments().add(deptA);
boss[3].getDepartments().add(deptB);
pm.makePersistent(bart);
pm.makePersistentAll(boss);
pm.makePersistent(office);
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
}
try {
tx.begin();
try {
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Manager e");
q.setResult("this, e.departments");
q.execute();
q.closeAll();
fail("Expected user exception");
} catch (JDOUserException e) {
// expected
}
try {
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Manager e");
q.setResult("this, e.departments");
q.compile();
q.closeAll();
fail("Expected user exception");
} catch (JDOUserException e) {
// expected
}
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
CompanyHelper.clearCompanyData(pmf);
}
}
use of org.jpox.samples.models.company.Office in project tests by datanucleus.
the class JDOQLResultTest method testSetResultCartesianProduct1.
/**
* Test cartesian products
*/
public void testSetResultCartesianProduct1() {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Manager bart = new Manager(2, "Bart", "Simpson", "bart@simpson.com", 2, "serial 2");
Manager[] boss = new Manager[5];
boss[0] = new Manager(3, "Boss", "WakesUp", "boss@wakes.up", 4, "serial 3");
boss[1] = new Manager(4, "Boss", "WakesUp2", "boss2@wakes.up", 5, "serial 4");
boss[2] = new Manager(5, "Boss", "WakesUp3", "boss3@wakes.up", 6, "serial 5");
boss[3] = new Manager(6, "Boss", "WakesUp4", "boss4@wakes.up", 7, "serial 6");
boss[4] = new Manager(7, "Boss", "WakesUp5", "boss5@wakes.up", 8, "serial 7");
Office office = new Office(5, "cubicle 1", "none");
bart.addSubordinate(boss[0]);
bart.addSubordinate(boss[1]);
Department deptA = new Department("DeptA");
Department deptB = new Department("DeptB");
bart.getDepartments().add(deptA);
boss[3].getDepartments().add(deptB);
pm.makePersistent(bart);
pm.makePersistentAll(boss);
pm.makePersistent(office);
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
}
try {
tx.begin();
try {
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Employee e");
List results = (List) q.execute();
assertEquals(12, results.size());
q.closeAll();
fail("JDOUserException expected");
} catch (JDOUserException e) {
// expected;
}
try {
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Employee e");
q.setResult("this");
List results = (List) q.execute();
assertEquals(12, results.size());
q.closeAll();
fail("JDOUserException expected");
} catch (JDOUserException e) {
// expected;
}
try {
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Employee e");
q.setResult("this, e");
List results = (List) q.execute();
assertEquals(12, results.size());
q.closeAll();
} catch (JDOUserException e) {
fail(e.getMessage());
}
try {
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Employee e; Office o");
q.setResult("this, e, o");
List results = (List) q.execute();
assertEquals(12, results.size());
q.closeAll();
} catch (JDOUserException e) {
fail(e.getMessage());
}
Office office = new Office(6, "cubicle 2", "none");
pm.makePersistent(office);
pm.flush();
try {
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Employee e; Office o");
q.setResult("this, e, o");
List results = (List) q.execute();
assertEquals(24, results.size());
q.closeAll();
} catch (JDOUserException e) {
fail(e.getMessage());
}
try {
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Department d");
q.setResult("this, d");
List results = (List) q.execute();
assertEquals(4, results.size());
q.closeAll();
} catch (JDOUserException e) {
fail(e.getMessage());
}
try {
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Department d");
q.setResult("this, d");
q.setFilter("d==this");
List results = (List) q.execute();
assertEquals(2, results.size());
q.closeAll();
} catch (JDOUserException e) {
fail(e.getMessage());
}
try {
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Department d");
q.setResult("this, d");
q.setFilter("d!=this");
List results = (List) q.execute();
assertEquals(2, results.size());
q.closeAll();
} catch (JDOUserException e) {
fail(e.getMessage());
}
try {
Query q = pm.newQuery(pm.getExtent(Department.class, false));
q.declareVariables("Manager e");
q.setResult("this, e");
List results = (List) q.execute();
assertEquals(12, results.size());
q.closeAll();
} catch (RuntimeException e) {
fail(e.getMessage());
}
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
}
} finally {
CompanyHelper.clearCompanyData(pmf);
}
}
use of org.jpox.samples.models.company.Office in project tests by datanucleus.
the class JDOQLResultTest method testSetResultWithAggregationAndNonAggregateExpression2.
public void testSetResultWithAggregationAndNonAggregateExpression2() {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Office o1 = new Office(1, "Turquoise", "Small office at the end of the long corridor");
Office o2 = new Office(2, "Green", "Large fully-featured modern office");
Office o3 = new Office(1, "Yellow", "Medium sized office");
pm.makePersistent(o1);
pm.makePersistent(o2);
pm.makePersistent(o3);
pm.flush();
// -----------
// COUNT
// -----------
Query q = pm.newQuery(pm.getExtent(Office.class, false));
q.setResult("count(this), floor");
q.setGrouping("floor");
q.setOrdering("floor ascending");
Collection c = (Collection) q.execute();
Assert.assertEquals(2, c.size());
Iterator it = c.iterator();
Object[] object = (Object[]) it.next();
assertEquals(2, ((Long) object[0]).longValue());
object = (Object[]) it.next();
assertEquals(1, ((Long) object[0]).longValue());
tx.rollback();
} catch (Exception e) {
LOG.error("Exception in query", e);
fail("Exception thrown by query " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
// Clean out our data
clean(Office.class);
}
}
Aggregations