Index: topiatest/src/test/org/codelutin/test2/AppTest.java diff -u topiatest/src/test/org/codelutin/test2/AppTest.java:1.8 topiatest/src/test/org/codelutin/test2/AppTest.java:1.9 --- topiatest/src/test/org/codelutin/test2/AppTest.java:1.8 Thu Aug 11 16:44:28 2005 +++ topiatest/src/test/org/codelutin/test2/AppTest.java Fri Aug 19 16:14:39 2005 @@ -65,6 +65,7 @@ try { companyPS1.findBy_TopiaId_(id); }catch(TopiaException eee){ //Doit renvoyer une exception pour dire le l'objet n'a pas été trouvé + System.err.println(eee.getMessage()); catched = true; } assertTrue(catched); @@ -72,6 +73,7 @@ try { companyPS2.findBy_TopiaId_(id); }catch(TopiaException eee){ //idem + System.err.println(eee.getMessage()); catched = true; } assertTrue(catched); @@ -109,36 +111,50 @@ comp.setName("thimel"); companyPS2.update(comp); - child2.commitTransaction(); - + catched = false; + try { + child2.commitTransaction(); + }catch(TopiaException eee){ //l'objet est en cours de "modif" dans la transaction parente + System.err.println(eee.getMessage()); + catched = true; + } + assertTrue(catched); + + child1.commitTransaction(); + comp = companyPS1.findBy_TopiaId_(id); - assertEquals("thimel", comp.getName()); - comp = companyPS2.findBy_TopiaId_(id); - assertEquals("thimel", comp.getName()); + assertEquals("thim", comp.getName()); +// comp = companyPS2.findBy_TopiaId_(id); //FIXME Le child2 ne peut pas voir les elemes commité par son parent !!! +// assertEquals("thim", comp.getName()); // 3. Même schéma -// child1 = topiaContext.beginTransaction(); -// child2 = child1.beginTransaction(); -// storage = (PersistenceStorageJDBC)child2.getPersistenceHelper().getStorage(); -// -// id = TopiaId.create(TopiaUser.class); -// o = new TopiaPersistenceObject(id); -// o.getData().setField("name", "pousssin"); -// storage.store(child1, o); -// -// o.getData().setField("name", "poussin"); -// storage.store(child2, o); -// -// child2.commitTransaction(); -// -// boolean catched = false; -// try { -// child1.rollbackTransaction(); -// } catch (TopiaPersistenceException tpe) { -// catched = true; -// } -// assertTrue(catched); + child1 = topiaContext.beginTransaction(); + companyPS1 = child1.getCompanyPersistenceService(); + child2 = child1.beginTransaction(); + companyPS2 = child2.getCompanyPersistenceService(); + + comp = companyPS2.create(); + id = comp.get_topiaId_(); + + comp.setName("Thimel"); + companyPS2.update(comp); + try { + companyPS1.findBy_TopiaId_(id); + }catch(TopiaException eee){ //Doit renvoyer une exception pour dire le l'objet n'a pas été trouvé + System.err.println(eee.getMessage()); + catched = true; + } + comp = companyPS2.findBy_TopiaId_(id); + assertEquals("Thimel", comp.getName()); + + child2.commitTransaction(); + + comp = companyPS1.findBy_TopiaId_(id); + assertEquals("Thimel", comp.getName()); + comp = companyPS2.findBy_TopiaId_(id); + assertEquals("Thimel", comp.getName()); + } @@ -358,27 +374,35 @@ } + @SuppressWarnings("unchecked") public void testEmloyee() throws Exception { test2Context ctx = test2Context.getContext().beginTransaction(); EmployeePersistenceService empPS = ctx.getEmployeePersistenceService(); CompanyPersistenceService companyPS = ctx.getCompanyPersistenceService(); - for(Employee emp : empPS.findAll()){ - empPS.delete(emp); - } - assertEquals(0, empPS.findAll().size()); +// for(Employee emp : empPS.findAll()){ +// empPS.delete(emp); +// } +// assertEquals(0, empPS.findAll().size()); - Employee emp = empPS.create(); - emp.setName("Plouhinec"); Company comp = companyPS.create(); - comp.setName("CodeLutin"); - emp.addCompany(comp); - empPS.update(emp); - Collection companies; - companies = emp.getCompany(); - assertEquals(1, companies.size()); - for(Company c: companies){ - assertEquals(emp, c.getEmployee()); + comp.setName("Code Lutin"); + Employee emp; + int nbEmployees = 12; + for(int i=0; i employees; + employees = comp.getEmployee(); + assertEquals(nbEmployees, employees.size()); + for(Employee e: employees){ + assertEquals(comp, e.getCompany()); } + employees = empPS.findAllByCompany(comp); + assertEquals(nbEmployees, employees.size()); } static public void main(String [] args) throws Exception {