From: <ro...@us...> - 2009-03-23 14:03:16
|
Revision: 97 http://cse-ip.svn.sourceforge.net/cse-ip/?rev=97&view=rev Author: roekens Date: 2009-03-23 14:03:06 +0000 (Mon, 23 Mar 2009) Log Message: ----------- - implementation of service bean dmm - integration of new tests - bugfixing IN PROGRESS Modified Paths: -------------- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessage.java trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java Added Paths: ----------- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessageImpl.java Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessage.java =================================================================== --- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessage.java 2009-03-18 08:55:19 UTC (rev 96) +++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessage.java 2009-03-23 14:03:06 UTC (rev 97) @@ -1,5 +1,39 @@ package de.campussource.cse.cdmm; +import java.util.ArrayList; +import java.util.List; + +import de.campussource.cse.cdmm.domain.Entity; + public abstract class CSEMessage{ + private List<Entity> entities; + + private boolean successful; + + public boolean isSuccess() { + return successful; + } + + public void setSuccess(boolean success) { + this.successful = success; + } + + public List<Entity> getEntities() { + return entities; + } + + public void setEntities(List<Entity> entities) { + this.entities = entities; + } + + public void addEntity(Entity entity){ + if (entities == null){ + entities = new ArrayList<Entity>(); + } + if (entity != null){ + entities.add(entity); + } + } + } \ No newline at end of file Added: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessageImpl.java =================================================================== --- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessageImpl.java (rev 0) +++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/CSEMessageImpl.java 2009-03-23 14:03:06 UTC (rev 97) @@ -0,0 +1,5 @@ +package de.campussource.cse.cdmm; + +public class CSEMessageImpl extends CSEMessage{ + +} \ No newline at end of file Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java =================================================================== --- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java 2009-03-18 08:55:19 UTC (rev 96) +++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java 2009-03-23 14:03:06 UTC (rev 97) @@ -1,5 +1,8 @@ package de.campussource.cse.cdmm; +import java.util.ArrayList; +import java.util.List; + import javax.ejb.EJB; import javax.ejb.Stateless; @@ -33,6 +36,14 @@ @Override public CSEMessage deleteAccount(Account account) { + if (account.getGroups()!=null && account.getGroups().size()!=0){ + for (Group group : account.getGroups()){ + List<Account> members = group.getMembers(); + members.remove(account); + group.setMembers(members); + groupDao.persist(group); + } + } accountDao.remove(account); return null; } @@ -51,6 +62,11 @@ @Override public CSEMessage deleteGroup(Group group) { + while (group.getMembers()!=null && group.getMembers().size()!=0){ + Account account = group.getMembers().get(0); + account.removeFromGroup(group); + groupDao.persist(group); + } groupDao.remove(group); return null; } @@ -64,45 +80,59 @@ @Override public CSEMessage retrieveAccount(long accountId) { Account account = accountDao.find(accountId); - return null; + CSEMessage csem = new CSEMessageImpl(); + csem.addEntity(account); + return csem; } @Override public CSEMessage retrieveCategory(long categoryId) { Category category = categoryDao.find(categoryId); + CSEMessage csem = new CSEMessageImpl(); + csem.addEntity(category); //TODO cut subcategories or define new method in dao - return null; + return csem; } @Override public CSEMessage retrieveCategoryHierarchy(long categoryId) { Category category = categoryDao.find(categoryId); - return null; + CSEMessage csem = new CSEMessageImpl(); + csem.addEntity(category); + return csem; } @Override public CSEMessage retrieveCourse(long courseId) { //TODO cut workgroups or define new method in dao Course course = courseDao.find(courseId); - return null; + CSEMessage csem = new CSEMessageImpl(); + csem.addEntity(course); + return csem; } @Override public CSEMessage retrieveCourseHierarchy(long courseId) { Course course = courseDao.find(courseId); - return null; + CSEMessage csem = new CSEMessageImpl(); + csem.addEntity(course); + return csem; } @Override public CSEMessage retrieveGroup(long groupId) { Group group = groupDao.find(groupId); - return null; + CSEMessage csem = new CSEMessageImpl(); + csem.addEntity(group); + return csem; } @Override public CSEMessage retrieveRole(long roleId) { Role role = roleDao.find(roleId); - return null; + CSEMessage csem = new CSEMessageImpl(); + csem.addEntity(role); + return csem; } @Override Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java =================================================================== --- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-18 08:55:19 UTC (rev 96) +++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-23 14:03:06 UTC (rev 97) @@ -58,7 +58,7 @@ if (groups==null){ groups = new ArrayList<Group>(); } - if (groups.contains(group)||group.getMembers().contains(this)){ + if (groups.contains(group)||(group.getMembers()!=null && group.getMembers().contains(this))){ return false; } groups.add(group); Modified: trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java =================================================================== --- trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java 2009-03-18 08:55:19 UTC (rev 96) +++ trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java 2009-03-23 14:03:06 UTC (rev 97) @@ -2,10 +2,17 @@ +import java.util.List; + import org.junit.Before; import org.junit.Test; +import static org.junit.Assert.*; +import de.campussource.cse.cdmm.domain.Account; import de.campussource.cse.cdmm.domain.Category; +import de.campussource.cse.cdmm.domain.Course; +import de.campussource.cse.cdmm.domain.Entity; +import de.campussource.cse.cdmm.domain.Group; import de.campussource.cse.common.test.AbstractPersistentUnitTest; public class DataModelManagerBeanTest extends AbstractPersistentUnitTest { @@ -20,9 +27,101 @@ } @Test - public void testSaveCategory(){ - Category category = new Category(uniqueId()); + public void testCategoryOperations(){ + Long categoryId = uniqueId(); + assertEquals(0, dmm.retrieveCategory(categoryId).getEntities().size()); + Category category = new Category(categoryId); dmm.saveCategory(category); + assertNotNull(dmm.retrieveCategory(categoryId)); + CSEMessage csem = dmm.retrieveCategory(categoryId); + assertNotNull(csem.getEntities()); + for (Entity entity : csem.getEntities()){ + assertTrue(entity instanceof Category); + } + Category retrievedCategory = (Category) csem.getEntities().get(0); + assertEquals(category, retrievedCategory); + dmm.deleteCategory(category); + assertEquals(0, dmm.retrieveCategory(categoryId).getEntities().size()); } + + @Test + public void testCourseOperations(){ + Long courseId = uniqueId(); + assertEquals(0, dmm.retrieveCourse(courseId).getEntities().size()); + Course course = new Course(courseId); + dmm.saveCourse(course); + assertNotNull(dmm.retrieveCourse(courseId)); + CSEMessage csem = dmm.retrieveCourse(courseId); + assertNotNull(csem.getEntities()); + for (Entity entity : csem.getEntities()){ + assertTrue(entity instanceof Course); + } + Course retrievedCourse = (Course) csem.getEntities().get(0); + assertEquals(course, retrievedCourse); + dmm.deleteCourse(course); + assertEquals(0, dmm.retrieveCourse(courseId).getEntities().size()); + } + + @Test + public void testAccountOperations(){ + Long accountId = uniqueId(); + assertEquals(0, dmm.retrieveAccount(accountId).getEntities().size()); + Account account = new Account(accountId); + dmm.saveAccount(account); + assertNotNull(dmm.retrieveAccount(accountId)); + CSEMessage csem = dmm.retrieveAccount(accountId); + assertNotNull(csem.getEntities()); + for (Entity entity : csem.getEntities()){ + assertTrue(entity instanceof Account); + } + Account retrievedAccount = (Account) csem.getEntities().get(0); + assertEquals(account, retrievedAccount); + dmm.deleteAccount(account); + assertEquals(0, dmm.retrieveAccount(accountId).getEntities().size()); + } + + @Test + public void testGroupOperations(){ + Long groupId = uniqueId(); + Long account1Id = uniqueId(); + Long account2Id = uniqueId(); + Account account1 = new Account(account1Id); + Account account2 = new Account(account2Id); + Group group = new Group(groupId); + dmm.saveAccount(account1); + dmm.saveAccount(account2); + assertEquals(1, dmm.retrieveAccount(account1Id).getEntities().size()); + assertEquals(1, dmm.retrieveAccount(account2Id).getEntities().size()); + + account1.addToGroup(group); + account2.addToGroup(group); + + dmm.saveGroup(group); + + CSEMessage csem = dmm.retrieveGroup(groupId); + assertEquals(1, csem.getEntities().size()); + + Group retrievedGroup = (Group) csem.getEntities().get(0); + assertEquals(group, retrievedGroup); + + List<Account> members = retrievedGroup.getMembers(); + assertEquals(2, retrievedGroup.getMembers().size()); + assertTrue(members.contains(account1)); + assertTrue(members.contains(account2)); + + dmm.deleteAccount(account1); + retrievedGroup = (Group) dmm.retrieveGroup(groupId).getEntities().get(0); + assertEquals(1, retrievedGroup.getMembers().size()); + dmm.deleteGroup(retrievedGroup); + assertEquals(0, dmm.retrieveGroup(groupId).getEntities().size()); + assertNotNull(dmm.retrieveAccount(account2Id).getEntities()); + assertEquals(1, dmm.retrieveAccount(account2Id).getEntities().size()); + Account retrievedAccount2 = (Account) dmm.retrieveAccount(account2Id).getEntities().get(0); + List<Group> groups = retrievedAccount2.getGroups(); + if (groups != null && groups.size()!=0){ + fail("Group list should have been empty!"); + } + } + } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |