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