Refactored tests to comply with the API in ApplicationPeriodFacade.
This commit is contained in:
parent
752a584e04
commit
ca851cbbcc
src
main/java/se/su/dsv/scipro/match/facade
test/java/se/su/dsv/scipro/match
@ -123,14 +123,14 @@ public class ApplicationPeriodFacade {
|
||||
return appPeriod;
|
||||
}
|
||||
|
||||
public static ApplicationPeriod createApplicationPeriod(final Set<ProjectClass> projectClassSet) {
|
||||
public static ApplicationPeriod createApplicationPeriod(final Set<ProjectClass> projectClassSet, final Date startDate, final Date endDate) {
|
||||
Calendar cal = Calendar.getInstance();cal.getTime();
|
||||
final Date startDate = cal.getTime();
|
||||
final Date startDate__ = (startDate != null ? startDate : cal.getTime());
|
||||
cal.add(Calendar.MONTH, 1);
|
||||
final Date endDate = cal.getTime();
|
||||
final Date endDate__ = (endDate != null ? endDate : cal.getTime());
|
||||
ApplicationPeriod appPeriod = new ApplicationPeriod();
|
||||
appPeriod.setStartDate(startDate);
|
||||
appPeriod.setEndDate(endDate);
|
||||
appPeriod.setStartDate(startDate__);
|
||||
appPeriod.setEndDate(endDate__);
|
||||
appPeriod.setProjectClass(projectClassSet);
|
||||
return appPeriod;
|
||||
}
|
||||
|
@ -100,8 +100,8 @@ public class TestGreedyMatchingAlgorithm {
|
||||
|
||||
private void createWeights() {
|
||||
weights = new Weights();
|
||||
weights.setKeywordPoints(3); // "Word"
|
||||
weights.setResearchAreaPoints(10); // "Area" + "Unit"?? for unit
|
||||
weights.setKeywordPoints(3); // "Word"
|
||||
weights.setResearchAreaPoints(10); // "Area" + "Unit"?? for unit
|
||||
weights.setPreferredSupervisorPoints(15); // ??
|
||||
}
|
||||
|
||||
@ -130,7 +130,7 @@ public class TestGreedyMatchingAlgorithm {
|
||||
Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
|
||||
projectClassSet.add(bachelorProjectClass);
|
||||
projectClassSet.add(masterProjectClass);
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet));
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null));
|
||||
bachelorProjectIdea = createProjectIdea(bachelorProjectClass, applicationPeriod);
|
||||
masterSupervisor = createSupervisor("Birger", "Andersson");
|
||||
masterProjectClass = createProjectClass(ProjectClass.MASTER, "Master", "Master project class");
|
||||
@ -279,14 +279,12 @@ public class TestGreedyMatchingAlgorithm {
|
||||
@Test
|
||||
@Transactional
|
||||
@Rollback
|
||||
/* a keywords of 16 points should supersede a preferred supervisor of 15 points */
|
||||
/* keywords of 16 points should supersede a preferred supervisor of 15 points */
|
||||
public void keywordsShouldSupersedePreferredSupervisor() {
|
||||
Employee bachelorSupervisor2 = createSupervisor("David", "Hallberg");
|
||||
addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeArea, "test area")); // 10
|
||||
addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "test unit")); // 3
|
||||
addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "Java")); // 3
|
||||
// addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "UML")); // 3
|
||||
// addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "Design")); // 3
|
||||
supervisorAvailability.add(new Availability(bachelorSupervisor2, 0L, 1, bachelorProjectClass));
|
||||
supervisorAvailability.add(new Availability(bachelorSupervisor, 0L, 1, bachelorProjectClass));
|
||||
bachelorProjectIdea.setPreferredSupervisor(bachelorSupervisor); // 15
|
||||
@ -315,5 +313,25 @@ public class TestGreedyMatchingAlgorithm {
|
||||
Assert.isTrue(result.matches.get(0).getSupervisor().equals(bachelorSupervisor));
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
@Rollback
|
||||
/* keywords of 6 points should supersede keywords of 3 points */
|
||||
public void moreKeywordsShouldSupersedeLessKeywords() {
|
||||
Employee bachelorSupervisor2 = createSupervisor("David", "Hallberg");
|
||||
addKeyWords(bachelorSupervisor, bachelorProjectIdea, createKeyword(keywordTypeWord, "test unit")); // 3
|
||||
addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "UML")); // 3
|
||||
addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "Design")); // 3
|
||||
supervisorAvailability.add(new Availability(bachelorSupervisor2, 0L, 1, bachelorProjectClass));
|
||||
supervisorAvailability.add(new Availability(bachelorSupervisor, 0L, 1, bachelorProjectClass));
|
||||
//bachelorProjectIdea.setPreferredSupervisor(bachelorSupervisor); // 15
|
||||
unmatchedProjectIdeas.add(bachelorProjectIdea);
|
||||
Result result = new GreedyMatchingAlgorithm().match(supervisorAvailability, unmatchedProjectIdeas, weights);
|
||||
Assert.notEmpty(result.matches);
|
||||
Assert.isTrue(result.matches.get(0).getProjectIdea().equals(bachelorProjectIdea));
|
||||
Assert.isTrue(result.matches.get(0).getSupervisor().equals(bachelorSupervisor2));
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
@ -254,7 +254,7 @@ public class TestMatcher {
|
||||
projectClassSet.add(bachelor);
|
||||
projectClassSet.add(master);
|
||||
|
||||
applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet));
|
||||
applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null));
|
||||
projectIdea1 = new ProjectIdea();
|
||||
projectIdea1.setTitle("Project idea 1");
|
||||
projectIdea1.setApplicationPeriod(applicationPeriod);
|
||||
|
@ -68,7 +68,7 @@ public class TestApplicationPeriodDao {
|
||||
|
||||
private Student student1Author;
|
||||
|
||||
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
|
||||
private SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
|
||||
|
||||
private ProjectClass master;
|
||||
|
||||
@ -78,6 +78,30 @@ public class TestApplicationPeriodDao {
|
||||
|
||||
private ApplicationPeriodDao target;
|
||||
|
||||
|
||||
|
||||
private ProjectIdea createProjectIdea(final ApplicationPeriod applicationPeriod1, final ProjectClass projectClass) {
|
||||
ProjectIdea projectIdea = new ProjectIdea();
|
||||
projectIdea.setProjectClass(projectClass);
|
||||
projectIdea.setApplicationPeriod(applicationPeriod1);
|
||||
return projectIdeaDao.save(projectIdea);
|
||||
}
|
||||
|
||||
private ProjectClass createProjectClass(final String projectCode, final String name, final String desc) {
|
||||
ProjectClass projectClass = new ProjectClass(projectCode, name, desc);
|
||||
return projectClassDao.save(projectClass);
|
||||
}
|
||||
|
||||
private Project createProject(final String title, final ProjectClass projectClass, final Role role) {
|
||||
Project project = new Project();
|
||||
project.setTitle(title);
|
||||
project.setProjectClass(projectClass);
|
||||
project.addProjectParticipant((Student) role);
|
||||
return projectDao.save(project);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Before
|
||||
public void startTransaction() throws Exception {
|
||||
User student1 = new User();
|
||||
@ -86,64 +110,26 @@ public class TestApplicationPeriodDao {
|
||||
Role student1Role = new Student();
|
||||
student1Role.setUser(student1);
|
||||
student1Role = roleDao.save(student1Role);
|
||||
/*
|
||||
* student1Author = new Author(); student1Author.setUser(student1);
|
||||
* student1Author = authorDao.save(student1Author);
|
||||
*/
|
||||
|
||||
bachelor =
|
||||
new ProjectClass(ProjectClass.BACHELOR, "Bachelor",
|
||||
"Bachelor degree thesis project");
|
||||
bachelor = projectClassDao.save(bachelor);
|
||||
|
||||
master =
|
||||
new ProjectClass(ProjectClass.MASTER, "Master",
|
||||
"Master degree thesis project");
|
||||
master = projectClassDao.save(master);
|
||||
|
||||
phd = new ProjectClass(ProjectClass.PHD, "PHD", "PHD thesis project");
|
||||
phd = projectClassDao.save(phd);
|
||||
|
||||
project = new Project();
|
||||
project.setTitle("SomeProject");
|
||||
project.setProjectClass(bachelor);
|
||||
project.addProjectParticipant((Student) student1Role);
|
||||
project = projectDao.save(project);
|
||||
|
||||
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");
|
||||
project = createProject("SomeProject", bachelor, student1Role);
|
||||
|
||||
Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
|
||||
projectClassSet.add(bachelor);
|
||||
projectClassSet.add(master);
|
||||
ApplicationPeriod applicationPeriod1 = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet));
|
||||
projectIdea1 = new ProjectIdea();
|
||||
projectIdea1.setProjectClass(bachelor);
|
||||
projectIdea1.setApplicationPeriod(applicationPeriod1);
|
||||
projectIdea1 = projectIdeaDao.save(projectIdea1);
|
||||
ApplicationPeriod applicationPeriod1 = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null));
|
||||
projectIdea1 = createProjectIdea(applicationPeriod1, bachelor);
|
||||
projectIdea2 = createProjectIdea(applicationPeriod1, bachelor);
|
||||
projectIdea3 = createProjectIdea(applicationPeriod1, bachelor);
|
||||
|
||||
projectIdea2 = new ProjectIdea();
|
||||
projectIdea2.setApplicationPeriod(applicationPeriod1);
|
||||
projectIdea2.setProjectClass(bachelor);
|
||||
projectIdea2 = projectIdeaDao.save(projectIdea2);
|
||||
|
||||
projectIdea3 = new ProjectIdea();
|
||||
projectIdea3.setApplicationPeriod(applicationPeriod1);
|
||||
projectIdea3.setProjectClass(bachelor);
|
||||
projectIdea3 = projectIdeaDao.save(projectIdea3);
|
||||
|
||||
applicationPeriod = new ApplicationPeriod("appl");
|
||||
applicationPeriod.setEndDate(date("2011-07-01"));
|
||||
applicationPeriod.setStartDate(date("2011-06-14"));
|
||||
applicationPeriod.getProjectClass().add(bachelor);
|
||||
applicationPeriod = applicationPeriodDao.save(applicationPeriod);
|
||||
|
||||
applicationPeriod2 = new ApplicationPeriod("app2");
|
||||
applicationPeriod2.setEndDate(date("2011-08-01"));
|
||||
applicationPeriod2.setStartDate(date("2011-07-15"));
|
||||
applicationPeriod2.getProjectClass().add(bachelor);
|
||||
applicationPeriod2 = applicationPeriodDao.save(applicationPeriod2);
|
||||
|
||||
projectClassSet.clear();
|
||||
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")));
|
||||
target = applicationPeriodDao;
|
||||
|
||||
}
|
||||
|
||||
private Date date(String dateString) {
|
||||
|
@ -134,7 +134,7 @@ public class TestMatchDao {
|
||||
projectIdea1.setProjectClass(projectClass);
|
||||
Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
|
||||
projectClassSet.add(projectClass);
|
||||
final ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet));
|
||||
final ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null));
|
||||
projectIdea1.setApplicationPeriod(applicationPeriod);
|
||||
projectIdea1 = projectIdeaDao.save(projectIdea1);
|
||||
|
||||
|
@ -186,7 +186,7 @@ public class TestProjectIdeaDao {
|
||||
Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
|
||||
projectClassSet.add(bachelor);
|
||||
projectClassSet.add(master);
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet));
|
||||
ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null));
|
||||
|
||||
projectIdea1 = new ProjectIdea();
|
||||
projectIdea1.setTitle("Project idea 1");
|
||||
|
@ -217,7 +217,7 @@ public class TestSupervisorDao {
|
||||
projectClassSet.add(bachelor);
|
||||
projectClassSet.add(master);
|
||||
|
||||
final ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet));
|
||||
final ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet, null, null));
|
||||
|
||||
projectIdea1 = new ProjectIdea();
|
||||
projectIdea1.setTitle("Project idea 1");
|
||||
|
@ -107,7 +107,7 @@ public class TestProjectIdea {
|
||||
Set<ProjectClass> projectClassSet = new HashSet<ProjectClass>();
|
||||
projectClassSet.add(projectClass);
|
||||
|
||||
final ApplicationPeriod applicationPeriod = applicationPeriodDao.save(ApplicationPeriodFacade.createApplicationPeriod(projectClassSet));
|
||||
final ApplicationPeriod applicationPeriod = applicationPeriodDao.save(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