use of org.jpox.samples.models.company.Employee in project tests by datanucleus.
the class ApplicationIdPersistenceTest method testInheritanceAndFloat.
/**
* Test persistence of inheritance, and persistence of float.
*/
public void testInheritanceAndFloat() {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Employee e = new Employee();
e.setPersonNum(1);
e.setGlobalNum("1");
e.setFirstName("Bugs");
e.setLastName("Bunny");
e.setSalary(123);
pm.makePersistent(e);
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
pmf.getDataStoreCache().evictAll();
pm = pmf.getPersistenceManager();
tx = pm.currentTransaction();
try {
tx.begin();
Query q = pm.newQuery(Employee.class);
List<Employee> employees = (List<Employee>) q.execute();
assertNotNull(employees);
assertEquals("Number of employees is wrong", 1, employees.size());
Employee e = employees.get(0);
assertEquals("Employee name is wrong", "Bugs", e.getFirstName());
assertEquals("Employee name is wrong", "Bunny", e.getLastName());
assertEquals("Employee salary is wrong", 123, e.getSalary(), 0.1);
tx.commit();
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
clean(Employee.class);
}
}
use of org.jpox.samples.models.company.Employee in project tests by datanucleus.
the class JDOQLTest method testNextOnEmptyIterator.
/**
* Query that returns an empty list, and calling next on its iterator.
* @throws Exception
*/
public void testNextOnEmptyIterator() throws Exception {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Person p1 = new Person();
p1.setPersonNum(1);
p1.setGlobalNum("1");
p1.setFirstName("Bugs");
p1.setLastName("Bunny");
Person p2 = new Person();
p2.setPersonNum(2);
p2.setGlobalNum("2");
p2.setFirstName("Daffy");
p2.setLastName("Duck");
Employee e3 = new Employee();
e3.setFirstName("Barney");
e3.setLastName("Rubble");
e3.setPersonNum(103);
e3.setGlobalNum("103");
e3.setSalary(124.50f);
pm.makePersistent(p1);
pm.makePersistent(p2);
pm.makePersistent(e3);
tx.commit();
} catch (Exception e) {
LOG.error("Exception during persist", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
pm = pmf.getPersistenceManager();
tx = pm.currentTransaction();
try {
tx.begin();
Query q1 = pm.newQuery("SELECT FROM " + Person.class.getName() + " WHERE firstName == 'Doofy'");
List<Person> results1 = (List<Person>) q1.execute();
Iterator<Person> iter = results1.iterator();
assertFalse(iter.hasNext());
tx.commit();
} catch (Exception e) {
LOG.error("Exception during query", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
clean(Employee.class);
clean(Person.class);
}
}
use of org.jpox.samples.models.company.Employee in project tests by datanucleus.
the class JDOQLTest method testFilterSingle.
/**
* Query with a simple filter with one clause ("field == value")
* @throws Exception
*/
public void testFilterSingle() throws Exception {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Person p1 = new Person();
p1.setPersonNum(1);
p1.setGlobalNum("1");
p1.setFirstName("Bugs");
p1.setLastName("Bunny");
Person p2 = new Person();
p2.setPersonNum(2);
p2.setGlobalNum("2");
p2.setFirstName("Daffy");
p2.setLastName("Duck");
Employee e3 = new Employee();
e3.setFirstName("Barney");
e3.setLastName("Rubble");
e3.setPersonNum(103);
e3.setGlobalNum("103");
e3.setSalary(124.50f);
pm.makePersistent(p1);
pm.makePersistent(p2);
pm.makePersistent(e3);
tx.commit();
} catch (Exception e) {
LOG.error("Exception during persist", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
pm = pmf.getPersistenceManager();
tx = pm.currentTransaction();
try {
tx.begin();
Query q1 = pm.newQuery("SELECT FROM " + Person.class.getName() + " WHERE firstName == 'Daffy'");
List<Person> results1 = (List<Person>) q1.execute();
assertEquals(1, results1.size());
Iterator<Person> iter = results1.iterator();
Person p = iter.next();
assertEquals("Daffy", p.getFirstName());
assertEquals("Duck", p.getLastName());
assertEquals(2, p.getPersonNum());
tx.commit();
} catch (Exception e) {
LOG.error("Exception during query", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
clean(Employee.class);
clean(Person.class);
}
}
use of org.jpox.samples.models.company.Employee in project tests by datanucleus.
the class JDOQLTest method testCandidateWithSubclasses.
public void testCandidateWithSubclasses() throws Exception {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Person p1 = new Person();
p1.setPersonNum(1);
p1.setGlobalNum("1");
p1.setFirstName("Bugs");
p1.setLastName("Bunny");
Person p2 = new Person();
p2.setPersonNum(2);
p2.setGlobalNum("2");
p2.setFirstName("Daffy");
p2.setLastName("Duck");
Employee e3 = new Employee();
e3.setFirstName("Barney");
e3.setLastName("Rubble");
e3.setPersonNum(103);
e3.setGlobalNum("103");
e3.setSalary(124.50f);
pm.makePersistent(p1);
pm.makePersistent(p2);
pm.makePersistent(e3);
tx.commit();
} catch (Exception e) {
LOG.error("Exception during persist", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
pm = pmf.getPersistenceManager();
tx = pm.currentTransaction();
try {
tx.begin();
// Check number of objects present
Query q1 = pm.newQuery(pm.getExtent(Person.class, true));
List<Person> results1 = (List<Person>) q1.execute();
assertEquals(3, results1.size());
Iterator<Person> iter = results1.iterator();
int numEmployees = 0;
int numPeople = 0;
while (iter.hasNext()) {
Person p = iter.next();
if (p instanceof Employee) {
numEmployees++;
} else {
numPeople++;
}
}
assertEquals("Number of Employees wrong", 1, numEmployees);
assertEquals("Number of Person wrong", 2, numPeople);
Query q2 = pm.newQuery(pm.getExtent(Person.class, false));
List<Person> results2 = (List<Person>) q2.execute();
assertEquals(2, results2.size());
tx.commit();
} catch (Exception e) {
LOG.error("Exception during 1-N retrieve and check", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
clean(Employee.class);
clean(Person.class);
}
}
use of org.jpox.samples.models.company.Employee in project tests by datanucleus.
the class JDOQLTest method testFilterUsingAndNestedAnd.
/**
* Query with a simple filter with two ANDed clauses
* "(field >= value1 && field < value2)" and "(field >= value3 && field < value4)".
* @throws Exception
*/
public void testFilterUsingAndNestedAnd() throws Exception {
try {
PersistenceManager pm = pmf.getPersistenceManager();
Transaction tx = pm.currentTransaction();
try {
tx.begin();
Person p1 = new Person();
p1.setPersonNum(1);
p1.setGlobalNum("1");
p1.setFirstName("Bugs");
p1.setLastName("Bunny");
p1.setAge(15);
Person p2 = new Person();
p2.setPersonNum(2);
p2.setGlobalNum("2");
p2.setFirstName("Daffy");
p2.setLastName("Duck");
p2.setAge(16);
Employee e3 = new Employee();
e3.setFirstName("Barney");
e3.setLastName("Rubble");
e3.setPersonNum(103);
e3.setGlobalNum("103");
e3.setSalary(124.50f);
e3.setAge(18);
pm.makePersistent(p1);
pm.makePersistent(p2);
pm.makePersistent(e3);
tx.commit();
} catch (Exception e) {
LOG.error("Exception during persist", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
pm = pmf.getPersistenceManager();
tx = pm.currentTransaction();
try {
tx.begin();
Query q1 = pm.newQuery("SELECT FROM " + Person.class.getName() + " WHERE (personNum >= 1 && personNum <=2) && (age >= 14 && age < 18)");
List<Person> results1 = (List<Person>) q1.execute();
assertEquals(2, results1.size());
Iterator<Person> iter = results1.iterator();
Person p1 = iter.next();
Person p2 = iter.next();
boolean daffy = false;
boolean bugs = false;
if (p1.getPersonNum() == 1) {
assertEquals("Bugs", p1.getFirstName());
assertEquals("Bunny", p1.getLastName());
assertEquals(1, p1.getPersonNum());
bugs = true;
} else {
assertEquals("Daffy", p1.getFirstName());
assertEquals("Duck", p1.getLastName());
assertEquals(2, p1.getPersonNum());
daffy = true;
}
if (p2.getPersonNum() == 1) {
assertEquals("Bugs", p2.getFirstName());
assertEquals("Bunny", p2.getLastName());
assertEquals(1, p2.getPersonNum());
bugs = true;
} else {
assertEquals("Daffy", p2.getFirstName());
assertEquals("Duck", p2.getLastName());
assertEquals(2, p2.getPersonNum());
daffy = true;
}
assertTrue("Bugs not present in results!", bugs);
assertTrue("Daffy not present in results!", daffy);
tx.commit();
} catch (Exception e) {
LOG.error("Exception during query", e);
fail("Exception thrown when running test " + e.getMessage());
} finally {
if (tx.isActive()) {
tx.rollback();
}
pm.close();
}
} finally {
clean(Employee.class);
clean(Person.class);
}
}
Aggregations