From: <ro...@us...> - 2009-04-29 14:56:25
|
Revision: 194 http://cse-ip.svn.sourceforge.net/cse-ip/?rev=194&view=rev Author: roekens Date: 2009-04-29 14:56:22 +0000 (Wed, 29 Apr 2009) Log Message: ----------- added tests and implementation for DeleteReferenceVisitor concerning entity: category Modified Paths: -------------- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitor.java Added Paths: ----------- 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/DeleteReferenceVisitor.java =================================================================== --- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitor.java 2009-04-29 14:35:26 UTC (rev 193) +++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitor.java 2009-04-29 14:56:22 UTC (rev 194) @@ -1,5 +1,7 @@ package de.campussource.cse.cdmm.domain; +import javax.management.remote.TargetedNotification; + import org.apache.commons.lang.NotImplementedException; /** @@ -12,7 +14,15 @@ private ReferenceType type; - private Entity target; + /** + * represents associated target entity in persistence + */ + private Entity persistentTarget; + + /** + * represents associated target entity in given object structure + */ + private Entity associatedTarget; /** * @@ -21,16 +31,17 @@ * @param type * of reference that will be added */ - public DeleteReferenceVisitor(Entity target, ReferenceType type) { + public DeleteReferenceVisitor(Entity persistentTarget, Entity associatedTarget, ReferenceType type) { this.type = type; - this.target = target; + this.persistentTarget = persistentTarget; + this.associatedTarget = associatedTarget; } @Override public void visit(Account account) { switch (type) { case GROUP: - account.removeFromGroup((Group) target); + account.removeFromGroup((Group) persistentTarget); break; case ROLE: //FIXME how to set role if only account is known - setting of roles has to be discussed @@ -44,11 +55,14 @@ @Override public void visit(Category category) { switch (type) { - case CATEGORY: + case CHILD: + ((Category)persistentTarget).removeFromParentCategory(category); break; case COURSE: + ((Course)persistentTarget).removeFromCategory(category); break; case PARENT: + category.removeFromParentCategory((Category)persistentTarget); break; default: throw new IllegalStateException("Reference type doesn't apply to entity."); Added: 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 (rev 0) +++ trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitorTest.java 2009-04-29 14:56:22 UTC (rev 194) @@ -0,0 +1,38 @@ +package de.campussource.cse.cdmm.domain; + +import static org.junit.Assert.*; + +import org.junit.Test; + +public class DeleteReferenceVisitorTest { + + @Test + public void testDeleteChildCategoryFromCategory(){ + Category category = new Category(); + Category parent = new Category(); + category.addToParentCategory(parent); + parent.accept(new DeleteReferenceVisitor(category, category, ReferenceType.CHILD)); + assertEquals(0, parent.getChildren().size()); + assertNull(category.getParent()); + } + + @Test + public void testDeleteParentCategoryFromCategory(){ + Category category = new Category(); + Category parent = new Category(); + category.addToParentCategory(parent); + category.accept(new DeleteReferenceVisitor(parent, parent, ReferenceType.PARENT)); + assertEquals(0, parent.getChildren().size()); + assertNull(category.getParent()); + } + + @Test + public void testDeleteCourseFromCategory(){ + Category category = new Category(); + Course course = new Course(); + course.addToCategory(category); + category.accept(new DeleteReferenceVisitor(course, course, ReferenceType.COURSE)); + assertNull(course.getParent()); + assertEquals(0, category.getCourses().size()); + } +} Property changes on: trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitorTest.java ___________________________________________________________________ Added: svn:mime-type + text/plain This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |