|
From: <ro...@us...> - 2009-04-29 15:26:07
|
Revision: 197
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=197&view=rev
Author: roekens
Date: 2009-04-29 15:25:49 +0000 (Wed, 29 Apr 2009)
Log Message:
-----------
added tests and implementation for DeleteReferenceVisitor concerning entities: role, account, group
-> DeleteReferenceVisitor should work fine now :-)
Modified Paths:
--------------
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/DeleteReferenceVisitor.java
===================================================================
--- trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitor.java 2009-04-29 15:14:44 UTC (rev 196)
+++ trunk/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitor.java 2009-04-29 15:25:49 UTC (rev 197)
@@ -44,8 +44,7 @@
account.removeFromGroup((Group) persistentTarget);
break;
case ROLE:
- //FIXME how to set role if only account is known - setting of roles has to be discussed
- //((Course)target).addToCategory(category);
+ account.removeRole((Role)persistentTarget);
break;
default:
throw new IllegalStateException("Reference type doesn't apply to entity.");
@@ -93,6 +92,7 @@
public void visit(Group group) {
switch (type){
case MEMBER:
+ ((Account)persistentTarget).removeFromGroup(group);
break;
default:
throw new IllegalStateException("Reference type doesn't apply to entity.");
@@ -101,7 +101,16 @@
@Override
public void visit(Role role) {
- throw new NotImplementedException();
+ switch(type){
+ case COURSE:
+ ((Course)persistentTarget).removeRole(role);
+ break;
+ case ACCOUNT:
+ ((Account)persistentTarget).removeRole(role);
+ 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:14:44 UTC (rev 196)
+++ trunk/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/domain/DeleteReferenceVisitorTest.java 2009-04-29 15:25:49 UTC (rev 197)
@@ -80,27 +80,59 @@
@Test
public void testDeleteCourseFromRole(){
- //FIXME implement me
+ Course course = new Course();
+ Account account = new Account();
+ Role role = new Role();
+ role.setAccount(account);
+ course.addRole(role);
+ role.accept(new DeleteReferenceVisitor(course, course, ReferenceType.COURSE));
+ assertNull(role.getCourse());
+ assertEquals(0, course.getRoles().size());
}
@Test
public void testDeleteAccountFromRole(){
- //FIXME implement me
+ Course course = new Course();
+ Account account = new Account();
+ Role role = new Role();
+ role.setCourse(course);
+ account.addRole(role);
+ role.accept(new DeleteReferenceVisitor(account, account, ReferenceType.ACCOUNT));
+ assertNull(role.getAccount());
+ assertEquals(0, account.getRoles().size());
}
@Test
public void testDeleteRoleFromAccount(){
- //FIXME implement me
+ Course course = new Course();
+ Account account = new Account();
+ Role role = new Role();
+ role.setCourse(course);
+ account.addRole(role);
+ account.accept(new DeleteReferenceVisitor(role, role, ReferenceType.ROLE));
+ assertNull(role.getAccount());
+ assertEquals(0, account.getRoles().size());
}
@Test
public void testDeleteGroupFromAccount(){
- //FIXME implement me
+ Account account = new Account();
+ Group group = new Group();
+ account.addToGroup(group);
+ account.accept(new DeleteReferenceVisitor(group, group, ReferenceType.GROUP));
+ assertEquals(0, group.getMembers().size());
+ assertEquals(0, account.getGroups().size());
+
}
@Test
public void testDeleteMemberFromGroup(){
- //FIXME implement me
+ Account account = new Account();
+ Group group = new Group();
+ account.addToGroup(group);
+ group.accept(new DeleteReferenceVisitor(account, account, ReferenceType.MEMBER));
+ assertEquals(0, group.getMembers().size());
+ assertEquals(0, account.getGroups().size());
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|