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. |
From: <gca...@us...> - 2011-12-02 14:40:35
|
Revision: 3725 http://openutils.svn.sourceforge.net/openutils/?rev=3725&view=rev Author: gcatania Date: 2011-12-02 14:40:25 +0000 (Fri, 02 Dec 2011) Log Message: ----------- BSHD-2 unit tests 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-02 14:39:04 UTC (rev 3724) +++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java 2011-12-02 14:40:25 UTC (rev 3725) @@ -26,6 +26,7 @@ package it.openutils.hibernate.test; import it.openutils.hibernate.test.dao.CarDAO; +import it.openutils.hibernate.test.dao.CarMakerDAO; import it.openutils.hibernate.test.dao.PersonDAO; import it.openutils.hibernate.test.model.Address; import it.openutils.hibernate.test.model.Car; @@ -67,6 +68,9 @@ private PersonDAO personDAO; @Autowired + private CarMakerDAO carMakerDAO; + + @Autowired private CarDAO carDAO; private static Person alice() @@ -111,15 +115,26 @@ private static CarMaker toyota() { CarMaker toyota = new CarMaker(); + toyota.setCode("TYT"); toyota.setName("Toyota"); toyota.setCapitalization(new CurrencyAmount(12000, "YEN")); return toyota; } + private static CarMaker fiat() + { + CarMaker fiat = new CarMaker(); + fiat.setCode("FIA"); + fiat.setName("Fabbrica Italiana Automobili Torino"); + fiat.setCapitalization(new CurrencyAmount(80000, "EUR")); + return fiat; + } + private static CarModel prius(CarMaker toyota) { CarModel prius = new CarModel(); prius.setName("Prius"); + prius.setMake(toyota); prius.setYear(Integer.valueOf(2008)); List<CarModel> toyotaModels = toyota.getModels(); @@ -166,22 +181,31 @@ 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) + @Test public void testSaveAndRetrieveWithCascade() { CarMaker toyota = toyota(); CarModel prius = prius(toyota); + + carMakerDAO.save(toyota); + Designer designer = priusDesigner(prius); - Long designerId = personDAO.save(designer); + personDAO.save(designer); + // FIXME evicting breaks the test, there must be something wrong in the hibernate mapping configuration + // personDAO.evict(designer); - personDAO.evict(designer); - Person reloadedDesigner = personDAO.load(designerId); + // cannot use load() with entity inheritance, see https://forum.hibernate.org/viewtopic.php?p=2418875 + // Person reloadedDesigner = personDAO.load(designer.getId()); + + Person filter = new Person(); + filter.setBirthDate(designer.getBirthDate()); + Person reloadedDesigner = personDAO.findFilteredFirst(filter); + Assert.assertNotNull(reloadedDesigner); + Assert.assertEquals(reloadedDesigner.getClass(), Designer.class); Designer rd = (Designer) reloadedDesigner; + Assert.assertEquals(rd.getEmployer(), toyota); + Assert.assertEquals(prius.getMake(), toyota); Assert.assertEquals(rd.getHipsterFactor(), 97); Assert.assertEquals(rd.getDesignedModels().iterator().next().getYear(), Integer.valueOf(2008)); } @@ -233,44 +257,6 @@ Assert.assertEquals(expectedBob.getClass(), Owner.class, "Inheritanche check failed"); } - @Test(enabled = false) - public void testFindFilteredById() - { - Person alice = alice(); - Long alicesId = personDAO.save(alice); - personDAO.save(bob()); - Person filter = new Person(); - filter.setId(alicesId); - List<Person> found = personDAO.findFiltered(filter); - - Assert.assertEquals(found.size(), 1, "No persons found."); - Assert.assertEquals(found.get(0), alice); - } - - /* - * disabled: filter by id on child objects isn't working yet (see - * http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html/querycriteria.html#querycriteria-examples and - * https://forum.hibernate.org/viewtopic.php?f=9&t=1004833&view=next ) - */ - @Test(enabled = false) - public void testFindFilteredByChildId() - { - Owner bob = bob(); - CarMaker toyota = toyota(); - CarModel prius = prius(toyota); - - Car bobsPrius = new Car(new GregorianCalendar(2010, Calendar.OCTOBER, 12), prius, toyota); - bob.setCars(Collections.singleton(bobsPrius)); - personDAO.save(bob); - - Owner filter = new Owner(); - Car carFilter = new Car(null, null, null); - carFilter.setId(bobsPrius.getId()); - filter.setCars(Collections.singleton(carFilter)); - Person found = personDAO.findFilteredFirst(filter); - Assert.assertEquals(found.getName(), bob.getName()); - } - @Test public void testExampleBasic() { @@ -291,6 +277,42 @@ Assert.assertEquals(found.get(0).getName().getFamilyName(), "McBeal"); } + @Test + public void testFindFilteredChild() + { + Owner bob = bob(); + CarMaker toyota = toyota(); + CarModel prius = prius(toyota); + + Car bobsPrius = new Car(); + bobsPrius.setModel(prius); + bobsPrius.setRegistrationDate(new GregorianCalendar(2010, Calendar.OCTOBER, 28)); + bobsPrius.setMarketValue(new CurrencyAmount(1700, "USD")); + bobsPrius.setOwner(bob); + bob.setCars(Collections.singleton(bobsPrius)); + + Owner chuck = chuck(); + Car chucksPrius = new Car(); + chucksPrius.setModel(prius); + chucksPrius.setRegistrationDate(new GregorianCalendar(2011, Calendar.DECEMBER, 13)); + chucksPrius.setMarketValue(new CurrencyAmount(5400, "USD")); + chucksPrius.setOwner(bob); + chuck.setCars(Collections.singleton(chucksPrius)); + + personDAO.save(bob); + personDAO.save(chuck); + personDAO.save(priusDesigner(prius)); + + Car carFilter = new Car(); + carFilter.setMarketValue(new CurrencyAmount(1700, "USD")); + Owner filter = new Owner(); + filter.setCars(Collections.singleton(carFilter)); + List<Person> found = personDAO.findFiltered(filter); + Assert.assertEquals(found.size(), 1); + Person shouldBeBob = found.get(0); + Assert.assertEquals(shouldBeBob.getName(), bob.getName()); + } + // @Test // public void testExampleAssociations() // { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <gca...@us...> - 2011-12-02 15:18:08
|
Revision: 3728 http://openutils.svn.sourceforge.net/openutils/?rev=3728&view=rev Author: gcatania Date: 2011-12-02 15:18:01 +0000 (Fri, 02 Dec 2011) Log Message: ----------- BSHD-2 improved unit tests 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-02 15:08:08 UTC (rev 3727) +++ trunk/openutils-bshd5/src/test/java/it/openutils/hibernate/test/HibernateDAOTest.java 2011-12-02 15:18:01 UTC (rev 3728) @@ -165,6 +165,28 @@ return p; } + private Car bobsPrius(Owner bob, CarModel prius) + { + Car bobsPrius = new Car(); + bobsPrius.setModel(prius); + bobsPrius.setRegistrationDate(new GregorianCalendar(2010, Calendar.OCTOBER, 28)); + bobsPrius.setMarketValue(new CurrencyAmount(1700, "USD")); + bobsPrius.setOwner(bob); + bob.setCars(Collections.singleton(bobsPrius)); + return bobsPrius; + } + + private Car chucksPrius(Owner chuck, CarModel prius) + { + Car chucksPrius = new Car(); + chucksPrius.setModel(prius); + chucksPrius.setRegistrationDate(new GregorianCalendar(2011, Calendar.DECEMBER, 13)); + chucksPrius.setMarketValue(new CurrencyAmount(5400, "USD")); + chucksPrius.setOwner(chuck); + chuck.setCars(Collections.singleton(chucksPrius)); + return chucksPrius; + } + /** * basic save/evict/get test. */ @@ -280,27 +302,17 @@ @Test public void testFindFilteredChild() { - Owner bob = bob(); CarMaker toyota = toyota(); CarModel prius = prius(toyota); - Car bobsPrius = new Car(); - bobsPrius.setModel(prius); - bobsPrius.setRegistrationDate(new GregorianCalendar(2010, Calendar.OCTOBER, 28)); - bobsPrius.setMarketValue(new CurrencyAmount(1700, "USD")); - bobsPrius.setOwner(bob); - bob.setCars(Collections.singleton(bobsPrius)); + Owner bob = bob(); + bobsPrius(bob, prius); + personDAO.save(bob); Owner chuck = chuck(); - Car chucksPrius = new Car(); - chucksPrius.setModel(prius); - chucksPrius.setRegistrationDate(new GregorianCalendar(2011, Calendar.DECEMBER, 13)); - chucksPrius.setMarketValue(new CurrencyAmount(5400, "USD")); - chucksPrius.setOwner(bob); - chuck.setCars(Collections.singleton(chucksPrius)); + chucksPrius(chuck, prius); + personDAO.save(chuck); - personDAO.save(bob); - personDAO.save(chuck); personDAO.save(priusDesigner(prius)); Car carFilter = new Car(); @@ -359,12 +371,7 @@ CarMaker toyota = toyota(); CarModel prius = prius(toyota); - Car bobsPrius = new Car(); - bobsPrius.setModel(prius); - bobsPrius.setRegistrationDate(new GregorianCalendar(2010, Calendar.OCTOBER, 28)); - bobsPrius.setMarketValue(new CurrencyAmount(1700, "USD")); - bobsPrius.setOwner(bob); - bob.setCars(Collections.singleton(bobsPrius)); + Car bobsPrius = bobsPrius(bob, prius); personDAO.save(bob); personDAO.save(alice()); personDAO.save(chuck()); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |