Merge branch 'dateFiltering' into develop
This commit is contained in:
commit
82f885b10a
src
main/java/se/su/dsv/scipro
admin/panels
components
peer/panels
FilterFormRequestStatusPanel.htmlFilterFormReviewStatusPanel.htmlPeerRequestListPanel.htmlPeerRequestListPanel.javaPeerReviewListPanel.htmlPeerReviewListPanel.java
springdata
test/java/se/su/dsv/scipro/springdata
@ -144,7 +144,19 @@ public class AdminMailPanel extends Panel {
|
||||
|
||||
DateTime start = new DateTime();
|
||||
start = start.minusMonths(6);
|
||||
dpp = new DatePickerPanel("datePanel", start.toDate(), null);
|
||||
dpp = new DatePickerPanel("datePanel", start.toDate(), null) {
|
||||
private static final long serialVersionUID = 8199436051263013307L;
|
||||
|
||||
@Override
|
||||
public void updateStartDate(AjaxRequestTarget target) {
|
||||
updateUserSet(target);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEndDate(AjaxRequestTarget target) {
|
||||
updateUserSet(target);
|
||||
}
|
||||
};
|
||||
add(dpp);
|
||||
}
|
||||
|
||||
|
@ -11,11 +11,7 @@ import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.CompoundPropertyModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public class DatePickerPanel extends Panel{
|
||||
public abstract class DatePickerPanel extends Panel{
|
||||
|
||||
private static final long serialVersionUID = -5607127520132313062L;
|
||||
|
||||
@ -74,6 +70,7 @@ public class DatePickerPanel extends Panel{
|
||||
@Override
|
||||
protected void onUpdate(AjaxRequestTarget target) {
|
||||
setStartDate(startDtf.getModelObject());
|
||||
updateStartDate(target);
|
||||
}
|
||||
};
|
||||
|
||||
@ -85,7 +82,7 @@ public class DatePickerPanel extends Panel{
|
||||
@Override
|
||||
protected void onUpdate(AjaxRequestTarget target) {
|
||||
setEndDate(endDtf.getModelObject());
|
||||
|
||||
updateEndDate(target);
|
||||
}
|
||||
};
|
||||
|
||||
@ -128,4 +125,8 @@ public class DatePickerPanel extends Panel{
|
||||
//model.getObject().setEndDate(dpm.getEndDate());
|
||||
endDtf.setModelObject(dpm.getEndDate());
|
||||
}
|
||||
|
||||
public abstract void updateStartDate(AjaxRequestTarget target);
|
||||
public abstract void updateEndDate(AjaxRequestTarget target);
|
||||
|
||||
}
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
<wicket:panel>
|
||||
<div wicket:id="container">
|
||||
<label for="checkGroup">Filter by status:</label>
|
||||
<label for="checkGroup">Filter by status</label>
|
||||
<div wicket:id="checkGroup">
|
||||
<div wicket:id="statusView">
|
||||
<input type="checkbox" wicket:id="statusCheckBox"></input>
|
||||
|
@ -8,7 +8,7 @@
|
||||
|
||||
<wicket:panel>
|
||||
<div wicket:id="container">
|
||||
<label for="checkGroup">Filter by status:</label>
|
||||
<label for="checkGroup">Filter by status</label>
|
||||
<div wicket:id="checkGroup">
|
||||
<div wicket:id="statusView">
|
||||
<input type="checkbox" wicket:id="statusCheckBox"></input>
|
||||
|
@ -6,15 +6,17 @@
|
||||
|
||||
<div class="span-24 prepend-top last">
|
||||
<form wicket:id="form">
|
||||
<div class="span-6">
|
||||
<label>Filter by requesting author:</label>
|
||||
<div class="span-5">
|
||||
<label>Filter by requesting author</label>
|
||||
<br />
|
||||
<input wicket:id="filterAuthor" />
|
||||
<br />
|
||||
</div>
|
||||
<div class="span-6" wicket:id="statusFilter"></div>
|
||||
<div class="span-5" wicket:id="statusFilter"></div>
|
||||
<label>Request created between</label><br />
|
||||
<div class="span-6" wicket:id="datePanel"></div>
|
||||
<div class="span-10" wicket:id="supervisorContainer">
|
||||
<label>Show only my projects:</label>
|
||||
<label>Show only my projects</label>
|
||||
<br />
|
||||
<input type="checkbox" wicket:id="supervisorCheckBox" />
|
||||
<br />
|
||||
|
@ -3,6 +3,7 @@
|
||||
*/
|
||||
package se.su.dsv.scipro.peer.panels;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.apache.wicket.ajax.AjaxRequestTarget;
|
||||
@ -22,10 +23,12 @@ import org.apache.wicket.model.AbstractReadOnlyModel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
import org.joda.time.DateTime;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
|
||||
import se.su.dsv.scipro.SciProSession;
|
||||
import se.su.dsv.scipro.components.DatePickerPanel;
|
||||
import se.su.dsv.scipro.components.ItemsPerPageChoice;
|
||||
import se.su.dsv.scipro.data.dataobjects.Employee;
|
||||
import se.su.dsv.scipro.data.dataobjects.Student;
|
||||
@ -137,6 +140,28 @@ public class PeerRequestListPanel extends Panel {
|
||||
};
|
||||
params.setStatuses(statusFilter.getSelectedStatuses());
|
||||
add(statusFilter);
|
||||
|
||||
DateTime start = new DateTime();
|
||||
start = start.minusMonths(12);
|
||||
params.setCreatedAfter(start.toDate());
|
||||
params.setCreatedBefore(new Date());
|
||||
final DatePickerPanel datePanel = new DatePickerPanel("datePanel", start.toDate(), null) {
|
||||
private static final long serialVersionUID = 1502923890365050302L;
|
||||
|
||||
@Override
|
||||
public void updateStartDate(AjaxRequestTarget target) {
|
||||
params.setCreatedAfter(getStartDate());
|
||||
updateTarget(target, params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEndDate(AjaxRequestTarget target) {
|
||||
params.setCreatedBefore(getEndDate());
|
||||
updateTarget(target, params);
|
||||
}
|
||||
};
|
||||
add(datePanel);
|
||||
|
||||
final AjaxCheckBox supervisorProjects = new AjaxCheckBox("supervisorCheckBox", new Model<Boolean>()) {
|
||||
private static final long serialVersionUID = -7624763782876907386L;
|
||||
|
||||
|
@ -6,15 +6,17 @@
|
||||
|
||||
<div class="span-24 prepend-top last">
|
||||
<form wicket:id="form">
|
||||
<div class="span-6">
|
||||
<label>Filter by reviewing author:</label>
|
||||
<div class="span-5">
|
||||
<label>Filter by reviewing author</label>
|
||||
<br/>
|
||||
<input wicket:id="filterAuthor"/>
|
||||
<br/>
|
||||
</div>
|
||||
<div class="span-6" wicket:id="statusFilter"></div>
|
||||
<div class="span-5" wicket:id="statusFilter"></div>
|
||||
<label>Review commenced between</label><br />
|
||||
<div class="span-6" wicket:id="datePanel"></div>
|
||||
<div class="span-10" wicket:id="supervisorContainer">
|
||||
<label>Show only my projects:</label>
|
||||
<label>Show only my projects</label>
|
||||
<br>
|
||||
<input type="checkbox" wicket:id="supervisorCheckBox"/>
|
||||
<br>
|
||||
|
@ -3,6 +3,7 @@
|
||||
*/
|
||||
package se.su.dsv.scipro.peer.panels;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.apache.wicket.PageParameters;
|
||||
@ -23,10 +24,12 @@ import org.apache.wicket.model.AbstractReadOnlyModel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.spring.injection.annot.SpringBean;
|
||||
import org.joda.time.DateTime;
|
||||
import org.springframework.data.domain.PageRequest;
|
||||
import org.springframework.data.domain.Sort;
|
||||
|
||||
import se.su.dsv.scipro.SciProSession;
|
||||
import se.su.dsv.scipro.components.DatePickerPanel;
|
||||
import se.su.dsv.scipro.components.ItemsPerPageChoice;
|
||||
import se.su.dsv.scipro.data.dataobjects.Employee;
|
||||
import se.su.dsv.scipro.data.dataobjects.Student;
|
||||
@ -159,6 +162,27 @@ public class PeerReviewListPanel extends Panel {
|
||||
}
|
||||
};
|
||||
add(statusFilter);
|
||||
|
||||
DateTime start = new DateTime();
|
||||
start = start.minusMonths(12);
|
||||
params.setCreatedAfter(start.toDate());
|
||||
params.setCreatedBefore(new Date());
|
||||
final DatePickerPanel datePanel = new DatePickerPanel("datePanel", start.toDate(), null) {
|
||||
private static final long serialVersionUID = -411662653140866688L;
|
||||
|
||||
@Override
|
||||
public void updateStartDate(AjaxRequestTarget target) {
|
||||
params.setCreatedAfter(getStartDate());
|
||||
updateTarget(target, params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateEndDate(AjaxRequestTarget target) {
|
||||
params.setCreatedBefore(getEndDate());
|
||||
updateTarget(target, params);
|
||||
}
|
||||
};
|
||||
add(datePanel);
|
||||
final AjaxCheckBox supervisorProjects = new AjaxCheckBox("supervisorCheckBox", new Model<Boolean>()) {
|
||||
private static final long serialVersionUID = -6475334474261478489L;
|
||||
|
||||
|
@ -2,6 +2,7 @@ package se.su.dsv.scipro.springdata.serviceimpls;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -132,6 +133,13 @@ public class PeerRequestServiceImpl extends AbstractQueryService<PeerRequest, Lo
|
||||
}
|
||||
}
|
||||
|
||||
private BooleanExpression createdBetween(Date from, Date to) {
|
||||
if(from!=null&to!=null)
|
||||
return QPeerRequest.peerRequest.dateCreated.between(from, to);
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
private BooleanBuilder statusFilter(Collection<RequestStatus> statuses){
|
||||
BooleanBuilder e = new BooleanBuilder();
|
||||
if(statuses!=null && !statuses.isEmpty()){
|
||||
@ -150,7 +158,8 @@ public class PeerRequestServiceImpl extends AbstractQueryService<PeerRequest, Lo
|
||||
private Predicate predicateFromParams(FilterParams params) {
|
||||
return isRequester(params.getAuthor())
|
||||
.and(statusFilter(params.getStatuses()))
|
||||
.and(supervisorIs(params.getSupervisor()));
|
||||
.and(supervisorIs(params.getSupervisor()))
|
||||
.and(createdBetween(params.getCreatedAfter(), params.getCreatedBefore()));
|
||||
}
|
||||
|
||||
@Transactional ( readOnly = false )
|
||||
|
@ -1,6 +1,7 @@
|
||||
package se.su.dsv.scipro.springdata.serviceimpls;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
@ -55,7 +56,8 @@ public class PeerReviewServiceImpl extends AbstractQueryService<PeerReview, Long
|
||||
private Predicate predicateFromParams(FilterParams params) {
|
||||
return reviewerIs(params.getAuthor())
|
||||
.and(statusFilter(params.isIncludeCompleted(), params.isIncludeAborted(), params.isIncludeInProgress()))
|
||||
.and(supervisorIs(params.getSupervisor()));
|
||||
.and(supervisorIs(params.getSupervisor()))
|
||||
.and(startedBetween(params.getCreatedAfter(), params.getCreatedBefore()));
|
||||
}
|
||||
|
||||
|
||||
@ -135,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)
|
||||
@ -181,6 +183,14 @@ public class PeerReviewServiceImpl extends AbstractQueryService<PeerReview, Long
|
||||
private BooleanExpression isSubmitted(boolean isSubmitted){
|
||||
return QPeerReview.peerReview.submitted.eq(isSubmitted);
|
||||
}
|
||||
|
||||
private BooleanExpression startedBetween(Date from, Date to) {
|
||||
if(from!=null&&to!=null) {
|
||||
return QPeerReview.peerReview.dateCreated.between(from, to);
|
||||
}
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
||||
//Construct a list from Iterable Object.
|
||||
private List<PeerReview> constructList(Iterable<PeerReview> reviews) {
|
||||
|
@ -2,6 +2,7 @@ package se.su.dsv.scipro.springdata.services;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.data.domain.Page;
|
||||
@ -36,6 +37,8 @@ public interface PeerRequestService extends GenericService<PeerRequest, Long>, Q
|
||||
private Employee supervisor;
|
||||
private Student author;
|
||||
private Collection<RequestStatus> statuses;
|
||||
private Date createdAfter;
|
||||
private Date createdBefore;
|
||||
|
||||
public void setSupervisor(Employee supervisor) {
|
||||
this.supervisor = supervisor;
|
||||
@ -55,6 +58,18 @@ public interface PeerRequestService extends GenericService<PeerRequest, Long>, Q
|
||||
public Student getAuthor() {
|
||||
return author;
|
||||
}
|
||||
public void setCreatedAfter(Date createdAfter) {
|
||||
this.createdAfter = createdAfter;
|
||||
}
|
||||
public Date getCreatedAfter() {
|
||||
return createdAfter;
|
||||
}
|
||||
public void setCreatedBefore(Date createdBefore) {
|
||||
this.createdBefore = createdBefore;
|
||||
}
|
||||
public Date getCreatedBefore() {
|
||||
return createdBefore;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package se.su.dsv.scipro.springdata.services;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.data.domain.Page;
|
||||
@ -39,6 +40,8 @@ public interface PeerReviewService extends GenericService<PeerReview, Long>, Que
|
||||
private boolean includeCompleted;
|
||||
private boolean includeAborted;
|
||||
private boolean includeInProgress;
|
||||
private Date createdAfter;
|
||||
private Date createdBefore;
|
||||
|
||||
public void setIncludeCompleted(boolean includeCompleted) {
|
||||
this.includeCompleted = includeCompleted;
|
||||
@ -80,5 +83,21 @@ public interface PeerReviewService extends GenericService<PeerReview, Long>, Que
|
||||
return author;
|
||||
}
|
||||
|
||||
public void setCreatedAfter(Date createdAfter) {
|
||||
this.createdAfter = createdAfter;
|
||||
}
|
||||
|
||||
public Date getCreatedAfter() {
|
||||
return createdAfter;
|
||||
}
|
||||
|
||||
public void setCreatedBefore(Date createdBefore) {
|
||||
this.createdBefore = createdBefore;
|
||||
}
|
||||
|
||||
public Date getCreatedBefore() {
|
||||
return createdBefore;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -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