1   package com.germinus.merlin.manager;
2   
3   import java.util.Iterator;
4   import java.util.Set;
5   
6   import org.springframework.mock.web.portlet.MockActionRequest;
7   import org.springframework.mock.web.portlet.MockActionResponse;
8   import org.springframework.mock.web.portlet.MockRenderRequest;
9   import org.springframework.mock.web.portlet.MockRenderResponse;
10  
11  import com.germinus.merlin.BaseTestCase;
12  import com.germinus.merlin.mock.MockMerlinKeys;
13  import com.germinus.merlin.model.Course;
14  import com.germinus.merlin.model.assignment.Assignment;
15  import com.germinus.merlin.model.assignment.AssignmentResult;
16  
17  public class AssignmentResultManagerTest extends BaseTestCase {
18  	
19  	private AssignmentManager assignmentManager;
20  	private CourseManager courseManager;
21  	private AssignmentResultManager assignmentResultManager;
22  	
23  	public void testAddAssignmentResult(){
24      	Course course = courseManager.getCourse(MockMerlinKeys.COURSE_ID_1);
25      	Assignment assignment; int initialAssignmentsResultsCount=0;
26      	Set<Assignment> assignmentSet = course.getAssignments();
27      	Iterator<Assignment> assignmentIterator=assignmentSet.iterator();
28      	while (assignmentIterator.hasNext()) {
29      		assignment= (Assignment)assignmentIterator.next();
30      		initialAssignmentsResultsCount = initialAssignmentsResultsCount + assignment.getResults().size();
31      	}
32      	MockActionRequest request = mockMerlinFactory.getActionRequest();
33      	MockActionResponse response= mockMerlinFactory.getActionResponse();
34      	request.addParameter("assignmentId", MockMerlinKeys.ASSIGNMENT_ID.toString());
35      	request.setRemoteUser(MockMerlinKeys.USER_ID_ALUMNO.toString());
36      	
37      	assignmentResultManager.addAssignmentResult(request,response, course);
38      	
39      	int finalAssignmentsResultsCount =0;
40      	Set<Assignment> assignmentSet2 = course.getAssignments();
41      	Iterator<Assignment> assignmentIterator2=assignmentSet2.iterator();
42      	while (assignmentIterator2.hasNext()) {
43      		assignment= (Assignment)assignmentIterator2.next();
44      		finalAssignmentsResultsCount = finalAssignmentsResultsCount + assignment.getResults().size();
45      	}
46      	
47      	String assertMsg = new String ("\n\t<Expected> "+(initialAssignmentsResultsCount+1)+" <Actual> "+finalAssignmentsResultsCount);
48      	assertEquals(assertMsg,initialAssignmentsResultsCount+1,finalAssignmentsResultsCount);
49  	}
50  
51  	public void testGradeAssignmentResult(){
52  
53  		Course course = courseManager.getCourse(MockMerlinKeys.COURSE_ID_1);
54      	
55      	MockActionRequest request = mockMerlinFactory.getActionRequest();
56      	MockActionResponse response= mockMerlinFactory.getActionResponse();
57      	
58      	request.setRemoteUser(MockMerlinKeys.USER_ID_ALUMNO.toString());
59      	request.addParameter("assignmentId", MockMerlinKeys.ASSIGNMENT_ID.toString());
60      	request.addParameter("resultId", MockMerlinKeys.RESULT_ID.toString());
61      	request.addParameter("content", MockMerlinKeys.CONTENT);
62      	request.addParameter("grade", String.valueOf(MockMerlinKeys.GRADE));
63      	
64      	assignmentResultManager.gradeAssignmentResult(request, response, course);
65      	
66      	Assignment assignment; 
67      	AssignmentResult assignmentResult=null;
68      	Set<Assignment> assignmentSet = course.getAssignments();
69      	Iterator<Assignment> assignmentIterator=assignmentSet.iterator();
70      	Set<AssignmentResult> assignmentResults;
71      	Iterator<AssignmentResult> assignmentResultIterator;
72      	boolean notFound=true;
73      	while (assignmentIterator.hasNext() && notFound) {
74      		assignment= assignmentIterator.next();
75      		assignmentResults=assignment.getResults();
76      		assignmentResultIterator= assignmentResults.iterator();
77      		notFound=true;
78      		while (assignmentResultIterator.hasNext()&& notFound){
79      			assignmentResult=assignmentResultIterator.next();
80      			//logger.info("assignmentResult.getGrade(): "+assignmentResult.getGrade());
81      			if (assignmentResult.getResultid()==MockMerlinKeys.RESULT_ID){
82      				notFound=false;
83      			}
84      		}
85      	}
86      	
87      	String assertMsg = new String ("\n\t<Expected> "+String.valueOf(MockMerlinKeys.GRADE)+" <Actual> "+assignmentResult.getGrade());
88      	assertEquals(assertMsg,String.valueOf(MockMerlinKeys.GRADE),assignmentResult.getGrade());
89      	
90      	assertMsg = new String ("\n\t<Expected> "+MockMerlinKeys.CONTENT+" <Actual> "+assignmentResult.getComments());
91      	assertEquals(MockMerlinKeys.CONTENT,assignmentResult.getComments());
92  	}
93  
94  	public void testSearchAssignmentResult(){
95  
96      	MockRenderRequest request = mockMerlinFactory.getRenderRequest();
97      	MockRenderResponse response= mockMerlinFactory.getRenderResponse();
98      	
99      	request.setRemoteUser(MockMerlinKeys.USER_ID_ALUMNO.toString());
100     	request.addParameter("assignmentId", MockMerlinKeys.ASSIGNMENT_ID_2.toString());
101     	
102     	AssignmentResult assignmentResult = assignmentResultManager.searchAssignmentResult(request,response);
103      	String assertMsg = new String ("\n\t<Expected> "+MockMerlinKeys.ASSIGNMENT_ID+" <Actual> "+assignmentResult.getAssignments().getAssignmentid());
104     	assertTrue(assertMsg,assignmentResult.getAssignments().getAssignmentid()==3);
105 	}
106 	
107 	public AssignmentManager getAssignmentManager() {
108 		return assignmentManager;
109 	}
110 	public void setAssignmentManager(AssignmentManager assignmentsManagement) {
111 		this.assignmentManager = assignmentsManagement;
112 	}
113 	public CourseManager getCourseManagement() {
114 		return courseManager;
115 	}
116 	public void setCourseManagement(CourseManager courseManager) {
117 		this.courseManager = courseManager;
118 	}
119 	/**
120 	 * @return the assignmentResultmanager
121 	 */
122 	public AssignmentResultManager getAssignmentResultManager() {
123 		return assignmentResultManager;
124 	}
125 	/**
126 	 * @param assignmentResultmanager the assignmentResultmanager to set
127 	 */
128 	public void setAssignmentResultManager(
129 			AssignmentResultManager assignmentResultmanager) {
130 		this.assignmentResultManager = assignmentResultmanager;
131 	}
132 	
133 }	
134