From: <ro...@us...> - 2009-04-29 15:14:46
|
Revision: 196 http://cse-ip.svn.sourceforge.net/cse-ip/?rev=196&view=rev Author: roekens Date: 2009-04-29 15:14:44 +0000 (Wed, 29 Apr 2009) Log Message: ----------- added tests and implementation for DeleteReferenceVisitor concerning entity: course Modified Paths: -------------- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitor.java trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitorTest.java Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-04-29 15:00:54 UTC (rev 195) +++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-04-29 15:14:44 UTC (rev 196) @@ -117,7 +117,7 @@ if (role == null || role.getAccount()==null){ return false; } - if (roles.contains(role)){ + if (!roles.contains(role)){ return false; } role.removeFromCourseAndAccount(); Modified: trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitor.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitor.java 2009-04-29 15:00:54 UTC (rev 195) +++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitor.java 2009-04-29 15:14:44 UTC (rev 196) @@ -73,12 +73,16 @@ public void visit(Course course) { switch (type) { case CATEGORY: + course.removeFromCategory((Category) persistentTarget); break; case WORKGROUP: + ((Course)persistentTarget).removeAsWorkgroupFrom(course); break; case PARENT: + course.removeAsWorkgroupFrom((Course)persistentTarget); break; case ROLE: + course.removeRole((Role)persistentTarget); break; default: throw new IllegalStateException("Reference type doesn't apply to entity."); Modified: trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitorTest.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitorTest.java 2009-04-29 15:00:54 UTC (rev 195) +++ trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitorTest.java 2009-04-29 15:14:44 UTC (rev 196) @@ -38,22 +38,44 @@ @Test public void testDeleteCategoryFromCourse(){ - //FIXME implement me + Course course = new Course(); + Category category = new Category(); + course.addToCategory(category); + course.accept(new DeleteReferenceVisitor(category, category, ReferenceType.CATEGORY)); + assertEquals(0, course.getCategories().size()); + assertEquals(0, category.getCourses().size()); } @Test public void testDeleteWorkgroupFromCourse(){ - //FIXME implement me + Course course = new Course(); + Course workgroup = new Course(); + workgroup.addAsWorkgroupTo(course); + course.accept(new DeleteReferenceVisitor(workgroup, workgroup, ReferenceType.WORKGROUP)); + assertNull(workgroup.getParent()); + assertEquals(0, course.getWorkgroups().size()); } @Test public void testDeleteParentFromCourse(){ - //FIXME implement me + Course course = new Course(); + Course workgroup = new Course(); + workgroup.addAsWorkgroupTo(course); + workgroup.accept(new DeleteReferenceVisitor(course, course, ReferenceType.PARENT)); + assertNull(workgroup.getParent()); + assertEquals(0, course.getWorkgroups().size()); } @Test public void testDeleteRoleFromCourse(){ - //FIXME implement me + Course course = new Course(); + Account account = new Account(); + Role role = new Role(); + role.setAccount(account); + course.addRole(role); + course.accept(new DeleteReferenceVisitor(role, role, ReferenceType.ROLE)); + assertNull(role.getCourse()); + assertEquals(0, course.getRoles().size()); } @Test This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |