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.AssignmentInteractive;
16 import com.germinus.merlin.model.assignment.AssignmentOnline;
17
18 public class AssignmentManagerTest extends BaseTestCase {
19
20 private AssignmentManager assignmentManager;
21 private CourseManager courseManager;
22
23 public void testAssignment() throws Exception {
24 Assignment assignment = null;
25 try {
26 Course courseSaved = courseManager.getCourse(MockMerlinKeys.COURSE_ID_1);
27 Set<Assignment> setAssignments = courseSaved.getAssignments();
28 Iterator<Assignment> itSetAssignments = setAssignments.iterator();
29 int i=0;
30 while (itSetAssignments.hasNext()){
31 assignment= (Assignment) itSetAssignments.next();
32 i++;
33 if (assignment.getName().equals("assignment"+i)){
34 assertEquals("comentarios de prueba",assignment.getDescription());
35 }
36
37 }
38 String assertMsg = new String ("\n\t<Expected> "+MockMerlinKeys.NUM_ASSIGNMENT+" <Actual> "+setAssignments.size());
39 assertEquals(assertMsg,MockMerlinKeys.NUM_ASSIGNMENT,setAssignments.size());
40
41 } catch (Exception e) {
42 assertNotNull(e);
43 }
44 }
45
46 public void testSaveAssignment() throws Exception {
47
48 Course course = courseManager.getCourse(MockMerlinKeys.COURSE_ID_1);
49
50 Assignment newAssignment = new AssignmentOnline();
51 newAssignment.setName("Nuevo assignment de prueba");
52 newAssignment.setDescription("Un assignment de prueba");
53 newAssignment.setCourse(course);
54 courseManager.setAssignment(newAssignment);
55 course.getAssignments().add(newAssignment);
56
57
58 course = courseManager.getCourseDao().get(MockMerlinKeys.COURSE_ID_1);
59 Set<Assignment> setAssignments=course.getAssignments();
60
61 String assertMsg = new String ("\n\t<Expected> the assignment is in the set"+" <Actual> It i'snt");
62 assertTrue(assertMsg,setAssignments.contains(newAssignment));
63 assertMsg = new String ("\n\t<Expected> "+(MockMerlinKeys.NUM_ASSIGNMENT+1)+" <Actual> "+setAssignments.size());
64 assertEquals(MockMerlinKeys.NUM_ASSIGNMENT+1,setAssignments.size());
65 }
66
67 public void testGetAssignment() throws Exception {
68 Assignment assignment = null;
69 Course course = courseManager.getCourse(MockMerlinKeys.COURSE_ID_1);
70 assignment = assignmentManager.getAssignment(MockMerlinKeys.ASSIGNMENT_ID,course);
71
72 String assertMsg = new String ("\n\t<Expected> "+MockMerlinKeys.ASSIGNMENT_ID_NAME+" <Actual> "+assignment.getName());
73 assertEquals(assertMsg,MockMerlinKeys.ASSIGNMENT_ID_NAME,assignment.getName());
74 }
75
76 public void testAddAssignment() throws Exception {
77
78
79 Course course = courseManager.getCourse(MockMerlinKeys.COURSE_ID_1);
80 int assignmentsNumOld= course.getAssignments().size();
81
82 MockActionRequest request = mockMerlinFactory.getActionRequest();
83 MockActionResponse response= mockMerlinFactory.getActionResponse();
84 request.setRemoteUser(MockMerlinKeys.USER_ID_PROFESOR.toString());
85 request.addParameter("name", "Assignment de prueba");
86 request.addParameter("content","Data de la actividad online");
87 request.addParameter("type", "Online Activity");
88 request.addParameter("description", "Descripcion de la actividad onleni");
89 request.addParameter("visible", "true");
90 request.addParameter("resubmit", "true");
91 request.addParameter("emailsToTeacher", "true");
92 request.addParameter("preventLateSubmissions", "true");
93 request.addParameter("startDate", "01/01/2001");
94 request.addParameter("endDate", "01/01/2001");
95 request.addParameter("hideDescriptionBeforeAvailable", "true");
96
97 assignmentManager.addAssignment(request, response, course);
98
99 int assignmentsNumNew= course.getAssignments().size();
100
101 String assertMsg = new String ("\n\t<Expected> "+(assignmentsNumOld+1)+" <Actual> "+assignmentsNumNew);
102 assertEquals(assertMsg,assignmentsNumOld+1,assignmentsNumNew);
103 }
104
105 public void testDeleteAssignment(){
106
107
108 Course course = courseManager.getCourse(MockMerlinKeys.COURSE_ID_1);
109 int assignmentsNumOld= course.getAssignments().size();
110
111 MockRenderRequest request = mockMerlinFactory.getRenderRequest();
112 MockRenderResponse response= mockMerlinFactory.getRenderResponse();
113 request.setRemoteUser(MockMerlinKeys.USER_ID_PROFESOR.toString());
114 request.addParameter("assignmentId", MockMerlinKeys.ASSIGNMENT_ID.toString());
115
116 assignmentManager.deleteAssignment(request, response, course);
117
118 int assignmentsNumNew= course.getAssignments().size();
119
120 String assertMsg = new String ("\n\t<Expected> "+(assignmentsNumOld-1)+" <Actual> "+assignmentsNumNew);
121 assertEquals(assertMsg,assignmentsNumOld-1,assignmentsNumNew);
122
123 }
124
125 public void testEditAssignment() throws Exception {
126
127
128 Course course = courseManager.getCourse(MockMerlinKeys.COURSE_ID_1);
129
130 Assignment assignmentOld = assignmentManager.getAssignment(MockMerlinKeys.ASSIGNMENT_ID, course);
131
132
133 MockActionRequest request = mockMerlinFactory.getActionRequest();
134 MockActionResponse response= mockMerlinFactory.getActionResponse();
135
136 request.setRemoteUser(MockMerlinKeys.USER_ID_PROFESOR.toString());
137 request.addParameter("assignment", MockMerlinKeys.ASSIGNMENT_ID.toString());
138 request.addParameter("name", "Assignment EDITADO");
139 request.addParameter("content","EDITADO");
140 request.addParameter("type", "Online Activity");
141 request.addParameter("description", "EDITADO");
142 request.addParameter("resourceContainerId", String.valueOf(MockMerlinKeys.RESOURCE_CONTAINER_ID));
143 request.addParameter("resubmit", "true");
144 request.addParameter("emailsToTeacher", "true");
145 request.addParameter("visible", "true");
146 request.addParameter("preventLateSubmissions", "true");
147 request.addParameter("startDate", "01/01/2001");
148 request.addParameter("endDate", "01/01/2001");
149 request.addParameter("hideDescriptionBeforeAvailable", "true");
150
151
152 assignmentManager.editAssignment(request, response, course);
153
154
155 Assignment assignmentNew = assignmentManager.getAssignment(MockMerlinKeys.ASSIGNMENT_ID, course);
156
157 String assertMsg = new String ("\n\t<Expected> "+assignmentOld.getAssignmentid()+" <Actual> "+assignmentNew.getAssignmentid());
158 assertEquals(assertMsg,assignmentOld.getAssignmentid(),assignmentNew.getAssignmentid());
159
160 assertEquals("Assignment EDITADO",assignmentNew.getName());
161 assertEquals("EDITADO",assignmentNew.getDescription());
162 assertEquals("EDITADO",assignmentNew.getData());
163 assertTrue(assignmentNew.getVisible());
164 assertTrue(((AssignmentInteractive) assignmentNew).getResubmit());
165 assertTrue(((AssignmentInteractive) assignmentNew).getEmailsToTeacher());
166 assertEquals(MockMerlinKeys.RESOURCE_CONTAINER_ID,assignmentNew.getResourceContainer().getIdResourceContainer());
167
168 }
169
170 public AssignmentManager getAssignmentManager() {
171 return assignmentManager;
172 }
173 public void setAssignmentManager(AssignmentManager assignmentsManagement) {
174 this.assignmentManager = assignmentsManagement;
175 }
176 public CourseManager getCourseManagement() {
177 return courseManager;
178 }
179 public void setCourseManagement(CourseManager courseManager) {
180 this.courseManager = courseManager;
181 }
182
183 }
184