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; package se.su.dsv.scipro.springdata;
import org.apache.commons.lang.builder.CompareToBuilder;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.data.domain.Sort; import org.springframework.data.domain.Sort;
import org.springframework.test.annotation.Rollback; import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration; 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 se.su.dsv.scipro.springdata.services.SupervisorService;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List; import java.util.List;
import static org.junit.Assert.*; import static org.junit.Assert.*;
@ -43,16 +47,14 @@ public class TestSupervisor {
@Autowired @Autowired
private KeywordTypeDao keywordTypeDao; private KeywordTypeDao keywordTypeDao;
private KeywordType keywordTypeArea;
private KeywordType keywordTypeWord; private KeywordType keywordTypeWord;
private Weights weights;
@SuppressWarnings("EmptyMethod") @SuppressWarnings("EmptyMethod")
@Before @Before
public void startTransaction() throws Exception { public void startTransaction() throws Exception {
keywordTypeArea = keywordTypeDao.save(new KeywordType("Area")); KeywordType keywordTypeArea = keywordTypeDao.save(new KeywordType("Area"));
keywordTypeWord = keywordTypeDao.save(new KeywordType("Word")); keywordTypeWord = keywordTypeDao.save(new KeywordType("Word"));
weights = createWeights(); Weights weights = createWeights();
} }
private Weights createWeights() { private Weights createWeights() {
@ -113,7 +115,7 @@ public class TestSupervisor {
/** /**
* Test for implementing a supervisorService with Spring Data * Test for implementing a supervisorService with Spring Data
*/ */
@Test @Test //(expected = DataAccessException.class )
@Transactional @Transactional
@Rollback @Rollback
public void findSupervisorFirstName() { public void findSupervisorFirstName() {
@ -146,18 +148,38 @@ public class TestSupervisor {
Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se"); Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se");
Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se"); Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se");
Keyword keyword = createKeyword(keywordTypeWord, "JUnit", false); Keyword keyword = createKeyword(keywordTypeWord, "JUnit", false);
herder.getKeywords().getAll().add(keyword); herder.getKeywords().getAll().add(keyword);
keyword = createKeyword(keywordTypeWord, "Maven", false); keyword = createKeyword(keywordTypeWord, "Maven", false);
herder.getKeywords().getAll().add(keyword); herder.getKeywords().getAll().add(keyword);
herder = supervisorService.save(herder); 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)); employeeList.addAll(supervisorService.findAllEmployees(sortOrder));
assertFalse(employeeList.isEmpty()); 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));
} }
} }