test för schemaplanerare

git-svn-id: svn://svn.dsv.su.se/scipro/scipro/trunk@336 73ecded7-942e-4092-bab0-0e58ef0ee984
This commit is contained in:
dan-kjel 2011-03-14 13:21:50 +00:00
parent f1adaa014a
commit 82ec752936
4 changed files with 539 additions and 0 deletions

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
default-autowire="byName">
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="testPersistenceUnit" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="eventTemplateDao" class="se.su.dsv.scipro.data.dao.jpa.EventTemplateDaoJPAImp">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="roleDao" class="se.su.dsv.scipro.data.dao.jpa.RoleDaoJPAImp">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="userDao" class="se.su.dsv.scipro.data.dao.jpa.UserDaoJPAImp">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="scheduleTemplateDao" class="se.su.dsv.scipro.data.dao.jpa.ScheduleTemplateDaoJPAImp">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
</beans>

@ -0,0 +1,205 @@
package se.su.dsv.scipro.dao.jpa;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import se.su.dsv.scipro.data.dao.interfaces.EventTemplateDao;
import se.su.dsv.scipro.data.dao.interfaces.RoleDao;
import se.su.dsv.scipro.data.dao.interfaces.ScheduleTemplateDao;
import se.su.dsv.scipro.data.dao.interfaces.UserDao;
import se.su.dsv.scipro.data.dataobjects.Employee;
import se.su.dsv.scipro.data.dataobjects.EventTemplate;
import se.su.dsv.scipro.data.dataobjects.GroupEventTemplate;
import se.su.dsv.scipro.data.dataobjects.ProjectEventTemplate;
import se.su.dsv.scipro.data.dataobjects.ScheduleTemplate;
import se.su.dsv.scipro.data.dataobjects.SysAdmin;
import se.su.dsv.scipro.data.dataobjects.User;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class TestEventTemplateDaoJPA {
@Autowired
private EventTemplateDao eventTemplateDao;
@Autowired
private UserDao userDao;
@Autowired
private RoleDao roleDao;
@Autowired
private ScheduleTemplateDao scheduleTemplateDao;
private ProjectEventTemplate projectEventTemplate;
private ProjectEventTemplate projectEventTemplateSysAdmin;
private GroupEventTemplate groupEventTemplate;
private GroupEventTemplate groupEventTemplateSysAdmin;
private User supervisorUser;
private Employee supervisorRole;
private User sysAdminUser;
private SysAdmin sysAdminRole;
private User employeeAndSysAdminUser;
private SysAdmin employeeAndSysAdminUserSysAdminRole;
private Employee employeeAndSysAdminUserEmpRole;
private ProjectEventTemplate pr1;
private GroupEventTemplate gr1;
private ScheduleTemplate sysAdminTemplate;
private ScheduleTemplate employeeTemplate;
@Before
public void startTransaction() {
supervisorUser = new User();
supervisorUser = userDao.save(supervisorUser);
supervisorRole = new Employee();
supervisorRole.setUser(supervisorUser);
supervisorRole = (Employee) roleDao.save(supervisorRole);
sysAdminUser = new User();
sysAdminUser = userDao.save(sysAdminUser);
sysAdminRole = new SysAdmin();
sysAdminRole.setUser(sysAdminUser);
sysAdminRole = (SysAdmin) roleDao.save(sysAdminRole);
sysAdminTemplate = new ScheduleTemplate();
sysAdminTemplate.setCreator(sysAdminUser);
sysAdminTemplate.setSysAdminTemplate(true);
sysAdminTemplate.setTemplateName("Sysadmin template");
sysAdminTemplate = scheduleTemplateDao.save(sysAdminTemplate);
employeeTemplate = new ScheduleTemplate();
employeeTemplate.setCreator(supervisorUser);
employeeTemplate.setSysAdminTemplate(false);
employeeTemplate.setTemplateName("Employee template");
employeeTemplate = scheduleTemplateDao.save(employeeTemplate);
projectEventTemplate = new ProjectEventTemplate();
projectEventTemplate.setTitle("projectEventTemplate title");
projectEventTemplate.setDescription("Project event template description");
projectEventTemplate.setTemplateCreator(supervisorUser);
projectEventTemplate.setScheduleTemplate(employeeTemplate);
projectEventTemplate = (ProjectEventTemplate) eventTemplateDao.save(projectEventTemplate);
projectEventTemplateSysAdmin = new ProjectEventTemplate();
projectEventTemplateSysAdmin.setTitle("projectEventTemplateSysAdmin title");
projectEventTemplateSysAdmin.setDescription("projectEventTemplateSysAdmin description");
projectEventTemplateSysAdmin.setTemplateCreator(sysAdminUser);
projectEventTemplateSysAdmin.setScheduleTemplate(employeeTemplate);
projectEventTemplateSysAdmin = (ProjectEventTemplate) eventTemplateDao.save(projectEventTemplateSysAdmin);
groupEventTemplate = new GroupEventTemplate();
groupEventTemplate.setTitle("groupEventTemplate title");
groupEventTemplate.setDescription("groupEventTemplate description");
groupEventTemplate.setTemplateCreator(supervisorUser);
groupEventTemplate.setScheduleTemplate(employeeTemplate);
groupEventTemplate = (GroupEventTemplate) eventTemplateDao.save(groupEventTemplate);
groupEventTemplateSysAdmin = new GroupEventTemplate();
groupEventTemplateSysAdmin.setTitle("groupEventTemplateSysAdmin title");
groupEventTemplateSysAdmin.setDescription("groupEventTemplateSysAdmin description");
groupEventTemplateSysAdmin.setTemplateCreator(sysAdminUser);
groupEventTemplateSysAdmin.setScheduleTemplate(employeeTemplate);
groupEventTemplateSysAdmin = (GroupEventTemplate) eventTemplateDao.save(groupEventTemplateSysAdmin);
employeeAndSysAdminUser = new User();
employeeAndSysAdminUser = userDao.save(employeeAndSysAdminUser);
employeeAndSysAdminUserSysAdminRole = new SysAdmin();
employeeAndSysAdminUserSysAdminRole.setUser(employeeAndSysAdminUser);
employeeAndSysAdminUserSysAdminRole = (SysAdmin) roleDao.save(employeeAndSysAdminUserSysAdminRole);
employeeAndSysAdminUserEmpRole = new Employee();
employeeAndSysAdminUserEmpRole.setUser(employeeAndSysAdminUser);
employeeAndSysAdminUserEmpRole = (Employee) roleDao.save(employeeAndSysAdminUserEmpRole);
pr1 = new ProjectEventTemplate();
pr1.setTitle("pr1 title");
pr1.setDescription("pr1 description");
pr1.setScheduleTemplate(employeeTemplate);
pr1.setTemplateCreator(employeeAndSysAdminUser);
pr1 = (ProjectEventTemplate) eventTemplateDao.save(pr1);
gr1 = new GroupEventTemplate();
gr1.setTitle("gr1 title");
gr1.setScheduleTemplate(employeeTemplate);
gr1.setDescription("gr1 description");
gr1.setTemplateCreator(employeeAndSysAdminUser);
gr1 = (GroupEventTemplate) eventTemplateDao.save(gr1);
}
/**
* Test method for {@link se.su.dsv.scipro.data.dao.jpa.EventDaoJPAImp#findAll()}.
*/
@Test
@Transactional
@Rollback
public void testFindAll() {
List<EventTemplate> eventTemplates = new ArrayList<EventTemplate>();
eventTemplates.add(projectEventTemplate);
eventTemplates.add(projectEventTemplateSysAdmin);
eventTemplates.add(groupEventTemplate);
eventTemplates.add(groupEventTemplateSysAdmin);
eventTemplates.add(pr1);
eventTemplates.add(gr1);
Assert.assertEquals(eventTemplates, eventTemplateDao.findAll());
}
/**
* Test method for {@link se.su.dsv.scipro.data.dao.jpa.EventDaoJPAImp#countAll()}.
*/
@Test @Transactional
@Rollback
public void testCountAll() {
Assert.assertEquals(6, eventTemplateDao.countAll());
}
/**
* Test method for {@link se.su.dsv.scipro.data.dao.jpa.AbstractDaoJPAImpl#delete(? extends se.su.dsv.scipro.data.dataobjects.DomainObject)}.
*/
@Test @Transactional
@Rollback
public void testDelete() {
eventTemplateDao.delete(projectEventTemplate);
eventTemplateDao.delete(projectEventTemplateSysAdmin);
eventTemplateDao.delete(groupEventTemplate);
eventTemplateDao.delete(groupEventTemplateSysAdmin);
eventTemplateDao.delete(gr1);
eventTemplateDao.delete(pr1);
Assert.assertEquals(0, eventTemplateDao.countAll());
}
/**
* Test method for {@link se.su.dsv.scipro.data.dao.jpa.AbstractDaoJPAImp#load(java.io.Serializable)}.
*/
@Test @Transactional
@Rollback
public void testLoad() {
EventTemplate eventTemplate1 = eventTemplateDao.load(projectEventTemplate.getId());
EventTemplate eventTemplate2 = eventTemplateDao.load(groupEventTemplate.getId());
Assert.assertEquals(eventTemplate1.getId(), projectEventTemplate.getId());
Assert.assertEquals(eventTemplate2.getId(), groupEventTemplate.getId());
}
}

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"
default-autowire="byName">
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="testPersistenceUnit" />
</bean>
<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="scheduleTemplateDao" class="se.su.dsv.scipro.data.dao.jpa.ScheduleTemplateDaoJPAImp">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="eventTemplateDao" class="se.su.dsv.scipro.data.dao.jpa.EventTemplateDaoJPAImp">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="roleDao" class="se.su.dsv.scipro.data.dao.jpa.RoleDaoJPAImp">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="userDao" class="se.su.dsv.scipro.data.dao.jpa.UserDaoJPAImp">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="projectClassDao" class="se.su.dsv.scipro.data.dao.jpa.ProjectClassDaoJPAImp">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
</beans>

