Added a test for comparing deleted keywords with not deleted ones.

This commit is contained in:
Tom Vahlman 2012-02-16 16:02:38 +01:00
parent e137027b06
commit b3736af8ff

@ -282,10 +282,11 @@ public class TestGreedyMatchingAlgorithm {
projectIdea.getKeywords().getAll().add(keyword);
}
private Keyword createKeyword(final KeywordType keyWordType , final String keyWordName) {
private Keyword createKeyword(final KeywordType keyWordType , final String keyWordName, final boolean deleted) {
Keyword keyword = new Keyword();
keyword.setType(keyWordType);
keyword.setKeyword(keyWordName);
keyword.setDeleted(deleted);
return keywordDao.save(keyword);
}
@ -295,9 +296,9 @@ public class TestGreedyMatchingAlgorithm {
/* keywords of 16 points should supersede a preferred supervisor of 15 points */
public void higherScoreShouldSupersedePreferredSupervisor() {
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(keywordTypeArea, "test area", false)); // 10
addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "test unit", false)); // 3
addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "Java", false)); // 3
supervisorAvailability.add(new Availability(bachelorSupervisor2, 0L, 1, bachelorProjectClass));
supervisorAvailability.add(new Availability(bachelorSupervisor, 0L, 1, bachelorProjectClass));
bachelorProjectIdea.setPreferredSupervisor(bachelorSupervisor); // 15
@ -314,8 +315,8 @@ public class TestGreedyMatchingAlgorithm {
/* a preferred supervisor of 15 points should supersede keywords of 13 points */
public void preferredSupervisorShouldSupersedeLowerScore() {
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(keywordTypeArea, "test area", false)); // 10
addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "test unit", false)); // 3
supervisorAvailability.add(new Availability(bachelorSupervisor2, 0L, 1, bachelorProjectClass));
supervisorAvailability.add(new Availability(bachelorSupervisor, 0L, 1, bachelorProjectClass));
bachelorProjectIdea.setPreferredSupervisor(bachelorSupervisor); // 15
@ -332,9 +333,9 @@ public class TestGreedyMatchingAlgorithm {
/* keywords of 6 points should supersede keywords of 3 points */
public void higherScoreShouldSupersedeLowerScore() {
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
addKeyWords(bachelorSupervisor, bachelorProjectIdea, createKeyword(keywordTypeWord, "test unit", false)); // 3
addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "UML", false)); // 3
addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "Design", false)); // 3
supervisorAvailability.add(new Availability(bachelorSupervisor2, 0L, 1, bachelorProjectClass));
supervisorAvailability.add(new Availability(bachelorSupervisor, 0L, 1, bachelorProjectClass));
unmatchedProjectIdeas.add(bachelorProjectIdea);
@ -343,4 +344,22 @@ public class TestGreedyMatchingAlgorithm {
Assert.isTrue(result.matches.get(0).getProjectIdea().equals(bachelorProjectIdea));
Assert.isTrue(result.matches.get(0).getSupervisor().equals(bachelorSupervisor2));
}
@Test
@Transactional
@Rollback
/* keywords of 6 points should NOT supersede keywords of 3 points, when some of the keywords are deleted */
public void higherScoreShouldNotSupersedeLowerScoreWhenDeleted() {
Employee bachelorSupervisor2 = createSupervisor("David", "Hallberg");
addKeyWords(bachelorSupervisor, bachelorProjectIdea, createKeyword(keywordTypeWord, "test unit", false)); // 3
addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "UML", true)); // 3
addKeyWords(bachelorSupervisor2, bachelorProjectIdea, createKeyword(keywordTypeWord, "Design", true)); // 3
supervisorAvailability.add(new Availability(bachelorSupervisor2, 0L, 1, bachelorProjectClass));
supervisorAvailability.add(new Availability(bachelorSupervisor, 0L, 1, bachelorProjectClass));
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(bachelorSupervisor));
}
}