|
From: <gca...@us...> - 2011-12-01 09:11:02
|
Revision: 3717
http://openutils.svn.sourceforge.net/openutils/?rev=3717&view=rev
Author: gcatania
Date: 2011-12-01 09:10:56 +0000 (Thu, 01 Dec 2011)
Log Message:
-----------
BSHD-2 adding unit test, fixing meaningfulness of existing ones
Modified Paths:
--------------
trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java
Modified: trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java
===================================================================
--- trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java 2011-12-01 09:10:37 UTC (rev 3716)
+++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java 2011-12-01 09:10:56 UTC (rev 3717)
@@ -32,10 +32,12 @@
import it.openutils.hibernate.test.model.CarMaker;
import it.openutils.hibernate.test.model.CarModel;
import it.openutils.hibernate.test.model.CurrencyAmount;
+import it.openutils.hibernate.test.model.Designer;
import it.openutils.hibernate.test.model.FullName;
import it.openutils.hibernate.test.model.Owner;
import it.openutils.hibernate.test.model.Person;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collections;
import java.util.GregorianCalendar;
@@ -67,7 +69,7 @@
@Autowired
private CarDAO carDAO;
- private Person alice()
+ private static Person alice()
{
FullName fullName = new FullName("Alice", "McBeal");
Calendar birthDate = new GregorianCalendar(1970, Calendar.MARCH, 7);
@@ -80,7 +82,7 @@
return p;
}
- private Owner bob()
+ private static Owner bob()
{
FullName fullName = new FullName("Bob", "Kelso");
Calendar birthDate = new GregorianCalendar(1950, Calendar.MARCH, 7);
@@ -93,7 +95,7 @@
return o;
}
- private Owner chuck()
+ private static Owner chuck()
{
FullName fullName = new FullName("Chuck", "Palahniuk");
Calendar birthDate = new GregorianCalendar(1962, Calendar.FEBRUARY, 21);
@@ -106,11 +108,53 @@
return p;
}
+ private static CarMaker toyota()
+ {
+ CarMaker toyota = new CarMaker();
+ toyota.setName("Toyota");
+ toyota.setCapitalization(new CurrencyAmount(12000, "YEN"));
+ return toyota;
+ }
+
+ private static CarModel prius(CarMaker toyota)
+ {
+ CarModel prius = new CarModel();
+ prius.setName("Prius");
+ prius.setYear(Integer.valueOf(2008));
+
+ List<CarModel> toyotaModels = toyota.getModels();
+ if (toyotaModels == null)
+ {
+ toyotaModels = new ArrayList<CarModel>();
+ }
+ toyotaModels.add(prius);
+ toyota.setModels(toyotaModels);
+ return prius;
+ }
+
+ private static Designer priusDesigner(CarModel prius)
+ {
+ FullName fullName = new FullName("Ken", "Shiro");
+ Calendar birthDate = new GregorianCalendar(1981, Calendar.OCTOBER, 16);
+ Address address = new Address("Khan avenue", 6, "Nagato", "TK", 99867);
+ Designer p = new Designer();
+ p.setName(fullName);
+ p.setBirthDate(birthDate);
+ p.setFiscalAddress(address);
+ p.setCurrentAddress(address);
+ p.setDepartment("design");
+ p.setEmployer(prius.getMake());
+ p.setDesignedModels(Collections.singleton(prius));
+ p.setGrossAnnualSalary(new CurrencyAmount(60000, "YEN"));
+ p.setHipsterFactor(97);
+ return p;
+ }
+
/**
* basic save/evict/get test.
*/
@Test
- public void testSaveAndRetrievePerson()
+ public void testSaveAndRetrieveBasic()
{
Person person = alice();
Long savedId = personDAO.save(person);
@@ -122,11 +166,32 @@
Assert.assertEquals(person, savedPerson);
}
+ /*
+ * java.lang.ClassCastException: it.openutils.hibernate.test.model.Person_$$_javassist_7 cannot be cast to
+ * it.openutils.hibernate.test.model.Designer
+ */
+ @Test(enabled = false)
+ public void testSaveAndRetrieveWithCascade()
+ {
+ CarMaker toyota = toyota();
+ CarModel prius = prius(toyota);
+ Designer designer = priusDesigner(prius);
+
+ Long designerId = personDAO.save(designer);
+
+ personDAO.evict(designer);
+ Person reloadedDesigner = personDAO.load(designerId);
+ Designer rd = (Designer) reloadedDesigner;
+ Assert.assertEquals(rd.getHipsterFactor(), 97);
+ Assert.assertEquals(rd.getDesignedModels().iterator().next().getYear(), Integer.valueOf(2008));
+ }
+
@Test
- public void testFindFilteredFirst()
+ public void testBasicFind()
{
Person alice = alice();
personDAO.save(alice);
+
Person filter = new Person();
filter.setName(new FullName(null, "McBeal"));
List<Person> found = personDAO.findFiltered(filter);
@@ -136,12 +201,46 @@
}
@Test
+ public void testFindFiltered()
+ {
+ personDAO.save(alice());
+ personDAO.save(bob());
+ personDAO.save(chuck());
+ Person filter = new Person();
+ filter.setName(new FullName(null, "Kelso"));
+ List<Person> found = personDAO.findFiltered(filter);
+
+ Assert.assertEquals(found.size(), 1, "Invalid number of persons found.");
+ Person actualBob = bob();
+ Person expectedBob = found.get(0);
+ Assert.assertEquals(expectedBob.getName(), actualBob.getName());
+ Assert.assertEquals(expectedBob.getCurrentAddress().getStreet(), actualBob.getCurrentAddress().getStreet());
+ Assert.assertEquals(expectedBob.getBirthDate(), actualBob.getBirthDate());
+ }
+
+ @Test
+ public void testFindFilteredInheritance()
+ {
+ personDAO.save(alice());
+ personDAO.save(bob());
+ personDAO.save(chuck());
+ Person filter = new Person();
+ filter.setName(new FullName(null, "Kelso"));
+ List<Person> found = personDAO.findFiltered(filter);
+
+ Assert.assertEquals(found.size(), 1, "Invalid number of persons found.");
+ Person expectedBob = found.get(0);
+ Assert.assertEquals(expectedBob.getClass(), Owner.class, "Inheritanche check failed");
+ }
+
+ @Test(enabled = false)
public void testFindFilteredById()
{
Person alice = alice();
- Long savedId = personDAO.save(alice);
+ Long alicesId = personDAO.save(alice);
+ personDAO.save(bob());
Person filter = new Person();
- filter.setId(savedId);
+ filter.setId(alicesId);
List<Person> found = personDAO.findFiltered(filter);
Assert.assertEquals(found.size(), 1, "No persons found.");
@@ -157,13 +256,8 @@
public void testFindFilteredByChildId()
{
Owner bob = bob();
- CarMaker toyota = new CarMaker();
- toyota.setName("Toyota");
- toyota.setCapitalization(new CurrencyAmount(12000, "YEN"));
- CarModel prius = new CarModel();
- prius.setName("Prius");
- prius.setYear(Integer.valueOf(2008));
- toyota.setModels(Collections.singletonList(prius));
+ CarMaker toyota = toyota();
+ CarModel prius = prius(toyota);
Car bobsPrius = new Car(new GregorianCalendar(2010, Calendar.OCTOBER, 12), prius, toyota);
bob.setCars(Collections.singleton(bobsPrius));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|