Refactored the code for saving an application period..
This commit is contained in:
parent
4f4fb4b93b
commit
0d8b2905f1
src
main/java/se/su/dsv/scipro/match/facade
test/java/se/su/dsv/scipro/match
@ -123,16 +123,15 @@ public class ApplicationPeriodFacade {
|
||||
return appPeriod;
|
||||
}
|
||||
|
||||
public static ApplicationPeriod createApplicationPeriod(final Set<ProjectClass> projectClassSet, final Date startDate, final Date endDate) {
|
||||
Calendar cal = Calendar.getInstance();cal.getTime();
|
||||
final Date startDate__ = (startDate != null ? startDate : cal.getTime());
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
final Date endDate__ = (endDate != null ? endDate : cal.getTime());
|
||||
@Transactional
|
||||
public ApplicationPeriod createApplicationPeriod(final Set<ProjectClass> projectClassSet, final Date startDate, final Date endDate) {
|
||||
Calendar cal = Calendar.getInstance();
|
||||
ApplicationPeriod appPeriod = new ApplicationPeriod();
|
||||
appPeriod.setStartDate(startDate__);
|
||||
appPeriod.setEndDate(endDate__);
|
||||
appPeriod.setStartDate(startDate != null ? startDate : cal.getTime());
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
appPeriod.setEndDate(endDate != null ? endDate : cal.getTime());
|
||||
appPeriod.setProjectClass(projectClassSet);
|
||||
return appPeriod;
|
||||
return applicationPeriodDao.save(appPeriod);
|
||||
}
|
||||
|
||||
// a helper method, to avoid NPEs when using faulty test data
|
||||
|
@ -24,6 +24,9 @@
|
||||
<bean id="projectScheduleDao" class="se.su.dsv.scipro.data.dao.jpa.ProjectScheduleDaoJPAImp">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
</bean>
|
||||
|
||||
<bean id="applicationPeriodFacade" class="se.su.dsv.scipro.match.facade.ApplicationPeriodFacade">
|
||||
</bean>
|
||||
|
||||
<bean id="userDao" class="se.su.dsv.scipro.data.dao.jpa.UserDaoJPAImp">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
|
@ -58,6 +58,9 @@ public class TestGreedyMatchingAlgorithm {
|
||||
@Autowired
|
||||
private ApplicationPeriodDao applicationPeriodDao;
|
||||
|
||||
@Autowired
|
||||
private ApplicationPeriodFacade applicationPeriodFacade;
|
||||
|
||||
private List<ProjectIdea> unmatchedProjectIdeas;
|
||||
private List<Availability> supervisorAvailability;
|
||||
private Weights weights;
|
||||
@ -130,7 +133,7 @@ public class TestGreedyMatchingAlgorithm {
|
||||
Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
|
||||
projectClassSet.add(bachelorProjectClass);
|
||||
projectClassSet.add(masterProjectClass);
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null));
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null);
|
||||
bachelorProjectIdea = createProjectIdea(bachelorProjectClass, applicationPeriod);
|
||||
masterSupervisor = createSupervisor("Birger", "Andersson");
|
||||
masterProjectClass = createProjectClass(ProjectClass.MASTER, "Master", "Master project class");
|
||||
|
@ -63,6 +63,9 @@ public class TestMatcher {
|
||||
@Autowired
|
||||
private ApplicationPeriodDao applicationPeriodDao;
|
||||
|
||||
@Autowired
|
||||
private ApplicationPeriodFacade applicationPeriodFacade;
|
||||
|
||||
@Autowired
|
||||
private LanguageDao languageDao;
|
||||
|
||||
@ -254,7 +257,7 @@ public class TestMatcher {
|
||||
projectClassSet.add(bachelor);
|
||||
projectClassSet.add(master);
|
||||
|
||||
applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null));
|
||||
applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null);
|
||||
projectIdea1 = new ProjectIdea();
|
||||
projectIdea1.setTitle("Project idea 1");
|
||||
projectIdea1.setApplicationPeriod(applicationPeriod);
|
||||
|
@ -113,8 +113,8 @@ public class TestApplicationPeriodDao {
|
||||
|
||||
Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
|
||||
projectClassSet.add(bachelor);
|
||||
applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, date("2011-06-14"), date("2011-07-01")));
|
||||
applicationPeriod2 =applicationPeriodDao.save( ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, date("2011-07-15"), date("2011-08-01")));
|
||||
applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, date("2011-06-14"), date("2011-07-01"));
|
||||
applicationPeriod2 =applicationPeriodFacade.createApplicationPeriod(projectClassSet, date("2011-07-15"), date("2011-08-01"));
|
||||
projectIdea1 = createProjectIdea(applicationPeriod, bachelor);
|
||||
projectIdea2 = createProjectIdea(applicationPeriod, bachelor);
|
||||
projectIdea3 = createProjectIdea(applicationPeriod, bachelor);
|
||||
@ -203,7 +203,7 @@ public class TestApplicationPeriodDao {
|
||||
final Date startDate1 = cal.getTime();
|
||||
cal.add(Calendar.MONDAY, 3);
|
||||
final Date endDate1 = cal.getTime();
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1));
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1);
|
||||
boolean periodRemoved = applicationPeriodFacade.removeApplicationPeriod(applicationPeriod);
|
||||
Assert.assertFalse(periodRemoved); // should be false
|
||||
}
|
||||
@ -223,7 +223,7 @@ public class TestApplicationPeriodDao {
|
||||
final Date startDate1 = cal.getTime();
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
final Date endDate1 = cal.getTime();
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1));
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1);
|
||||
boolean periodRemoved = applicationPeriodFacade.removeApplicationPeriod(applicationPeriod);
|
||||
Assert.assertTrue(periodRemoved); // should be true
|
||||
}
|
||||
@ -242,7 +242,7 @@ there should exist an OPEN "bachelor"application period */
|
||||
final Date startDate1 = cal.getTime();
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
final Date endDate1 = cal.getTime();
|
||||
applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1));
|
||||
applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1);
|
||||
boolean exists = applicationPeriodFacade.openApplicationPeriodsExists(bachelor);
|
||||
Assert.assertTrue(exists); // should exist
|
||||
}
|
||||
@ -260,7 +260,7 @@ there should exist an OPEN "bachelor"application period */
|
||||
final Date startDate1 = cal.getTime();
|
||||
cal.add(Calendar.MONTH, 2);
|
||||
final Date endDate1 = cal.getTime();
|
||||
applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myMasterSet, startDate1, endDate1));
|
||||
applicationPeriodFacade.createApplicationPeriod(myMasterSet, startDate1, endDate1);
|
||||
boolean exists = applicationPeriodFacade.openApplicationPeriodsExists(bachelor);
|
||||
Assert.assertFalse(exists); // should NOT exist
|
||||
}
|
||||
@ -293,12 +293,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(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1));
|
||||
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(applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate2, endDate2)));
|
||||
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate2, endDate2));
|
||||
Assert.assertFalse(periodOverlap); // should NOT overlap
|
||||
}
|
||||
|
||||
@ -317,7 +317,7 @@ should NOT overlap. */
|
||||
final Date startDate1 = cal.getTime();
|
||||
cal.set(2012, Calendar.APRIL, 2);
|
||||
final Date endDate1 = cal.getTime();
|
||||
ApplicationPeriod applicationPeriod1 = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1));
|
||||
ApplicationPeriod applicationPeriod1 = applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1);
|
||||
// edit the period
|
||||
applicationPeriod1.getProjectClass().add(master);
|
||||
cal.set(2012, Calendar.MAY, 2);
|
||||
@ -343,10 +343,10 @@ should NOT overlap. */
|
||||
final Date endDate = cal.getTime();
|
||||
cal.set(Calendar.HOUR_OF_DAY, 14);
|
||||
final Date endDate2 = cal.getTime();
|
||||
applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate, endDate));
|
||||
applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate, endDate);
|
||||
Set<ProjectClass> myMasterSet = new HashSet<ProjectClass>();
|
||||
myMasterSet.add(master);
|
||||
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(ApplicationPeriodFacade.createApplicationPeriod(myMasterSet, startDate, endDate2));
|
||||
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriod(myMasterSet, startDate, endDate2));
|
||||
Assert.assertFalse(periodOverlap); // should NOT overlap
|
||||
}
|
||||
|
||||
@ -364,12 +364,12 @@ should NOT overlap. */
|
||||
final Date startDate1 = cal.getTime();
|
||||
cal.set(2012, Calendar.DECEMBER, 2);
|
||||
final Date endDate1 = cal.getTime();
|
||||
applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate1, endDate1));
|
||||
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(applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate2, endDate2)));
|
||||
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate2, endDate2));
|
||||
Assert.assertTrue(periodOverlap); // should overlap
|
||||
}
|
||||
|
||||
@ -387,13 +387,13 @@ should NOT overlap. */
|
||||
final Date startDate = cal.getTime();
|
||||
cal.set(2012, Calendar.APRIL, 2);
|
||||
final Date endDate = cal.getTime();
|
||||
applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate, endDate));
|
||||
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(applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate, endDate2)));
|
||||
boolean periodOverlap = applicationPeriodFacade.doesPeriodOverlap(applicationPeriodFacade.createApplicationPeriod(myBachelorSet, startDate, endDate2));
|
||||
Assert.assertTrue(periodOverlap); // should overlap
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,9 @@
|
||||
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
</bean>
|
||||
|
||||
<bean id="applicationPeriodFacade" class="se.su.dsv.scipro.match.facade.ApplicationPeriodFacade">
|
||||
</bean>
|
||||
|
||||
<bean id="projectScheduleDao" class="se.su.dsv.scipro.data.dao.jpa.ProjectScheduleDaoJPAImp">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
|
@ -77,6 +77,9 @@ public class TestMatchDao {
|
||||
@Autowired
|
||||
private SupervisorDao supervisorDao;
|
||||
|
||||
@Autowired
|
||||
private ApplicationPeriodFacade applicationPeriodFacade;
|
||||
|
||||
private User student1;
|
||||
private Project project;
|
||||
private ProjectClass projectClass;
|
||||
@ -134,7 +137,7 @@ public class TestMatchDao {
|
||||
projectIdea1.setProjectClass(projectClass);
|
||||
Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
|
||||
projectClassSet.add(projectClass);
|
||||
final ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null));
|
||||
final ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null);
|
||||
projectIdea1.setApplicationPeriod(applicationPeriod);
|
||||
projectIdea1 = projectIdeaDao.save(projectIdea1);
|
||||
|
||||
|
@ -20,6 +20,9 @@
|
||||
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
</bean>
|
||||
|
||||
<bean id="applicationPeriodFacade" class="se.su.dsv.scipro.match.facade.ApplicationPeriodFacade">
|
||||
</bean>
|
||||
|
||||
<bean id="projectScheduleDao" class="se.su.dsv.scipro.data.dao.jpa.ProjectScheduleDaoJPAImp">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
|
@ -75,6 +75,9 @@ public class TestProjectIdeaDao {
|
||||
@Autowired
|
||||
private ApplicationPeriodDao applicationPeriodDao;
|
||||
|
||||
@Autowired
|
||||
private ApplicationPeriodFacade applicationPeriodFacade;
|
||||
|
||||
@Autowired
|
||||
private MatchDao matchDao;
|
||||
|
||||
@ -186,7 +189,7 @@ public class TestProjectIdeaDao {
|
||||
Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
|
||||
projectClassSet.add(bachelor);
|
||||
projectClassSet.add(master);
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null));
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null);
|
||||
|
||||
projectIdea1 = new ProjectIdea();
|
||||
projectIdea1.setTitle("Project idea 1");
|
||||
|
@ -20,6 +20,9 @@
|
||||
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
</bean>
|
||||
|
||||
<bean id="applicationPeriodFacade" class="se.su.dsv.scipro.match.facade.ApplicationPeriodFacade">
|
||||
</bean>
|
||||
|
||||
<bean id="projectScheduleDao" class="se.su.dsv.scipro.data.dao.jpa.ProjectScheduleDaoJPAImp">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
|
@ -79,6 +79,9 @@ public class TestSupervisorDao {
|
||||
@Autowired
|
||||
private ProjectIdeaDao projectIdeaDao;
|
||||
|
||||
@Autowired
|
||||
private ApplicationPeriodFacade applicationPeriodFacade;
|
||||
|
||||
|
||||
private User user1;
|
||||
|
||||
@ -217,7 +220,7 @@ public class TestSupervisorDao {
|
||||
projectClassSet.add(bachelor);
|
||||
projectClassSet.add(master);
|
||||
|
||||
final ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null));
|
||||
final ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null);
|
||||
|
||||
projectIdea1 = new ProjectIdea();
|
||||
projectIdea1.setTitle("Project idea 1");
|
||||
|
@ -24,8 +24,11 @@
|
||||
<bean id="projectScheduleDao" class="se.su.dsv.scipro.data.dao.jpa.ProjectScheduleDaoJPAImp">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
</bean>
|
||||
|
||||
<bean id="userDao" class="se.su.dsv.scipro.data.dao.jpa.UserDaoJPAImp">
|
||||
|
||||
<bean id="applicationPeriodFacade" class="se.su.dsv.scipro.match.facade.ApplicationPeriodFacade">
|
||||
</bean>
|
||||
|
||||
<bean id="userDao" class="se.su.dsv.scipro.data.dao.jpa.UserDaoJPAImp">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
</bean>
|
||||
|
||||
@ -33,7 +36,7 @@
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
</bean>
|
||||
|
||||
<bean id="scheduleTemplateDao" class="se.su.dsv.scipro.data.dao.jpa.ScheduleTemplateDaoJPAImp">
|
||||
<bean id="scheduleTemplateDao" class="se.su.dsv.scipro.data.dao.jpa.ScheduleTemplateDaoJPAImp">
|
||||
<property name="entityManagerFactory" ref="entityManagerFactory" />
|
||||
</bean>
|
||||
|
||||
|
@ -64,6 +64,9 @@ public class TestProjectIdea {
|
||||
@Autowired
|
||||
private KeywordTypeDao keywordTypeDao;
|
||||
|
||||
@Autowired
|
||||
private ApplicationPeriodFacade applicationPeriodFacade;
|
||||
|
||||
private ProjectIdea target;
|
||||
private KeywordType other;
|
||||
private Keyword key1;
|
||||
@ -107,7 +110,7 @@ public class TestProjectIdea {
|
||||
Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
|
||||
projectClassSet.add(projectClass);
|
||||
|
||||
final ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null));
|
||||
final ApplicationPeriod applicationPeriod = applicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null);
|
||||
target.setProjectClass(projectClass);
|
||||
target.setApplicationPeriod(applicationPeriod);
|
||||
key1 = new Keyword("key 1", standard);
|
||||
|
Loading…
x
Reference in New Issue
Block a user