new unit tests for params filtering on peer reviews
This commit is contained in:
parent
2592aebdb1
commit
b58b91003f
src
main/java/se/su/dsv/scipro/springdata/serviceimpls
test/java/se/su/dsv/scipro/springdata
@ -137,7 +137,7 @@ public class PeerReviewServiceImpl extends AbstractQueryService<PeerReview, Long
|
||||
private BooleanBuilder statusFilter(boolean includeCompleted,boolean includeAborted,boolean includeInProgress) {
|
||||
BooleanBuilder e = new BooleanBuilder();
|
||||
if(includeCompleted)
|
||||
e.and(isAborted(false).and(isSubmitted(true)).and(isDeleted(false)));
|
||||
e.or(isAborted(false).and(isSubmitted(true)).and(isDeleted(false)));
|
||||
if(includeAborted)
|
||||
e.or(isAborted(true).and(isSubmitted(false)).and(isDeleted(false)));
|
||||
if(includeInProgress)
|
||||
|
@ -1,15 +1,21 @@
|
||||
package se.su.dsv.scipro.springdata;
|
||||
|
||||
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
|
||||
import junit.framework.Assert;
|
||||
|
||||
import org.joda.time.DateTime;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.test.annotation.Rollback;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
|
||||
@ -18,18 +24,15 @@ import org.springframework.transaction.annotation.Transactional;
|
||||
import se.su.dsv.scipro.data.dataobjects.Employee;
|
||||
import se.su.dsv.scipro.data.dataobjects.Project;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectClass;
|
||||
import se.su.dsv.scipro.data.dataobjects.ProjectFollower;
|
||||
import se.su.dsv.scipro.data.dataobjects.Student;
|
||||
import se.su.dsv.scipro.data.dataobjects.User;
|
||||
import se.su.dsv.scipro.data.enums.ProjectStatus;
|
||||
import se.su.dsv.scipro.data.enums.ProjectTeamMemberRoles;
|
||||
import se.su.dsv.scipro.peer.data.dataobjects.PeerRequest;
|
||||
import se.su.dsv.scipro.peer.data.dataobjects.PeerReview;
|
||||
import se.su.dsv.scipro.peer.enums.RequestStatus;
|
||||
import se.su.dsv.scipro.springdata.services.PeerRequestService;
|
||||
import se.su.dsv.scipro.springdata.services.PeerReviewService;
|
||||
import se.su.dsv.scipro.springdata.services.ProjectClassService;
|
||||
import se.su.dsv.scipro.springdata.services.ProjectFollowerService;
|
||||
import se.su.dsv.scipro.springdata.services.ProjectService;
|
||||
import se.su.dsv.scipro.springdata.services.RoleService;
|
||||
import se.su.dsv.scipro.springdata.services.UserService;
|
||||
@ -60,107 +63,41 @@ public class TestPeerReview {
|
||||
private ProjectClass bachelor;
|
||||
private ProjectClass master;
|
||||
private PeerReview review1, review2, review3;
|
||||
private PeerRequest request1, request2, request3, awaitingRequest;
|
||||
private PeerRequest request1, request2, request3, request4;
|
||||
|
||||
@Before
|
||||
public void startTransaction() throws Exception {
|
||||
|
||||
bachelor = new ProjectClass(ProjectClass.BACHELOR, "Bachelor", "Bachelor degree thesis project");
|
||||
bachelor = projectClassService.save(bachelor);
|
||||
|
||||
master = new ProjectClass(ProjectClass.MASTER, "Master", "Master degree thesis project");
|
||||
master = projectClassService.save(master);
|
||||
|
||||
employeeUser = new User();
|
||||
employeeUser = userService.save(employeeUser);
|
||||
|
||||
reviewer = new User();
|
||||
reviewer = userService.save(reviewer);
|
||||
requester = new User();
|
||||
requester = userService.save(requester);
|
||||
|
||||
reviewerRole = new Student();
|
||||
reviewerRole.setUser(reviewer);
|
||||
reviewerRole = (Student) roleService.save(reviewerRole);
|
||||
requesterRole = new Student();
|
||||
requesterRole.setUser(requester);
|
||||
requesterRole = (Student) roleService.save(requesterRole);
|
||||
|
||||
reviewerRole = newStudent(reviewer);
|
||||
requesterRole = newStudent(requester);
|
||||
|
||||
headSupervisor = new Employee();
|
||||
headSupervisor.setUser(employeeUser);
|
||||
headSupervisor = (Employee) roleService.save(headSupervisor);
|
||||
|
||||
reviewerProject = new Project();
|
||||
reviewerProject.setProjectClass(bachelor);
|
||||
reviewerProject.setTitle("Project 1");
|
||||
reviewerProject.setHeadSupervisor(headSupervisor);
|
||||
reviewerProject.addProjectParticipant(reviewerRole);
|
||||
reviewerProject.setProjectStatus(ProjectStatus.ACTIVE);
|
||||
reviewerProject = projectService.save(reviewerProject);
|
||||
|
||||
requesterProject = new Project();
|
||||
requesterProject.setProjectClass(master);
|
||||
requesterProject.setTitle("Project 2");
|
||||
requesterProject.setHeadSupervisor(headSupervisor);
|
||||
requesterProject.addProjectParticipant(requesterRole);
|
||||
requesterProject.setProjectStatus(ProjectStatus.ACTIVE);
|
||||
requesterProject = projectService.save(requesterProject);
|
||||
reviewerProject = newProject(bachelor, reviewerRole, headSupervisor, ProjectStatus.ACTIVE);
|
||||
requesterProject = newProject(master, requesterRole, headSupervisor, ProjectStatus.ACTIVE);
|
||||
|
||||
request1 = new PeerRequest();
|
||||
request1.setComment("Request 1");
|
||||
request1.setRequester(requesterRole);
|
||||
request1.setProject(requesterProject);
|
||||
request1 = peerRequestService.save(request1);
|
||||
|
||||
review1 = new PeerReview();
|
||||
review1.setReviewer(reviewerRole);
|
||||
review1.setProject(reviewerProject);
|
||||
review1.setComment("Overall ok!");
|
||||
review1.setPeerRequest(request1);
|
||||
request1.setStatus(RequestStatus.FINISHED);
|
||||
request1 = peerRequestService.save(request1);
|
||||
review1.setSubmitted(true);
|
||||
review1 = peerReviewService.save(review1);
|
||||
|
||||
request2 = new PeerRequest();
|
||||
request2.setComment("Request 2");
|
||||
request2.setRequester(requesterRole);
|
||||
request2.setProject(requesterProject);
|
||||
request2 = peerRequestService.save(request2);
|
||||
|
||||
review2 = new PeerReview();
|
||||
review2.setReviewer(reviewerRole);
|
||||
review2.setProject(reviewerProject);
|
||||
review2.setComment("Overall ok!");
|
||||
review2.setPeerRequest(request2);
|
||||
request2.setStatus(RequestStatus.FINISHED);
|
||||
request2 = peerRequestService.save(request2);
|
||||
review2.setSubmitted(true);
|
||||
review2 = peerReviewService.save(review2);
|
||||
|
||||
request3 = new PeerRequest();
|
||||
request3.setComment("Request 3");
|
||||
request3.setRequester(requesterRole);
|
||||
request3.setProject(requesterProject);
|
||||
request3 = peerRequestService.save(request3);
|
||||
|
||||
review3 = new PeerReview();
|
||||
review3.setReviewer(reviewerRole);
|
||||
review3.setProject(reviewerProject);
|
||||
review3.setComment("Overall ok!");
|
||||
review3.setPeerRequest(request2);
|
||||
request3.setStatus(RequestStatus.TAKEN);
|
||||
request3 = peerRequestService.save(request3);
|
||||
review3.setSubmitted(false);
|
||||
review3 = peerReviewService.save(review3);
|
||||
|
||||
awaitingRequest = new PeerRequest();
|
||||
awaitingRequest.setComment("Awaiting request");
|
||||
awaitingRequest.setRequester(requesterRole);
|
||||
awaitingRequest.setProject(requesterProject);
|
||||
awaitingRequest.setStatus(RequestStatus.WAITING);
|
||||
awaitingRequest = peerRequestService.save(awaitingRequest);
|
||||
request1 = newRequest(requesterRole, requesterProject, "Request 1", null);
|
||||
request2 = newRequest(requesterRole, requesterProject, "Request 2", null);
|
||||
request3 = newRequest(requesterRole, requesterProject, "Request 3", null);
|
||||
request4 = newRequest(requesterRole, requesterProject, "Request 4", RequestStatus.WAITING);
|
||||
|
||||
review1 = newReview(reviewerRole, reviewerProject, request1, RequestStatus.FINISHED, false, true);
|
||||
review2 = newReview(reviewerRole, reviewerProject, request2, RequestStatus.FINISHED, false, true);
|
||||
review3 = newReview(reviewerRole, reviewerProject, request3, RequestStatus.TAKEN, false, false);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -220,7 +157,162 @@ public class TestPeerReview {
|
||||
public void testFindAwaitingRequestsByProject(){
|
||||
List<PeerRequest> awaitingRequests = peerRequestService.findAwaitingRequests(requesterProject);
|
||||
Assert.assertEquals(1, awaitingRequests.size());
|
||||
Assert.assertEquals(Arrays.asList(new PeerRequest[]{awaitingRequest}), awaitingRequests);
|
||||
Assert.assertEquals(Arrays.asList(new PeerRequest[]{request4}), awaitingRequests);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
@Rollback
|
||||
public void testCountAllAbortedReviews(){
|
||||
Long allAborted = peerReviewService.countAllAborted();
|
||||
Long expected = new Long(0);
|
||||
Assert.assertEquals(expected, allAborted);
|
||||
|
||||
review2.setAborted(true);
|
||||
review2.setSubmitted(false);
|
||||
review3.setAborted(true);
|
||||
|
||||
allAborted = peerReviewService.countAllAborted();
|
||||
expected = new Long(2);
|
||||
Assert.assertEquals(expected, allAborted);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
@Rollback
|
||||
public void testCountAllInProgressReviews(){
|
||||
Long allInProgress = peerReviewService.countAllInProgress();
|
||||
Long expected = new Long(1);
|
||||
Assert.assertEquals(expected, allInProgress);
|
||||
|
||||
review3.setSubmitted(true);
|
||||
|
||||
allInProgress = peerReviewService.countAllInProgress();
|
||||
expected = new Long(0);
|
||||
Assert.assertEquals(expected, allInProgress);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
@Rollback
|
||||
public void testCountAllCompletedReviews(){
|
||||
Long allCompleted = peerReviewService.countAllCompleted();
|
||||
Long expected = new Long(2);
|
||||
Assert.assertEquals(expected, allCompleted);
|
||||
|
||||
review3.setSubmitted(true);
|
||||
|
||||
allCompleted = peerReviewService.countAllCompleted();
|
||||
expected = new Long(3);
|
||||
Assert.assertEquals(expected, allCompleted);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
@Rollback
|
||||
public void testCountAllReviewsByStudent(){
|
||||
Long allReviewsByStudent = peerReviewService.countAllReviewsByStudent(reviewerRole);
|
||||
Long expected = new Long(3);
|
||||
Assert.assertEquals(expected, allReviewsByStudent);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
@Rollback
|
||||
public void testFindAllWithParams(){
|
||||
PeerReviewService.FilterParams params = new PeerReviewService.FilterParams();
|
||||
params.setAuthor(reviewerRole);
|
||||
List<PeerReview> reviewList = peerReviewService.findAll(params, new PageRequest(0, 10)).getContent();
|
||||
Assert.assertEquals(Arrays.asList(new PeerReview[]{review1,review2,review3}), reviewList);
|
||||
|
||||
review3.setReviewer(requesterRole);
|
||||
reviewList = peerReviewService.findAll(params, new PageRequest(0, 10)).getContent();
|
||||
Assert.assertEquals(Arrays.asList(new PeerReview[]{review1,review2}), reviewList);
|
||||
|
||||
params.setAuthor(null);
|
||||
reviewList = peerReviewService.findAll(params, new PageRequest(0, 10)).getContent();
|
||||
Assert.assertEquals(Arrays.asList(new PeerReview[]{review1,review2,review3}), reviewList);
|
||||
|
||||
params.setIncludeAborted(false);
|
||||
params.setIncludeCompleted(false);
|
||||
params.setIncludeInProgress(true);
|
||||
reviewList = peerReviewService.findAll(params, new PageRequest(0, 10)).getContent();
|
||||
Assert.assertEquals(Arrays.asList(new PeerReview[]{review3}), reviewList);
|
||||
|
||||
review3.setAborted(true);
|
||||
params.setIncludeAborted(true);
|
||||
reviewList = peerReviewService.findAll(params, new PageRequest(0, 10)).getContent();
|
||||
Assert.assertEquals(Arrays.asList(new PeerReview[]{review3}), reviewList);
|
||||
}
|
||||
|
||||
@Test
|
||||
@Transactional
|
||||
@Rollback
|
||||
public void testReviewParamsDateFiltering() throws ParseException {
|
||||
PeerReviewService.FilterParams params = new PeerReviewService.FilterParams();
|
||||
SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
|
||||
|
||||
Date january12 = date.parse("2012-01-12");
|
||||
Date february15 = date.parse("2012-02-15");
|
||||
Date march21 = date.parse("2012-03-21");
|
||||
Date april05 = date.parse("2012-04-05");
|
||||
Date may02 = date.parse("2012-05-02");
|
||||
Date march27 = date.parse("2012-03-27");
|
||||
|
||||
review1.setDateCreated(february15);
|
||||
review2.setDateCreated(march21);
|
||||
review3.setDateCreated(may02);
|
||||
|
||||
params.setCreatedAfter(january12);
|
||||
params.setCreatedBefore(april05);
|
||||
|
||||
List<PeerReview> reviewList = peerReviewService.findAll(params, new PageRequest(0,10)).getContent();
|
||||
Assert.assertEquals(2, reviewList.size());
|
||||
Assert.assertEquals(Arrays.asList(new PeerReview[]{review1,review2}), reviewList);
|
||||
|
||||
review3.setDateCreated(march27);
|
||||
reviewList = peerReviewService.findAll(params, new PageRequest(0,10)).getContent();
|
||||
Assert.assertEquals(Arrays.asList(new PeerReview[]{review1,review2,review3}), reviewList);
|
||||
}
|
||||
|
||||
//Helper methods for setting up test objects
|
||||
|
||||
private PeerReview newReview(final Student reviewer, final Project project, PeerRequest request, final RequestStatus status, boolean aborted, boolean submitted) {
|
||||
PeerReview review = new PeerReview();
|
||||
review.setReviewer(reviewer);
|
||||
review.setProject(project);
|
||||
review.setComment("Hi there!");
|
||||
review.setPeerRequest(request);
|
||||
request.setStatus(status);
|
||||
request = peerRequestService.save(request);
|
||||
review.setSubmitted(submitted);
|
||||
review.setAborted(aborted);
|
||||
return peerReviewService.save(review);
|
||||
}
|
||||
|
||||
private PeerRequest newRequest(final Student requester, final Project project, final String comment, final RequestStatus status){
|
||||
PeerRequest request = new PeerRequest();
|
||||
request.setComment(comment);
|
||||
request.setRequester(requester);
|
||||
request.setProject(project);
|
||||
if(status!=null)
|
||||
request.setStatus(status);
|
||||
return peerRequestService.save(request);
|
||||
}
|
||||
|
||||
private Student newStudent(final User user) {
|
||||
Student student = new Student();
|
||||
student.setUser(user);
|
||||
return (Student) roleService.save(student);
|
||||
}
|
||||
|
||||
private Project newProject(final ProjectClass pc, final Student role, final Employee headSupervisor, final ProjectStatus status){
|
||||
Project newProject = new Project();
|
||||
newProject.setProjectClass(pc);
|
||||
newProject.setTitle("Project title");
|
||||
newProject.setHeadSupervisor(headSupervisor);
|
||||
newProject.addProjectParticipant(role);
|
||||
newProject.setProjectStatus(status);
|
||||
return projectService.save(newProject);
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user