@ -0,0 +1,260 @@
package se.su.dsv.scipro.dao.jpa;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import se.su.dsv.scipro.data.dao.interfaces.EventTemplateDao;
import se.su.dsv.scipro.data.dao.interfaces.ProjectClassDao;
import se.su.dsv.scipro.data.dao.interfaces.RoleDao;
import se.su.dsv.scipro.data.dao.interfaces.ScheduleTemplateDao;
import se.su.dsv.scipro.data.dao.interfaces.UserDao;
import se.su.dsv.scipro.data.dataobjects.Employee;
import se.su.dsv.scipro.data.dataobjects.EventTemplate;
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
import se.su.dsv.scipro.data.dataobjects.ProjectEventTemplate;
import se.su.dsv.scipro.data.dataobjects.ScheduleTemplate;
import se.su.dsv.scipro.data.dataobjects.SysAdmin;
import se.su.dsv.scipro.data.dataobjects.User;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class TestScheduleTemplateDaoJPA {
@Autowired
private UserDao userDao;
@Autowired
private RoleDao roleDao;
@Autowired
private ScheduleTemplateDao scheduleTemplateDao;
@Autowired
private EventTemplateDao eventTemplateDao;
@Autowired
private ProjectClassDao projectClassDao;
private User supervisorUser;
private Employee supervisorRole;
private User sysAdminUser;
private SysAdmin sysAdminRole;
private ScheduleTemplate sysAdminTemplate;
private ScheduleTemplate employeeTemplate;
private ScheduleTemplate inactiveTemplate;
private ScheduleTemplate masterTemplate;
private ProjectClass masterClass;
private ProjectEventTemplate projectEventTemplateSysAdmin;
private ProjectEventTemplate projectEventTemplate;
@Before
public void startTransaction(){
supervisorUser = new User();
supervisorUser = userDao.save(supervisorUser);
supervisorRole = new Employee();
supervisorRole.setUser(supervisorUser);
supervisorRole = (Employee) roleDao.save(supervisorRole);
sysAdminUser = new User();
sysAdminUser = userDao.save(sysAdminUser);
sysAdminRole = new SysAdmin();
sysAdminRole.setUser(sysAdminUser);
sysAdminRole = (SysAdmin) roleDao.save(sysAdminRole);
masterClass = new ProjectClass();
masterClass.setName("Master");
masterClass = projectClassDao.save(masterClass);
sysAdminTemplate = new ScheduleTemplate();
sysAdminTemplate.setCreator(sysAdminUser);
sysAdminTemplate.setSysAdminTemplate(true);
sysAdminTemplate.setActive(true);
sysAdminTemplate.setTemplateName("sysAdminTemplate");
sysAdminTemplate = scheduleTemplateDao.save(sysAdminTemplate);
employeeTemplate = new ScheduleTemplate();
employeeTemplate.setCreator(supervisorUser);
employeeTemplate.setSysAdminTemplate(false);
employeeTemplate.setActive(true);
employeeTemplate.setTemplateName("employeeTemplate");
employeeTemplate = scheduleTemplateDao.save(employeeTemplate);
inactiveTemplate = new ScheduleTemplate();
inactiveTemplate.setCreator(supervisorUser);
inactiveTemplate.setSysAdminTemplate(false);
inactiveTemplate.setActive(false);
inactiveTemplate.setTemplateName("inactiveTemplate");
inactiveTemplate = scheduleTemplateDao.save(inactiveTemplate);
masterTemplate = new ScheduleTemplate();
masterTemplate.setCreator(supervisorUser);
masterTemplate.setSysAdminTemplate(false);
masterTemplate.setActive(true);
masterTemplate.setProjectClass(masterClass);
masterTemplate.setTemplateName("masterTemplate");
masterTemplate = scheduleTemplateDao.save(masterTemplate);
projectEventTemplateSysAdmin = new ProjectEventTemplate();
projectEventTemplateSysAdmin.setTitle("projectEventTemplateSysAdmin title");
projectEventTemplateSysAdmin.setDescription("projectEventTemplateSysAdmin description");
projectEventTemplateSysAdmin.setTemplateCreator(sysAdminUser);
//projectEventTemplateSysAdmin.setScheduleTemplate(sysAdminTemplate);
projectEventTemplateSysAdmin = (ProjectEventTemplate) eventTemplateDao.save(projectEventTemplateSysAdmin);
sysAdminTemplate.addEventTemplate(projectEventTemplateSysAdmin);
sysAdminTemplate = scheduleTemplateDao.save(sysAdminTemplate);
projectEventTemplate = new ProjectEventTemplate();
projectEventTemplate.setTitle("projectEventTemplate title");
projectEventTemplate.setDescription("Project event template description");
projectEventTemplate.setTemplateCreator(supervisorUser);
//projectEventTemplate.setScheduleTemplate(employeeTemplate);
projectEventTemplate = (ProjectEventTemplate) eventTemplateDao.save(projectEventTemplate);
employeeTemplate.addEventTemplate(projectEventTemplate);
employeeTemplate = scheduleTemplateDao.save(employeeTemplate);
}
/**
* Test method for {@link se.su.dsv.scipro.data.dao.jpa.EventDaoJPAImp#findAll()}.
*/
@Test
@Transactional
@Rollback
public void testFindAll() {
List<ScheduleTemplate> scheduleTemplates = new ArrayList<ScheduleTemplate>();
scheduleTemplates.add(sysAdminTemplate);
scheduleTemplates.add(employeeTemplate);
scheduleTemplates.add(inactiveTemplate);
scheduleTemplates.add(masterTemplate);
Assert.assertEquals(scheduleTemplates, scheduleTemplateDao.findAll());
List<EventTemplate> eventTemplates = new ArrayList<EventTemplate>();
eventTemplates.add(projectEventTemplateSysAdmin);
eventTemplates.add(projectEventTemplate);
Assert.assertEquals(scheduleTemplates, scheduleTemplateDao.findAll());
Assert.assertEquals(eventTemplates, eventTemplateDao.findAll());
}
/**
* Test method for {@link se.su.dsv.scipro.data.dao.jpa.EventDaoJPAImp#countAll()}.
*/
@Test @Transactional
@Rollback
public void testCountAll() {
Assert.assertEquals(4, scheduleTemplateDao.countAll());
}
/**
* Test method for {@link se.su.dsv.scipro.data.dao.jpa.EventDaoJPAImp#countAll()}.
*/
@Test @Transactional
@Rollback
public void testCountAllEventTemplates() {
Assert.assertEquals(2, eventTemplateDao.countAll());
}
/**
* Test method for {@link se.su.dsv.scipro.data.dao.jpa.EventDaoJPAImp#countAll()}.
*/
@Test @Transactional
@Rollback
public void testCountAllEventTemplatesForSchedule() {
Assert.assertEquals(1, employeeTemplate.getEventTemplates().size());
}
/**
* Test method for {@link se.su.dsv.scipro.data.dao.jpa.AbstractDaoJPAImpl#delete(? extends se.su.dsv.scipro.data.dataobjects.DomainObject)}.
*/
@Test @Transactional
@Rollback
public void testDelete() {
scheduleTemplateDao.delete(employeeTemplate);
scheduleTemplateDao.delete(sysAdminTemplate);
scheduleTemplateDao.delete(masterTemplate);
scheduleTemplateDao.delete(inactiveTemplate);
Assert.assertEquals(0, scheduleTemplateDao.countAll());
}
/**
* Test method for {@link se.su.dsv.scipro.data.dao.jpa.AbstractDaoJPAImpl#delete(? extends se.su.dsv.scipro.data.dataobjects.DomainObject)}.
*/
@Test @Transactional
@Rollback
public void testDeleteCascade() {
scheduleTemplateDao.delete(employeeTemplate);
Assert.assertEquals(3, scheduleTemplateDao.countAll());
Assert.assertEquals(1, eventTemplateDao.countAll());
}
/**
* Test method for {@link se.su.dsv.scipro.data.dao.jpa.AbstractDaoJPAImp#load(java.io.Serializable)}.
*/
@Test @Transactional
@Rollback
public void testLoad() {
ScheduleTemplate s1 = scheduleTemplateDao.load(sysAdminTemplate.getId());
ScheduleTemplate s2 = scheduleTemplateDao.load(employeeTemplate.getId());
Assert.assertEquals(s1.getId(), sysAdminTemplate.getId());
Assert.assertEquals(s2.getId(), employeeTemplate.getId());
}
@Test @Transactional
@Rollback
public void testgetActiveScheduleTemplates() {
List<ScheduleTemplate> scheduleTemplates = new ArrayList<ScheduleTemplate>();
scheduleTemplates.add(employeeTemplate);
scheduleTemplates.add(masterTemplate);
scheduleTemplates.add(sysAdminTemplate);
Assert.assertEquals(scheduleTemplates, scheduleTemplateDao.getScheduleTemplates(null, null, true, null));
}
@Test @Transactional
@Rollback
public void testgetInactiveScheduleTemplates() {
List<ScheduleTemplate> scheduleTemplates = new ArrayList<ScheduleTemplate>();
scheduleTemplates.add(inactiveTemplate);
Assert.assertEquals(scheduleTemplates, scheduleTemplateDao.getScheduleTemplates(null, null, false, null));
}
@Test @Transactional
@Rollback
public void testgetScheduleTemplatesByClass() {
List<ScheduleTemplate> scheduleTemplates = new ArrayList<ScheduleTemplate>();
scheduleTemplates.add(masterTemplate);
Assert.assertEquals(scheduleTemplates, scheduleTemplateDao.getScheduleTemplates(null, null, null, masterClass));
}
@Test @Transactional
@Rollback
public void testgetScheduleTemplatesByCreator() {
List<ScheduleTemplate> scheduleTemplates = new ArrayList<ScheduleTemplate>();
scheduleTemplates.add(sysAdminTemplate);
Assert.assertEquals(scheduleTemplates, scheduleTemplateDao.getScheduleTemplates(sysAdminUser, null, null, null));
}
@Test @Transactional
@Rollback
public void testgetSysAdminScheduleTemplates() {
List<ScheduleTemplate> scheduleTemplates = new ArrayList<ScheduleTemplate>();
scheduleTemplates.add(sysAdminTemplate);
Assert.assertEquals(scheduleTemplates, scheduleTemplateDao.getScheduleTemplates(null, true, null, null));
}
}