|
From: <ro...@us...> - 2009-03-24 13:56:31
|
Revision: 98
http://cse-ip.svn.sourceforge.net/cse-ip/?rev=98&view=rev
Author: roekens
Date: 2009-03-24 13:52:47 +0000 (Tue, 24 Mar 2009)
Log Message:
-----------
Massive changes:
- introduction of exceptions for cdmm project
- several bugfixes
- many added tests to improve code coverage
Modified Paths:
--------------
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManager.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/dao/DAO.java
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/DAOJPA.java
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/RoleDao.java
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/Attribute.java
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java
trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java
trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
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/RoleDaoTest.java
Added Paths:
-----------
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerException.java
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/IdNotFoundException.java
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/MissingAttributeException.java
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/MissingParameterException.java
trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CSEMessageTest.java
trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DaoTest.java
trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerExceptionTest.java
trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DomainTest.java
trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/IdNotFoundExceptionTest.java
trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/MissingAttributeExceptionTest.java
trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/MissingParameterExceptionTest.java
Removed Paths:
-------------
trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/EntityDao.java
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManager.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManager.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManager.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -10,52 +10,42 @@
@Remote
public interface DataModelManager {
- public CSEMessage saveCategory(Category category);
+ public CSEMessage saveCategory(Category category) throws DataModelManagerException;
- public CSEMessage saveCategoryHierarchy(Category category);
+ public CSEMessage deleteCategory(Category category) throws DataModelManagerException;
- public CSEMessage deleteCategory(Category category);
+ public CSEMessage retrieveCategory(long categoryId) throws DataModelManagerException;
- public CSEMessage retrieveCategoryHierarchy(long categoryId);
- public CSEMessage retrieveCategory(long categoryId);
+ public CSEMessage saveCourse(Course course) throws DataModelManagerException;
+ public CSEMessage deleteCourse(Course course) throws DataModelManagerException;
- public CSEMessage saveCourse(Course course);
-
- public CSEMessage saveCourseHierarchy(Course course);
-
- public CSEMessage deleteCourse(Course course);
-
- public CSEMessage retrieveCourse(long courseId);
+ public CSEMessage retrieveCourse(long courseId) throws DataModelManagerException;
- public CSEMessage retrieveCourseHierarchy(long courseId);
+ public CSEMessage saveRole(Role role) throws DataModelManagerException;
+ public CSEMessage deleteRole(Role role) throws DataModelManagerException;
+ public CSEMessage retrieveRole(long roleId) throws DataModelManagerException;
- public CSEMessage saveRole(Role role);
+ public CSEMessage retrieveRole(long accountId, long courseId) throws DataModelManagerException;
- public CSEMessage deleteRole(Role role);
- public CSEMessage retrieveRole(long roleId);
- public CSEMessage retrieveRole(long accountId, long courseId);
+ public CSEMessage saveAccount(Account account) throws DataModelManagerException;
+ public CSEMessage deleteAccount(Account account) throws DataModelManagerException;
+ public CSEMessage retrieveAccount(long accountId) throws DataModelManagerException;
- public CSEMessage saveAccount(Account account);
- public CSEMessage deleteAccount(Account account);
+ public CSEMessage retrieveGroup(long groupId) throws DataModelManagerException;
- public CSEMessage retrieveAccount(long accountId);
+ public CSEMessage saveGroup(Group group) throws DataModelManagerException;
+ public CSEMessage deleteGroup(Group group) throws DataModelManagerException;
- public CSEMessage retrieveGroup(long groupId);
- public CSEMessage saveGroup(Group group);
-
- public CSEMessage deleteGroup(Group group);
-
-
}
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-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerBean.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -1,11 +1,14 @@
package de.campussource.cse.cdmm;
-import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
+import org.apache.commons.lang.Validate;
+
import de.campussource.cse.cdmm.dao.*;
import de.campussource.cse.cdmm.domain.Account;
import de.campussource.cse.cdmm.domain.Category;
@@ -26,16 +29,13 @@
private CourseDao courseDao;
@EJB
- private EntityDao entityDao;
-
- @EJB
private GroupDao groupDao;
@EJB
private RoleDao roleDao;
@Override
- public CSEMessage deleteAccount(Account account) {
+ public CSEMessage deleteAccount(Account account) throws DataModelManagerException {
if (account.getGroups()!=null && account.getGroups().size()!=0){
for (Group group : account.getGroups()){
List<Account> members = group.getMembers();
@@ -49,19 +49,19 @@
}
@Override
- public CSEMessage deleteCategory(Category category) {
+ public CSEMessage deleteCategory(Category category) throws DataModelManagerException {
categoryDao.remove(category);
return null;
}
@Override
- public CSEMessage deleteCourse(Course course) {
+ public CSEMessage deleteCourse(Course course) throws DataModelManagerException {
courseDao.remove(course);
return null;
}
@Override
- public CSEMessage deleteGroup(Group group) {
+ public CSEMessage deleteGroup(Group group) throws DataModelManagerException {
while (group.getMembers()!=null && group.getMembers().size()!=0){
Account account = group.getMembers().get(0);
account.removeFromGroup(group);
@@ -72,13 +72,13 @@
}
@Override
- public CSEMessage deleteRole(Role role) {
+ public CSEMessage deleteRole(Role role) throws DataModelManagerException {
roleDao.remove(role);
return null;
}
@Override
- public CSEMessage retrieveAccount(long accountId) {
+ public CSEMessage retrieveAccount(long accountId) throws DataModelManagerException {
Account account = accountDao.find(accountId);
CSEMessage csem = new CSEMessageImpl();
csem.addEntity(account);
@@ -86,7 +86,7 @@
}
@Override
- public CSEMessage retrieveCategory(long categoryId) {
+ public CSEMessage retrieveCategory(long categoryId) throws DataModelManagerException {
Category category = categoryDao.find(categoryId);
CSEMessage csem = new CSEMessageImpl();
csem.addEntity(category);
@@ -95,15 +95,7 @@
}
@Override
- public CSEMessage retrieveCategoryHierarchy(long categoryId) {
- Category category = categoryDao.find(categoryId);
- CSEMessage csem = new CSEMessageImpl();
- csem.addEntity(category);
- return csem;
- }
-
- @Override
- public CSEMessage retrieveCourse(long courseId) {
+ public CSEMessage retrieveCourse(long courseId) throws DataModelManagerException {
//TODO cut workgroups or define new method in dao
Course course = courseDao.find(courseId);
CSEMessage csem = new CSEMessageImpl();
@@ -112,15 +104,7 @@
}
@Override
- public CSEMessage retrieveCourseHierarchy(long courseId) {
- Course course = courseDao.find(courseId);
- CSEMessage csem = new CSEMessageImpl();
- csem.addEntity(course);
- return csem;
- }
-
- @Override
- public CSEMessage retrieveGroup(long groupId) {
+ public CSEMessage retrieveGroup(long groupId) throws DataModelManagerException {
Group group = groupDao.find(groupId);
CSEMessage csem = new CSEMessageImpl();
csem.addEntity(group);
@@ -128,7 +112,7 @@
}
@Override
- public CSEMessage retrieveRole(long roleId) {
+ public CSEMessage retrieveRole(long roleId) throws DataModelManagerException {
Role role = roleDao.find(roleId);
CSEMessage csem = new CSEMessageImpl();
csem.addEntity(role);
@@ -136,50 +120,42 @@
}
@Override
- public CSEMessage retrieveRole(long accountId, long courseId) {
- //TODO define new dao method
- //Role role = roleDao.
- return null;
+ @TransactionAttribute(TransactionAttributeType.REQUIRED)
+ public CSEMessage retrieveRole(long accountId, long courseId) throws DataModelManagerException {
+ Validate.notNull(accountId,"DataModelManagerBean.retrieveRole: Parameter accountId is mandatory.");
+ Validate.notNull(courseId,"DataModelManagerBean.retrieveRole: Parameter courseId is mandatory.");
+ Role role = roleDao.retrieveRole(accountId, courseId);
+ CSEMessage csem = new CSEMessageImpl();
+ csem.addEntity(role);
+ return csem;
}
@Override
- public CSEMessage saveAccount(Account account) {
+ public CSEMessage saveAccount(Account account) throws DataModelManagerException {
accountDao.persist(account);
return null;
}
@Override
- public CSEMessage saveCategory(Category category) {
+ public CSEMessage saveCategory(Category category) throws DataModelManagerException {
categoryDao.persist(category);
return null;
}
@Override
- public CSEMessage saveCategoryHierarchy(Category category) {
- categoryDao.persist(category);
- return null;
- }
-
- @Override
- public CSEMessage saveCourse(Course course) {
+ public CSEMessage saveCourse(Course course) throws DataModelManagerException {
courseDao.persist(course);
return null;
}
@Override
- public CSEMessage saveCourseHierarchy(Course course) {
- courseDao.persist(course);
- return null;
- }
-
- @Override
- public CSEMessage saveGroup(Group group) {
+ public CSEMessage saveGroup(Group group) throws DataModelManagerException {
groupDao.persist(group);
return null;
}
@Override
- public CSEMessage saveRole(Role role) {
+ public CSEMessage saveRole(Role role) throws DataModelManagerException {
roleDao.persist(role);
return null;
}
Added: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerException.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerException.java (rev 0)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/DataModelManagerException.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -0,0 +1,26 @@
+package de.campussource.cse.cdmm;
+
+/**
+ * General CDMM exception
+ * @author Sebastian Roekens
+ */
+public class DataModelManagerException extends Exception {
+
+ private static final long serialVersionUID = -2553188081269164041L;
+
+ public DataModelManagerException() {
+ }
+
+ public DataModelManagerException(String message) {
+ super(message);
+ }
+
+ public DataModelManagerException(Throwable cause) {
+ super(cause);
+ }
+
+ public DataModelManagerException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+}
\ No newline at end of file
Added: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/IdNotFoundException.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/IdNotFoundException.java (rev 0)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/IdNotFoundException.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -0,0 +1,25 @@
+package de.campussource.cse.cdmm;
+
+/**
+ *
+ * @author Sebastian Roekens
+ */
+public class IdNotFoundException extends DataModelManagerException {
+
+ private static final long serialVersionUID = 3260263352045745859L;
+
+ public IdNotFoundException() {}
+
+ public IdNotFoundException(String message) {
+ super(message);
+ }
+
+ public IdNotFoundException(Throwable cause) {
+ super(cause);
+ }
+
+ public IdNotFoundException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+}
Added: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/MissingAttributeException.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/MissingAttributeException.java (rev 0)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/MissingAttributeException.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -0,0 +1,25 @@
+package de.campussource.cse.cdmm;
+
+/**
+ *
+ * @author Sebastian Roekens
+ */
+public class MissingAttributeException extends DataModelManagerException {
+
+ private static final long serialVersionUID = 3260263352045745856L;
+
+ public MissingAttributeException() {}
+
+ public MissingAttributeException(String message) {
+ super(message);
+ }
+
+ public MissingAttributeException(Throwable cause) {
+ super(cause);
+ }
+
+ public MissingAttributeException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+}
Added: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/MissingParameterException.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/MissingParameterException.java (rev 0)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/MissingParameterException.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -0,0 +1,27 @@
+package de.campussource.cse.cdmm;
+
+import de.campussource.cse.cdmm.DataModelManagerException;
+
+/**
+ *
+ * @author Sebastian Roekens
+ */
+public class MissingParameterException extends DataModelManagerException {
+
+ private static final long serialVersionUID = 3260263352045745857L;
+
+ public MissingParameterException() {}
+
+ public MissingParameterException(String message) {
+ super(message);
+ }
+
+ public MissingParameterException(Throwable cause) {
+ super(cause);
+ }
+
+ public MissingParameterException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+}
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/DAO.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/DAO.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/DAO.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -2,12 +2,14 @@
import java.io.Serializable;
+import de.campussource.cse.cdmm.DataModelManagerException;
+
public interface DAO<T> {
- public T find(Serializable id);
+ public T find(Serializable id) throws DataModelManagerException;
- public void persist(T entity);
+ public void persist(T entity) throws DataModelManagerException;
- public void remove(T entity);
+ public void remove(T entity) throws DataModelManagerException;
}
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/DAOJPA.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/DAOJPA.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/DAOJPA.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -2,13 +2,18 @@
import java.io.Serializable;
import java.lang.reflect.ParameterizedType;
+import java.net.IDN;
import javax.ejb.TransactionAttribute;
import javax.ejb.TransactionAttributeType;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
+import de.campussource.cse.cdmm.DataModelManagerException;
+import de.campussource.cse.cdmm.IdNotFoundException;
+import de.campussource.cse.cdmm.MissingParameterException;
+
public abstract class DAOJPA<E> implements DAO<E> {
@PersistenceContext
@@ -22,18 +27,25 @@
@Override
@TransactionAttribute(TransactionAttributeType.SUPPORTS)
- public E find(Serializable id) {
- return entityManager.find(persistentClass, id);
+ public E find(Serializable id) throws DataModelManagerException{
+ E result = entityManager.find(persistentClass, id);
+ if (result == null){
+ throw new IdNotFoundException("Id: "+ id + "could not be found.");
+ }
+ return result;
}
@Override
@TransactionAttribute(TransactionAttributeType.MANDATORY)
- public void persist(E entity) {
+ public void persist(E entity) throws DataModelManagerException{
entityManager.persist(entity);
}
@Override
- public void remove(E entity) {
+ public void remove(E entity) throws DataModelManagerException{
+ if (entity == null){
+ throw new MissingParameterException("Parameter entity is mandatory!");
+ }
entityManager.remove(entity);
}
Deleted: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/EntityDao.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/EntityDao.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/EntityDao.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -1,8 +0,0 @@
-package de.campussource.cse.cdmm.dao;
-
-import de.campussource.cse.cdmm.dao.DAOJPA;
-import de.campussource.cse.cdmm.domain.Entity;
-
-public class EntityDao extends DAOJPA<Entity> {
-
-}
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/RoleDao.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/RoleDao.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/dao/RoleDao.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -1,13 +1,34 @@
package de.campussource.cse.cdmm.dao;
import java.util.List;
+import javax.persistence.NoResultException;
+import javax.persistence.Query;
+
+import de.campussource.cse.cdmm.DataModelManagerException;
+import de.campussource.cse.cdmm.IdNotFoundException;
+import de.campussource.cse.cdmm.MissingAttributeException;
+import de.campussource.cse.cdmm.MissingParameterException;
import de.campussource.cse.cdmm.dao.DAOJPA;
import de.campussource.cse.cdmm.domain.Role;
public class RoleDao extends DAOJPA<Role> {
@Override
- public void remove(Role role){
+ public void persist(Role role) throws MissingAttributeException{
+ if (role.getAccount()==null){
+ throw new MissingAttributeException("RoleDao.persist: account reference for role object missing!");
+ }
+ if (role.getCourse()==null){
+ throw new MissingAttributeException("RoleDao.persist: course reference for role object missing!");
+ }
+ entityManager.persist(role);
+ }
+
+ @Override
+ public void remove(Role role) throws DataModelManagerException{
+ if (role==null){
+ throw new MissingParameterException("Parameter role is mandatory!");
+ }
List<Role> accountRoles = role.getAccount().getRoles();
List<Role> courseRoles = role.getCourse().getRoles();
accountRoles.remove(role);
@@ -17,4 +38,22 @@
persist(role);
super.remove(role);
}
+
+ public Role retrieveRole(long accountId, long courseId) throws DataModelManagerException{
+ if (accountId == 0){
+ throw new MissingParameterException("Paramter accountId is mandatory!");
+ }
+ if (courseId == 0){
+ throw new MissingParameterException("Paramter accountId is mandatory!");
+ }
+ try {
+ Query query = entityManager.createNamedQuery(Role.FIND_BY_ACCOUNT_AND_COURSE);
+ query.setParameter("accountId", accountId);
+ query.setParameter("courseId", courseId);
+ return (Role) query.getSingleResult();
+ } catch (NoResultException nre) {
+ throw new IdNotFoundException("No role with account id: "+accountId+" and course id: "+courseId+" could be found");
+ }
+ }
+
}
\ No newline at end of file
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-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Account.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -44,12 +44,6 @@
setId(id);
}
- public Account(Long id, List<Group> groups, List<Role> roles){
- setId(id);
- this.groups = groups;
- this.roles = roles;
- }
-
public boolean addToGroup(Group group){
if(group==null){
return false;
@@ -77,7 +71,7 @@
return false;
}
List<Group> groups = this.getGroups();
- if (!groups.contains(group)||!group.getMembers().contains(this)){
+ if ((!(groups==null) && !groups.contains(group))||!group.getMembers().contains(this)){
return false;
}
groups.remove(group);
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Attribute.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Attribute.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Attribute.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -27,12 +27,6 @@
public Attribute(){
}
- public Attribute(String name, String value, boolean persistent){
- this.name = name;
- this.value = value;
- this.persistent = persistent;
- }
-
@XmlAttribute(name=Constants.PROPERTY_PERSISTENT)
public boolean isPersistent() {
return persistent;
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Category.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -45,14 +45,6 @@
setId(id);
}
- public Category(Long id, List<Category> children, List<Course> courses, Category parent){
- setId(id);
- this.children = children;
- this.courses = courses;
- this.parent = parent;
- }
-
-
/**
* Convenience method for dependency check to prevent circular dependencies.
* True if circular dependency would be created.
@@ -81,7 +73,7 @@
if (this.children == null){
this.children = new ArrayList<Category>();
}
- if (!category.getParent().equals(this)||checkForCircularDependencies(category)){
+ if (checkForCircularDependencies(category)){
return false;
}
return this.children.add(category);
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Course.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -55,14 +55,6 @@
setId(id);
}
- public Course(Long id, List<Category> categories, Course parent, List<Role> roles, List<Course> workgroups){
- setId(id);
- this.categories = categories;
- this.parent = parent;
- this.roles = roles;
- this.workgroups = workgroups;
- }
-
/**
* Convenience method to add this course to a category.
* Updates category list of course object and course list of category object.
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/EntityContainer.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -1,5 +1,6 @@
package de.campussource.cse.cdmm.domain;
+import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
@@ -52,6 +53,12 @@
@Override
public String toString() {
+ if (courses==null){
+ courses = new ArrayList<Course>();
+ }
+ if (accounts == null){
+ accounts = new ArrayList<Account>();
+ }
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE).append(rootCategory).append(courses.toArray()).append(accounts.toArray()).toString();
}
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Group.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -35,11 +35,6 @@
public Group(Long id){
setId(id);
}
-
- public Group(Long id, List<Account> members){
- setId(id);
- this.members = members;
- }
public boolean equals(Object obj) {
if (this == obj) {
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/main/java/de/campussource/cse/cdmm/domain/Role.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -12,6 +12,8 @@
import javax.persistence.InheritanceType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlIDREF;
@@ -24,6 +26,10 @@
@Entity(name=Constants.ROLE)
@Table(name = Constants.TABLENAME_ROLE)
@Inheritance(strategy=InheritanceType.JOINED)
+@NamedQueries(value = {
+ @NamedQuery(
+ name = "Role.findByAccountAndCourse",
+ query = "select r from role r where r.account.id=:accountId and r.course.id = :courseId")})
@XmlRootElement(namespace=Constants.NAMESPACE_DATATYPES)
@XmlType(propOrder={Constants.TYPE, Constants.ACCOUNT, Constants.COURSE}, namespace=Constants.NAMESPACE_DATATYPES)
public class Role extends de.campussource.cse.cdmm.domain.Entity{
@@ -40,16 +46,11 @@
@JoinColumn(name=Constants.COLUMNNAME_COURSE_ID, nullable=false)
private Course course;
+ public static final String FIND_BY_ACCOUNT_AND_COURSE = "Role.findByAccountAndCourse";
+
public Role(){
}
- public Role(Long id, RoleType type, Account account, Course course ){
- setId(id);
- this.type = type;
- this.account = account;
- this.course = course;
- }
-
/**
* Convenience method to add role to a course and an account.
* Role is added to roles list of course and account object, and
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/AccountDaoTest.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -3,6 +3,7 @@
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
+import static org.junit.Assert.fail;
import org.junit.Before;
import org.junit.Test;
@@ -25,7 +26,11 @@
@Test
public void testPersistAccount() {
- dao.persist(account);
+ try {
+ dao.persist(account);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException");
+ }
assertNotNull(account.getId());
txCommit();
}
@@ -33,26 +38,54 @@
@Test
public void testFindAccount() {
- dao.persist(account);
- assertNotNull(account.getId());
+ try {
+ dao.persist(account);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException");
+ } assertNotNull(account.getId());
commitAndBeginTx();
- Account acid = dao.find(account.getId());
+ Account acid = null;
+ try {
+ acid = dao.find(account.getId());
+ } catch (DataModelManagerException e) {
+ fail("Created account could not be found");
+ }
assertEquals(account, acid);
}
@Test
public void testRemoveAccount() {
- dao.persist(account);
- assertNotNull(account.getId());
+ try {
+ dao.persist(account);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException");
+ } assertNotNull(account.getId());
commitAndBeginTx();
- dao.remove(account);
+ try {
+ dao.remove(account);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelMaangerException");
+ }
commitAndBeginTx();
- assertNull(dao.find(account.getId()));
+ try {
+ @SuppressWarnings("unused")
+ Account retrievedAccount = dao.find(account.getId());
+ fail("Deleting of account failed");
+ } catch (DataModelManagerException e) {
+ // Exception should occur;
+ }
+
}
@Test
public void testDoNotFindById() {
- Account foundAccount = dao.find(0L);
+ Account foundAccount = null;
+ try {
+ foundAccount = dao.find(0L);
+ fail("Exception should occur");
+ } catch (DataModelManagerException e) {
+ //Exception should occur
+ }
assertNull(foundAccount);
}
Added: trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CSEMessageTest.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CSEMessageTest.java (rev 0)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CSEMessageTest.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -0,0 +1,57 @@
+package de.campussource.cse.cdmm;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Test;
+
+import de.campussource.cse.cdmm.domain.Account;
+import de.campussource.cse.cdmm.domain.Entity;
+
+
+import junit.framework.TestCase;
+
+/**
+ * Test CSEMessage class
+ * trivial atm, but may be important if CSEMessage gets more complex
+ * @author Sebastian Roekens
+ *
+ */
+public class CSEMessageTest extends TestCase{
+
+ @Test
+ public void testCSEMessage(){
+ CSEMessage csem = new CSEMessageImpl();
+
+ csem.setSuccess(true);
+ assertTrue(csem.isSuccess());
+
+ List<Entity> entities = new ArrayList<Entity>();
+ Account acc1 = new Account(1L);
+ Account acc2 = new Account(2L);
+ Account acc3 = new Account(3L);
+ entities.add(acc1);
+ entities.add(acc2);
+
+ csem.setEntities(entities);
+ assertEquals(2, csem.getEntities().size());
+ assertTrue(csem.getEntities().contains(acc1));
+ assertTrue(csem.getEntities().contains(acc2));
+
+
+ csem.addEntity(acc3);
+ assertEquals(3, csem.getEntities().size());
+ assertTrue(csem.getEntities().contains(acc3));
+
+ csem.setEntities(null);
+ csem.addEntity(acc1);
+ assertEquals(1, csem.getEntities().size());
+ assertTrue(csem.getEntities().contains(acc1));
+
+
+ }
+
+
+
+
+}
\ No newline at end of file
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CategoryDaoTest.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -5,6 +5,7 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
import org.junit.After;
import org.junit.Before;
@@ -43,7 +44,11 @@
*/
@Test
public void testPersistCategory() {
- dao.persist(category);
+ try {
+ dao.persist(category);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException on creation of category");
+ }
assertNotNull(category.getId());
}
@@ -53,9 +58,17 @@
*/
@Test
public void testFindCategory() {
- dao.persist(category);
- assertNotNull(category.getId());
- Category coid = dao.find(category.getId());
+ try {
+ dao.persist(category);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException on creation of category");
+ } assertNotNull(category.getId());
+ Category coid = null;
+ try {
+ coid = dao.find(category.getId());
+ } catch (DataModelManagerException e) {
+ fail("Created category could not be retrieved");
+ }
assertEquals(category, coid);
}
@@ -64,10 +77,23 @@
*/
@Test
public void testRemoveCategory() {
- dao.persist(category);
- assertNotNull(category.getId());
- dao.remove(category);
- assertNull(dao.find(category.getId()));
+ try {
+ dao.persist(category);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException on creation of category");
+ } assertNotNull(category.getId());
+ try {
+ dao.remove(category);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException");
+ }
+ try {
+ @SuppressWarnings("unused")
+ Category retrievedCategory = dao.find(category.getId());
+ fail("Deleting of category failed");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
}
/**
@@ -76,14 +102,33 @@
@Test
public void testCascading(){
category.addToParentCategory(parentCategory);
- dao.persist(category);
- assertNotNull(category.getId());
+ try {
+ dao.persist(category);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException on creation of category");
+ } assertNotNull(category.getId());
assertNotNull(parentCategory.getId());
assertEquals(category.getParent(), parentCategory);
assertEquals(parentCategory.getChildren().get(0), category);
- dao.remove(parentCategory);
- assertNull(dao.find(parentCategory.getId()));
- assertNull(dao.find(category.getId()));
+ try {
+ dao.remove(parentCategory);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException");
+ }
+ try {
+ @SuppressWarnings("unused")
+ Category retrievedParentCategory = dao.find(parentCategory.getId());
+ fail("Deleting of parent category failed");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
+ try {
+ @SuppressWarnings("unused")
+ Category retrievedCategory = dao.find(category.getId());
+ fail("Cascaded deleting of child category failed");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
}
/**
@@ -91,7 +136,13 @@
*/
@Test
public void testDoNotFindById() {
- Category foundCategory = dao.find(0L);
+ Category foundCategory = null;
+ try {
+ foundCategory = dao.find(0L);
+ fail("Exception should occur");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
assertNull(foundCategory);
}
@@ -101,7 +152,11 @@
@Test
public void testCircularDependencyCheck(){
assertTrue(category.addToParentCategory(parentCategory));
- dao.persist(category);
+ try {
+ dao.persist(category);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException on creation of category");
+ }
assertFalse(parentCategory.addToParentCategory(category));
}
Modified: trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/CourseDaoTest.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -4,6 +4,7 @@
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.fail;
import org.junit.After;
import org.junit.Before;
@@ -41,7 +42,11 @@
*/
@Test
public void testPersistCourse() {
- dao.persist(course);
+ try {
+ dao.persist(course);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException!");
+ }
assertNotNull(course.getId());
}
@@ -51,10 +56,19 @@
*/
@Test
public void testFindCourse() {
- dao.persist(course);
+ try {
+ dao.persist(course);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException!");
+ }
assertNotNull(course.getId());
commitAndBeginTx();
- Course coid = dao.find(course.getId());
+ Course coid = null;
+ try {
+ coid = dao.find(course.getId());
+ } catch (DataModelManagerException e) {
+ fail("Creating or retrieving of course failed!");
+ }
assertEquals(course, coid);
}
@@ -63,10 +77,24 @@
*/
@Test
public void testRemoveCourse() {
- dao.persist(course);
+ try {
+ dao.persist(course);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException!");
+ }
assertNotNull(course.getId());
- dao.remove(course);
- assertNull(dao.find(course.getId()));
+ try {
+ dao.remove(course);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException!");
+ }
+ try {
+ @SuppressWarnings("unused")
+ Course retrievedCourse = dao.find(course.getId());
+ fail("Deleting of course failed");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
}
/**
@@ -74,7 +102,13 @@
*/
@Test
public void testDoNotFindById() {
- Course foundCourse = dao.find(0L);
+ Course foundCourse = null;
+ try {
+ foundCourse = dao.find(0L);
+ fail("Exception should occur");
+ } catch (DataModelManagerException e) {
+ //Exception should occur
+ }
assertNull(foundCourse);
}
@@ -86,10 +120,18 @@
Category category = new Category();
CategoryDao categoryDao = new CategoryDao();
autowireByType(categoryDao);
- categoryDao.persist(category);
+ try {
+ categoryDao.persist(category);
+ } catch (DataModelManagerException e1) {
+ fail("Unexpected DataModelManagerException");
+ }
assertNotNull(category.getId());
course.addToCategory(category);
- dao.persist(course);
+ try {
+ dao.persist(course);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException!");
+ }
assertNotNull(course.getId());
assertNotNull(course.getCategories());
assertNotNull(category.getCourses());
@@ -106,7 +148,11 @@
Course workgroup1 = new Course();
Course workgroup2 = new Course();
workgroup1.addAsWorkgroupTo(course);
- dao.persist(workgroup1);
+ try {
+ dao.persist(workgroup1);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException");
+ }
assertNotNull(workgroup1.getId());
assertNotNull(course.getId());
assertNotNull(workgroup1.getParent());
@@ -116,9 +162,25 @@
//check if circular dependency is prevented
assertFalse(workgroup2.addAsWorkgroupTo(workgroup1));
//check correct deleting cascading
- dao.remove(course);
- assertNull(dao.find(course.getId()));
- assertNull(dao.find(workgroup1.getId()));
+ try {
+ dao.remove(course);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected Exception on removing of course");
+ }
+ try {
+ @SuppressWarnings("unused")
+ Course retrievedCourse = dao.find(course.getId());
+ fail("Deleting of course failed");
+ } catch (DataModelManagerException e) {
+ //Exception should occur
+ }
+ try {
+ @SuppressWarnings("unused")
+ Course retrievedWorkgroup = dao.find(workgroup1.getId());
+ fail("Cascaded deleting of workgroup failed");
+ } catch (DataModelManagerException e) {
+ //Exception should occur
+ }
}
Added: trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DaoTest.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DaoTest.java (rev 0)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DaoTest.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -0,0 +1,31 @@
+package de.campussource.cse.cdmm;
+
+import static org.junit.Assert.fail;
+
+import org.junit.Before;
+import org.junit.Test;
+
+import de.campussource.cse.cdmm.dao.AccountDao;
+import de.campussource.cse.cdmm.domain.Entity;
+import de.campussource.cse.common.test.AbstractPersistentUnitTest;
+
+public class DaoTest extends AbstractPersistentUnitTest {
+ private AccountDao accountDao;
+
+ @Before
+ public void setUp() {
+ accountDao = new AccountDao();
+ autowireByType(accountDao);
+ txBegin();
+ }
+
+ @Test
+ public void testAccountDao(){
+ try {
+ accountDao.remove(null);
+ fail("Exception should occur");
+ } catch (DataModelManagerException e) {
+ }
+ }
+
+}
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-23 14:03:06 UTC (rev 97)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerBeanTest.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -4,6 +4,12 @@
import java.util.List;
+import javax.ejb.TransactionAttribute;
+import javax.ejb.TransactionAttributeType;
+import javax.persistence.NoResultException;
+import javax.persistence.Query;
+
+import org.apache.commons.lang.Validate;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
@@ -13,6 +19,7 @@
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.cdmm.domain.Role;
import de.campussource.cse.common.test.AbstractPersistentUnitTest;
public class DataModelManagerBeanTest extends AbstractPersistentUnitTest {
@@ -29,55 +36,124 @@
@Test
public void testCategoryOperations(){
Long categoryId = uniqueId();
- assertEquals(0, dmm.retrieveCategory(categoryId).getEntities().size());
+ CSEMessage csem = null;
+ try {
+ csem = dmm.retrieveCategory(categoryId);
+ fail("DataModelManagerException expected");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
+ assertNull(csem);
Category category = new Category(categoryId);
- dmm.saveCategory(category);
- assertNotNull(dmm.retrieveCategory(categoryId));
- CSEMessage csem = dmm.retrieveCategory(categoryId);
+ try {
+ dmm.saveCategory(category);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException Exception");
+ }
+ try {
+ csem = dmm.retrieveCategory(categoryId);
+ } catch (DataModelManagerException e) {
+ fail("Creating or retrieving of category failed");
+ }
+ assertNotNull(csem);
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());
+ try {
+ dmm.deleteCategory(category);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException Exception");
+ }
+ try {
+ csem = dmm.retrieveCategory(categoryId);
+ fail("DataModelManagerException should have occured");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
}
@Test
public void testCourseOperations(){
Long courseId = uniqueId();
- assertEquals(0, dmm.retrieveCourse(courseId).getEntities().size());
+ CSEMessage csem = null;
+ try {
+ csem = dmm.retrieveCourse(courseId);
+ fail("DataModelManager Exception should occur");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
Course course = new Course(courseId);
- dmm.saveCourse(course);
- assertNotNull(dmm.retrieveCourse(courseId));
- CSEMessage csem = dmm.retrieveCourse(courseId);
+ try {
+ dmm.saveCourse(course);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManagerException");
+ }
+ try {
+ csem = dmm.retrieveCourse(courseId);
+ } catch (DataModelManagerException e) {
+ fail("Creation or retrieving of course failed");
+ }
+ assertNotNull(csem);
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());
+ try {
+ dmm.deleteCourse(course);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManager Exception");
+ }
+ try {
+ csem = dmm.retrieveCourse(courseId);
+ fail("Deleting of course failed");
+ } catch (DataModelManagerException e) {
+ //Exception should occur
+ }
}
@Test
public void testAccountOperations(){
Long accountId = uniqueId();
- assertEquals(0, dmm.retrieveAccount(accountId).getEntities().size());
+ CSEMessage csem = null;
+ try {
+ csem = dmm.retrieveAccount(accountId);
+ fail("Not Existing object found");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
Account account = new Account(accountId);
- dmm.saveAccount(account);
- assertNotNull(dmm.retrieveAccount(accountId));
- CSEMessage csem = dmm.retrieveAccount(accountId);
+ try {
+ dmm.saveAccount(account);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManager Exception");
+ }
+ try {
+ csem = dmm.retrieveAccount(accountId);
+ } catch (DataModelManagerException e) {
+ fail("Creating or retrieving of account object failed");
+ }
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());
+ try {
+ dmm.deleteAccount(account);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManager Exception");
+ }
+ try {
+ csem = dmm.retrieveAccount(accountId);
+ fail("Deleting of account failed");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
}
@Test
@@ -88,17 +164,46 @@
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());
+ try {
+ dmm.saveAccount(account1);
+ dmm.saveAccount(account2);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManager Exception");
+ }
+ CSEMessage csem = null;
+ try {
+ csem = dmm.retrieveAccount(account1Id);
+ } catch (DataModelManagerException e) {
+ fail("Creating or retrieving of account failed");
+ }
+ assertNotNull(csem);
+ assertEquals(1, csem.getEntities().size());
+
+ csem = null;
+ try {
+ csem = dmm.retrieveAccount(account2Id);
+ } catch (DataModelManagerException e) {
+ fail("Creating or retrieving of account failed");
+ }
+ assertNotNull(csem);
+ assertEquals(1, csem.getEntities().size());
account1.addToGroup(group);
account2.addToGroup(group);
- dmm.saveGroup(group);
+ try {
+ dmm.saveGroup(group);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManager Exception");
+ }
+ csem = null;
- CSEMessage csem = dmm.retrieveGroup(groupId);
+ try {
+ csem = dmm.retrieveGroup(groupId);
+ } catch (DataModelManagerException e) {
+ fail("Creating or retrieving of group failed");
+ }
+ assertNotNull(csem);
assertEquals(1, csem.getEntities().size());
Group retrievedGroup = (Group) csem.getEntities().get(0);
@@ -109,19 +214,108 @@
assertTrue(members.contains(account1));
assertTrue(members.contains(account2));
- dmm.deleteAccount(account1);
- retrievedGroup = (Group) dmm.retrieveGroup(groupId).getEntities().get(0);
+ try {
+ dmm.deleteAccount(account1);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManager Exception");
+ }
+ csem = null;
+ try {
+ csem = dmm.retrieveGroup(groupId);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManager Exception");
+ }
+ assertNotNull(csem);
+ assertEquals(1, csem.getEntities().size());
+ retrievedGroup = (Group) csem.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);
+ try {
+ dmm.deleteGroup(retrievedGroup);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManager Exception");
+ }
+ csem = null;
+ try {
+ csem = dmm.retrieveGroup(groupId);
+ fail("Deleting of group failed");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
+ csem = null;
+ try {
+ csem = dmm.retrieveAccount(account2Id);
+ } catch (DataModelManagerException e) {
+ fail("Account shouldn't be deleted");
+ }
+ assertNotNull(csem);
+ assertEquals(1, csem.getEntities().size());
+ Account retrievedAccount2 = (Account) csem.getEntities().get(0);
List<Group> groups = retrievedAccount2.getGroups();
if (groups != null && groups.size()!=0){
fail("Group list should have been empty!");
}
}
-
+
+ @Test
+ public void testRoleOperations(){
+ long roleId = uniqueId();
+ CSEMessage csem = null;
+ try {
+ csem = dmm.retrieveRole(roleId);
+ fail("Exception should occur");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
+ assertNull(csem);
+ Role role = new Role(roleId);
+ try {
+ dmm.saveRole(role);
+ fail("Creating of role without account and course reference should be impossible");
+ } catch (DataModelManagerException e) {
+ //Exception should occur;
+ }
+ Account account = new Account (uniqueId());
+ Course course = new Course (uniqueId());
+ try{
+ dmm.saveAccount(account);
+ dmm.saveCourse(course);
+ } catch (DataModelManagerException e){
+ fail("Unexpected DataModelManager Exception");
+ }
+ role.addToCourseAndAccount(course, account);
+ try {
+ dmm.saveRole(role);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManager Exception");
+ }
+ csem = null;
+ try {
+ csem = dmm.retrieveRole(roleId);
+ } catch (DataModelManagerException e) {
+ fail("Creating or retrieving of role failed");
+ }
+ assertNotNull(csem);
+ assertEquals(1, csem.getEntities().size());
+ assertEquals(role, csem.getEntities().get(0));
+
+ try {
+ dmm.deleteRole(role);
+ } catch (DataModelManagerException e) {
+ fail("Unexpected DataModelManager Exception");
+ }
+ csem = null;
+ try {
+ csem = dmm.retrieveRole(roleId);
+ fail("Deleting of role failed");
+ } catch (DataModelManagerException e) {
+ // Exception should occur
+ }
+ }
+
+ @Test
+ public void testRoleQueries(){
+
+ }
+
}
\ No newline at end of file
Added: trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerExceptionTest.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerExceptionTest.java (rev 0)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DataModelManagerExceptionTest.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -0,0 +1,39 @@
+package de.campussource.cse.cdmm;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * @author Sebastian Roekens
+ */
+public class DataModelManagerExceptionTest {
+
+ @Test
+ public void testDefaultConstructor() {
+ Exception e = new IdNotFoundException();
+ assertNotNull(e);
+ }
+
+ @Test
+ public void testMessageConstructor() {
+ Exception e = new DataModelManagerException("message");
+ assertEquals("message", e.getMessage());
+ }
+
+ @Test
+ public void testCauseConstructor() {
+ Exception e = new DataModelManagerException("message");
+ Exception e2 = new DataModelManagerException(e);
+ assertEquals(e,e2.getCause());
+ }
+
+ @Test
+ public void testMessageCauseConstructor() {
+ Exception e = new DataModelManagerException("message");
+ Exception e2 = new DataModelManagerException("message", e);
+ assertEquals(e, e2.getCause());
+ assertEquals("message", e2.getMessage());
+ }
+
+}
\ No newline at end of file
Added: trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DomainTest.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DomainTest.java (rev 0)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/DomainTest.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -0,0 +1,125 @@
+package de.campussource.cse.cdmm;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.junit.Test;
+
+import de.campussource.cse.cdmm.domain.Account;
+import de.campussource.cse.cdmm.domain.Attribute;
+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.EntityContainer;
+import de.campussource.cse.cdmm.domain.Group;
+import de.campussource.cse.cdmm.domain.PersistentAttribute;
+import de.campussource.cse.cdmm.domain.Role;
+import de.campussource.cse.cdmm.domain.RoleType;
+import de.campussource.cse.cdmm.domain.TransientAttribute;
+
+import junit.framework.TestCase;
+
+/**
+ * Tests to cover code of entity classes not handled in dao tests
+ * @author Sebastian Roekens
+ *
+ */
+public class DomainTest extends TestCase{
+
+ @Test
+ public void testAccountEntity(){
+ Account account = new Account();
+ Group group = new Group();
+
+ //test isInGroup method
+ assertFalse(account.isInGroup(group));
+ assertFalse(account.isInGroup(null));
+ group.setMembers(new ArrayList<Account>());
+ assertFalse(account.isInGroup(group));
+
+ //test removeFromGroupMethod and addToGroup
+ assertFalse(account.removeFromGroup(null));
+ assertFalse(account.removeFromGroup(group));
+ assertFalse(account.addToGroup(null));
+ List<Account> members = group.getMembers();
+ members.add(account);
+ group.setMembers(members);
+ assertFalse(account.addToGroup(group));
+ account = new Account(1l);
+ group = new Group();
+ assertTrue(account.addToGroup(group));
+ assertFalse(account.addToGroup(group));
+ }
+
+ @Test
+ public void testCourseEntity(){
+ Course course = new Course();
+ Category category = new Category();
+ assertFalse(course.addToCategory(null));
+ assertTrue(course.addToCategory(category));
+
+ course = new Course();
+ category = new Category();
+ List<Category> categories = new ArrayList<Category>();
+ categories.add(category);
+ course.addToCagetories(categories);
+
+ assertFalse(course.addAsWorkgroupTo(null));
+ Course parentCourse = new Course();
+ assertTrue(course.addAsWorkgroupTo(parentCourse));
+ Course childCourse = new Course();
+ assertFalse(childCourse.addAsWorkgroupTo(course));
+ }
+
+ @Test
+ public void testEntityEntity(){
+ Entity entity = new Entity();
+ assertFalse(entity.equals(null));
+ assertNotNull(entity.hashCode());
+ entity = new Entity(1L);
+ Attribute att1 = new Attribute();
+ att1.setPersistent(true);
+ Attribute att2 = new Attribute();
+ att2.setPersistent(false);
+ List<Attribute> attribs = new ArrayList<Attribute>();
+ attribs.add(att1); attribs.add(att2);
+ entity.setAttributes(attribs);
+ }
+
+ @Test
+ public void testEntityContainerEntity(){
+ EntityContainer container = new EntityContainer();
+ assertNotNull(container.toString());
+ assertNotNull(container.toString());
+ }
+
+ @Test
+ public void testGroupEntity(){
+ Group group1 = new Group();
+ Group group2 = new Group();
+ assertFalse(group1.equals(null));
+ assertFalse(group1.equals(group2));
+ assertNotNull(group1.hashCode());
+ }
+
+ @Test
+ public void testPersistentAttribute(){
+ PersistentAttribute persatt = new PersistentAttribute();
+ assertNull(persatt.getEntity());
+ TransientAttribute transatt = new TransientAttribute();
+ assertFalse(persatt.equals(transatt));
+ }
+
+ @Test
+ public void testRoleEntity(){
+ Role role = new Role(1l, RoleType.UNDEFINED);
+ Account account = new Account();
+ Course course = new Course();
+ assertFalse(role.addToCourseAndAccount(null, account));
+ assertFalse(role.addToCourseAndAccount(course, null));
+ assertTrue(role.addToCourseAndAccount(course, account));
+ }
+
+
+
+}
\ No newline at end of file
Added: trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/IdNotFoundExceptionTest.java
===================================================================
--- trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/IdNotFoundExceptionTest.java (rev 0)
+++ trunk/sandbox/cse-ip/sc-cdmm/src/test/java/de/campussource/cse/cdmm/IdNotFoundExceptionTest.java 2009-03-24 13:52:47 UTC (rev 98)
@@ -0,0 +1,39 @@
+package de.campussource.cse.cdmm;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+/**
+ * @author Sebastian Roekens
+ */
+public class IdNotFoundExceptionTest {
+
+ @Test
+ public void testDefaultConstructor() {
+ DataModelManagerException dmme = new IdNotFoundException();
+ assertNotNull(dmme);
+ }
+
+ @Test
+ public void testMessageConstructor() {
+ DataModelManagerException dmme = new IdNotFoundException("message");
+ assertEquals("message", dmme.getMessage());
+ }
+
+ @Test
+ public void testCauseConstructor() {
+ DataModelManagerException dmme = new IdNotFoun...
[truncated message content] |