Refactored tests to comply with the API in ApplicationPeriodFacade.

This commit is contained in:
Tom Vahlman 2012-02-15 16:24:12 +01:00
parent ca851cbbcc
commit c81b8bf207

@ -66,8 +66,6 @@ public class TestApplicationPeriodDao {
private Project project;
private Student student1Author;
private SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
private ProjectClass master;
@ -78,8 +76,6 @@ public class TestApplicationPeriodDao {
private ApplicationPeriodDao target;
private ProjectIdea createProjectIdea(final ApplicationPeriod applicationPeriod1, final ProjectClass projectClass) {
ProjectIdea projectIdea = new ProjectIdea();
projectIdea.setProjectClass(projectClass);
@ -100,18 +96,18 @@ public class TestApplicationPeriodDao {
return projectDao.save(project);
}
private Role createRole(final User user) {
Role student1Role = new Student();
student1Role.setUser(user);
return roleDao.save(student1Role);
}
@Before
public void startTransaction() throws Exception {
User student1 = new User();
student1 = userDao.save(student1);
Role student1Role = new Student();
student1Role.setUser(student1);
student1Role = roleDao.save(student1Role);
Role student1Role = createRole(student1);
bachelor = createProjectClass(ProjectClass.BACHELOR, "Bachelor", "Bachelor degree thesis project");
master = createProjectClass(ProjectClass.MASTER, "Master", "Master degree thesis project");
phd = createProjectClass(ProjectClass.PHD, "PHD", "PHD thesis project");
@ -124,7 +120,6 @@ public class TestApplicationPeriodDao {
projectIdea1 = createProjectIdea(applicationPeriod1, bachelor);
projectIdea2 = createProjectIdea(applicationPeriod1, bachelor);
projectIdea3 = createProjectIdea(applicationPeriod1, bachelor);
projectClassSet.clear();
projectClassSet.add(bachelor);
applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, date("2011-06-14"), date("2011-07-01")));
@ -146,12 +141,8 @@ public class TestApplicationPeriodDao {
public void testShouldReturnAllProjectIdeasForApplicationPeriod() {
projectIdea1.setDateCreated(date("2011-07-02"));
projectIdea2.setDateCreated(date("2011-06-12"));
List<ProjectIdea> projectIdeas =
target.getProjectIdeas(applicationPeriod);
Assert.assertEquals(Arrays.asList(new ProjectIdea[] { projectIdea2 }),
projectIdeas);
List<ProjectIdea> projectIdeas = target.getProjectIdeas(applicationPeriod);
Assert.assertEquals(Arrays.asList(new ProjectIdea[] { projectIdea2 }), projectIdeas);
}
@Test
@ -163,14 +154,9 @@ public class TestApplicationPeriodDao {
projectIdea2.setProjectClass(master);
projectIdea3.setDateCreated(date("2011-06-12"));
projectIdea3.setProjectClass(phd);
applicationPeriod.getProjectClass().add(phd);
List<ProjectIdea> projectIdeas =
target.getProjectIdeas(applicationPeriod);
Assert.assertEquals(Arrays.asList(new ProjectIdea[] { projectIdea1,
projectIdea3 }), projectIdeas);
List<ProjectIdea> projectIdeas = target.getProjectIdeas(applicationPeriod);
Assert.assertEquals(Arrays.asList(new ProjectIdea[] { projectIdea1, projectIdea3 }), projectIdeas);
}
@Test
@ -180,12 +166,8 @@ public class TestApplicationPeriodDao {
projectIdea1.setDateCreated(date("2011-07-01"));
projectIdea1.setProject(project);
projectIdea2.setDateCreated(date("2011-07-01"));
List<ProjectIdea> projectIdeas =
target.getProjectIdeas(applicationPeriod);
Assert.assertEquals(Arrays.asList(new ProjectIdea[] { projectIdea2 }),
projectIdeas);
List<ProjectIdea> projectIdeas = target.getProjectIdeas(applicationPeriod);
Assert.assertEquals(Arrays.asList(new ProjectIdea[] { projectIdea2 }), projectIdeas);
}
@Test
@ -193,9 +175,7 @@ public class TestApplicationPeriodDao {
@Rollback
public void testShouldOnlyReturnCurrentPeriods() {
Date currentTime = date("2011-07-20");
List<ApplicationPeriod> periods = target.getCurrentPeriods(currentTime);
Assert.assertEquals(Arrays.asList(new ApplicationPeriod[] { applicationPeriod2 }), periods);
}
@ -222,7 +202,7 @@ public class TestApplicationPeriodDao {
cal.set(2011, Calendar.DECEMBER, 7);
cal.set(Calendar.HOUR_OF_DAY, 13);
final Date endDate1 = cal.getTime();
ApplicationPeriod applicationPeriod = applicationPeriodDao.save(createApplicationPeriod(myBachelorSet, startDate1, endDate1));
ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1));
boolean periodRemoved = applicationPeriodFacade.removeApplicationPeriod(applicationPeriod);
Assert.assertFalse(periodRemoved); // should be false
}
@ -240,13 +220,13 @@ public class TestApplicationPeriodDao {
cal.set(2051, Calendar.DECEMBER, 7);
cal.set(Calendar.HOUR_OF_DAY, 13);
final Date endDate1 = cal.getTime();
ApplicationPeriod applicationPeriod = applicationPeriodDao.save(createApplicationPeriod(myBachelorSet, startDate1, endDate1));
ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1));
boolean periodRemoved = applicationPeriodFacade.removeApplicationPeriod(applicationPeriod);
Assert.assertTrue(periodRemoved); // should be true
}
/* 1. create an application period from TODAY and one month forward, the PROJECT CLASSES are THE SAME in this case
/* 1. create an application period from TODAY and one month forward, the PROJECT CLASSES are THE SAME in this case
2. test if there exists any OPEN application period for the project class in the argument */
@Test
@Transactional
@ -258,7 +238,7 @@ public class TestApplicationPeriodDao {
final Date startDate1 = cal.getTime();
cal.set(2012, Calendar.APRIL, 2);
final Date endDate1 = cal.getTime();
applicationPeriodDao.save(createApplicationPeriod(myBachelorSet, startDate1, endDate1));
applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1));
boolean exists = applicationPeriodFacade.openApplicationPeriodsExists(bachelor);
Assert.assertTrue(exists); // should exist
}
@ -325,12 +305,12 @@ should NOT overlap. */
cal.set(2012, Calendar.APRIL, 2);
cal.set(Calendar.HOUR_OF_DAY, 13); // HOUR_OF_DAY is used for the 24 hour clock
final Date endDate1 = cal.getTime();
applicationPeriodDao.save(createApplicationPeriod(myBachelorSet, startDate1, endDate1));
applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1));
cal.set(Calendar.HOUR_OF_DAY, 14);
final Date startDate2 = cal.getTime();
cal.set(2012, Calendar.MAY, 2);
final Date endDate2 = cal.getTime();
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(createApplicationPeriod(myBachelorSet, startDate2, endDate2));
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate2, endDate2)));
Assert.assertFalse(periodOverlap); // should NOT overlap
}
@ -394,12 +374,12 @@ should NOT overlap. */
final Date startDate1 = cal.getTime();
cal.set(2012, Calendar.DECEMBER, 2);
final Date endDate1 = cal.getTime();
applicationPeriodDao.save(createApplicationPeriod(myBachelorSet, startDate1, endDate1));
applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1));
cal.set(2012, Calendar.MAY, 2);
final Date startDate2 = cal.getTime();
cal.set(2012, Calendar.JUNE, 2);
final Date endDate2 = cal.getTime();
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(createApplicationPeriod(myBachelorSet, startDate2, endDate2));
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate2, endDate2)));
Assert.assertTrue(periodOverlap); // should overlap
}
@ -417,8 +397,8 @@ should NOT overlap. */
final Date endDate = cal.getTime();
cal.set(Calendar.HOUR_OF_DAY, 13);
final Date endDate2 = cal.getTime();
applicationPeriodDao.save(createApplicationPeriod(myBachelorSet, startDate, endDate));
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(createApplicationPeriod(myBachelorSet, startDate, endDate2));
applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate, endDate));
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate, endDate2)));
Assert.assertTrue(periodOverlap); // should overlap
}
@ -434,23 +414,16 @@ should NOT overlap. */
final Date startDate = cal.getTime();
cal.set(2012, Calendar.APRIL, 2);
final Date endDate = cal.getTime();
applicationPeriodDao.save(createApplicationPeriod(myBachelorSet, startDate, endDate));
applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate, endDate));
cal.set(Calendar.HOUR_OF_DAY, 13);
final Date endDate2 = cal.getTime();
Set<ProjectClass> multipleProjectClasses = new HashSet<ProjectClass>();
multipleProjectClasses.add(bachelor);
multipleProjectClasses.add(master);
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(createApplicationPeriod(multipleProjectClasses, startDate, endDate2));
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate, endDate2)));
Assert.assertTrue(periodOverlap); // should overlap
}
private ApplicationPeriod createApplicationPeriod(final Set<ProjectClass> projectClassSet, final Date startDate, final Date endDate) {
ApplicationPeriod appPeriod = new ApplicationPeriod();
appPeriod.setStartDate(startDate);
appPeriod.setEndDate(endDate);
appPeriod.setProjectClass(projectClassSet);
return appPeriod;
}
Date createStartDate_1() {
Calendar cal = Calendar.getInstance();