|
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.
|