implemented test for sorting Employees based on keyword counts.

This commit is contained in:
Tom Vahlman 2012-04-03 16:02:27 +02:00
parent 3fd14f52b6
commit 912b6c5e4b

@ -1,10 +1,12 @@
package se.su.dsv.scipro.springdata;
import org.apache.commons.lang.builder.CompareToBuilder;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.data.domain.Sort;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
@ -21,6 +23,8 @@ import se.su.dsv.scipro.match.dataobject.KeywordType;
import se.su.dsv.scipro.springdata.services.SupervisorService;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import static org.junit.Assert.*;
@ -43,16 +47,14 @@ public class TestSupervisor {
@Autowired
private KeywordTypeDao keywordTypeDao;
private KeywordType keywordTypeArea;
private KeywordType keywordTypeWord;
private Weights weights;
@SuppressWarnings("EmptyMethod")
@Before
public void startTransaction() throws Exception {
keywordTypeArea = keywordTypeDao.save(new KeywordType("Area"));
KeywordType keywordTypeArea = keywordTypeDao.save(new KeywordType("Area"));
keywordTypeWord = keywordTypeDao.save(new KeywordType("Word"));
weights = createWeights();
Weights weights = createWeights();
}
private Weights createWeights() {
@ -113,7 +115,7 @@ public class TestSupervisor {
/**
* Test for implementing a supervisorService with Spring Data
*/
@Test
@Test //(expected = DataAccessException.class )
@Transactional
@Rollback
public void findSupervisorFirstName() {
@ -146,18 +148,38 @@ public class TestSupervisor {
Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se");
Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se");
Keyword keyword = createKeyword(keywordTypeWord, "JUnit", false);
herder.getKeywords().getAll().add(keyword);
keyword = createKeyword(keywordTypeWord, "Maven", false);
herder.getKeywords().getAll().add(keyword);
herder = supervisorService.save(herder);
/* Sort sortOrder = new Sort(org.springframework.data.domain.Sort.Direction.ASC, "keywords.all.size()");
keyword = createKeyword(keywordTypeWord, "JUnit", false);
tholerus.getKeywords().getAll().add(keyword);
keyword = createKeyword(keywordTypeWord, "Maven", false);
tholerus.getKeywords().getAll().add(keyword);
keyword = createKeyword(keywordTypeWord, "Java", false);
tholerus.getKeywords().getAll().add(keyword);
tholerus = supervisorService.save(tholerus);
Sort sortOrder = new Sort(org.springframework.data.domain.Sort.Direction.ASC, "user.firstName");
employeeList.addAll(supervisorService.findAllEmployees(sortOrder));
assertFalse(employeeList.isEmpty());
assertTrue(employeeList.get(0).equals(herder));*/
//assertTrue(employeeList.get(5).equals(tholerus));
Collections.sort(employeeList, new Comparator<Employee>() {
@Override
public int compare(Employee o1, Employee o2) {
if(o1.getKeywords().getAll().size() > o2.getKeywords().getAll().size()) {
return -1;
} else if(o2.getKeywords().getAll().size() > o1.getKeywords().getAll().size()) {
return 1;
} else {
return 0;
}
}
});
assertTrue(employeeList.get(0).equals(tholerus));
assertTrue(employeeList.get(1).equals(herder));
}
}