From: <ro...@us...> - 2009-03-10 13:53:55
|
Revision: 76 http://cse-ip.svn.sourceforge.net/cse-ip/?rev=76&view=rev Author: roekens Date: 2009-03-10 13:53:50 +0000 (Tue, 10 Mar 2009) Log Message: ----------- - introduced convenience method for course hierarchy handling - added test for cascading and hierarchy handling Modified Paths: -------------- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-10 13:41:25 UTC (rev 75) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-10 13:53:50 UTC (rev 76) @@ -99,6 +99,25 @@ } } + /** + * Convenience method to add this course as a workgroup to course + * @param course parent course + * @return success of operation + */ + public boolean addAsWorkgroupTo(Course course){ + if (course==null||(course.getParent()!=null)){ + return false; + } + List<Course> workgroups = course.getWorkgroups(); + if (workgroups == null){ + workgroups = new ArrayList<Course>(); + } + workgroups.add(this); + course.setWorkgroups(workgroups); + this.setParent(course); + return true; + } + public String toString() { return new ToStringBuilder(this, ToStringStyle.DEFAULT_STYLE).toString(); } Modified: cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java =================================================================== --- cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-10 13:41:25 UTC (rev 75) +++ cse-ip/trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-10 13:53:50 UTC (rev 76) @@ -3,6 +3,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertFalse; import org.junit.After; import org.junit.Before; @@ -101,9 +102,23 @@ */ @Test public void testWorkgroupCascading(){ + //check correct cascading on creation of workgroup Course workgroup1 = new Course(); - - + Course workgroup2 = new Course(); + workgroup1.addAsWorkgroupTo(course); + dao.persist(workgroup1); + assertNotNull(workgroup1.getId()); + assertNotNull(course.getId()); + assertNotNull(workgroup1.getParent()); + assertEquals(workgroup1.getParent(), course); + assertNotNull(course.getWorkgroups()); + assertEquals(course.getWorkgroups().get(0), workgroup1); + //check if circular dependency is prevented + assertFalse(workgroup2.addAsWorkgroupTo(workgroup1)); + //check correct deleting cascading + dao.remove(course); + assertNull(dao.find(course.getId())); + assertNull(dao.find(workgroup1.getId())); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |