Added a new test for queryDslPredicateExecutor.findAll.

This commit is contained in:
Tom Vahlman 2012-04-08 23:40:20 +02:00
parent 612bc873eb
commit a3a19952c4
3 changed files with 61 additions and 10 deletions
src
main/java/se/su/dsv/scipro/springdata
test/java/se/su/dsv/scipro/springdata

@ -1,9 +1,7 @@
package se.su.dsv.scipro.springdata.serviceimpls;
import com.mysema.query.jpa.impl.JPAQuery;
import com.mysema.query.types.OrderSpecifier;
import com.mysema.query.types.Predicate;
import com.mysema.query.types.Visitor;
import com.mysema.query.types.*;
import com.mysema.query.types.expr.BooleanExpression;
import org.hibernate.hql.ast.tree.OrderByClause;
import org.springframework.beans.factory.annotation.Autowired;
@ -18,9 +16,8 @@ import se.su.dsv.scipro.springdata.services.SupervisorService;
import javax.annotation.Resource;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.Date;
import java.util.List;
import java.util.*;
@Service ( "supervisorService" )
@Transactional ( readOnly = true )
@ -57,7 +54,22 @@ public class SupervisorServiceImpl extends AbstractQueryService<Employee, Long>
BooleanExpression isNewEmployee = employee.user.dateCreated.eq(dateCreated);
OrderSpecifier<?> order = employee.user.lastName.asc();
return queryDslPredicateExecutor.findAll((lastName).and(isNewEmployee), order);
//return new JPAQuery(em).from(employee).where((lastName).and(isNewEmployee)).orderBy(order).list(employee);
}
@Override
public Iterator<Employee> findSupervisorKeywords() {
QEmployee employee = QEmployee.employee;
/* BooleanExpression lastName = employee.user.lastName.eq("Moattar")
.or(employee.user.lastName.eq("Herder")
.or(employee.user.lastName.eq("Larsson"))
.or(employee.user.lastName.eq("Friis"))
.or(employee.user.lastName.eq("Tholerus"))
.or(employee.user.lastName.eq("Hallberg")));
*/
OrderSpecifier<?> orderBySize = employee.keywords.keywords.size().desc();
// where(lastName).
BooleanExpression employeeExists = employee.isNotNull();
return queryDslPredicateExecutor.findAll(employeeExists, orderBySize).iterator();
//return new JPAQuery(em).from(employee).orderBy(orderBySize).list(employee);
}
}

@ -2,6 +2,7 @@ package se.su.dsv.scipro.springdata.services;
import se.su.dsv.scipro.data.dataobjects.Employee;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
/**
@ -9,7 +10,10 @@ import java.util.List;
* date: 2012 03 26
*/
public interface SupervisorService extends CrudService<Employee,Long>, QueryService<Employee, Long> {
public List<Employee> findAllEmployees(org.springframework.data.domain.Sort orders);
public //List<Employee>
List<Employee> findAllEmployees(org.springframework.data.domain.Sort orders);
public Iterable<Employee> findByUsersName(final Date dateCreated);
public Iterator<Employee> findSupervisorKeywords();
}

@ -1,12 +1,9 @@
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;
@ -208,4 +205,42 @@ public class TestSupervisor {
assertTrue(employeeList.get(0).equals(tholerus));
assertTrue(employeeList.get(1).equals(herder));
}
/**
* Test for implementing a supervisorService with Spring Data
*/
@Test
@Transactional
@Rollback
public void findNewSupervisorKeywords() {
List<Employee> employeeList = new ArrayList<Employee>();
Employee larsson = getEmployee("Ken", "Larsson", "kenlars@dsv.su.se", null);
Employee hallberg = getEmployee("David", "Hallberg", "dhallb@dsv.su.se", null);
Employee tholerus = getEmployee("Torgny", "Tholerus", "torgny@dsv.su.se", null);
Employee herder = getEmployee("Niklas", "Herder", "herder@dsv.su.se", null);
Employee moattar = getEmployee("Golrokh", "Moattar", "goli@dsv.su.se", null);
Employee friis = getEmployee("Fredrik", "Friis", "fre-fri@dsv.su.se", null);
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);
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);
Iterator<Employee> employeeIterator = supervisorService.findSupervisorKeywords();
while (employeeIterator.hasNext()) {
employeeList.add(employeeIterator.next());
}
assertFalse(employeeList.isEmpty());
assertTrue(employeeList.get(0).equals(tholerus));
assertTrue(employeeList.get(1).equals(herder));
}
}