1   package com.germinus.merlin.controller.assignments;
2   
3   
4   import org.springframework.mock.web.portlet.MockActionRequest;
5   import org.springframework.mock.web.portlet.MockActionResponse;
6   import org.springframework.mock.web.portlet.MockRenderRequest;
7   import org.springframework.mock.web.portlet.MockRenderResponse;
8   import org.springframework.web.portlet.ModelAndView;
9   import com.germinus.merlin.controller.BaseControllerTestCase;
10  import com.germinus.merlin.mock.MockMerlinKeys;
11  import com.germinus.merlin.util.MerlinWebKeys;
12  
13  public class AssignmentAddControllerTest extends BaseControllerTestCase {
14  	
15  	public AssignmentAddControllerTest() {
16  		super();	
17  		setControllerName("assignmentAddController");
18  		setApplicationContextFile("assignments.xml");
19  	}
20  	
21  	public void  testHandleRenderRequestInternal(){
22  		
23  		try {
24  			MockRenderRequest request = mockMerlinFactory.getRenderRequest();
25  			MockRenderResponse response = mockMerlinFactory.getRenderResponse();
26  			
27  			AssignmentAddController controller =(AssignmentAddController) loadController(); 
28  	
29  			request.setRemoteUser(MockMerlinKeys.USER_ID_PROFESOR.toString());
30  			request.addParameter("companyId", MockMerlinKeys.COURSE_ID_2.toString());
31  			//response.addProperty("companyId", MockMerlinKeys.COURSE_ID_2.toString());
32  			request.addParameter("userType", MerlinWebKeys.TEACHER);
33  			
34  			request.setContextPath("assignments/");
35  			request.addParameter("type", "Online Activity");
36  	
37  			ModelAndView modelAndView = controller.handleRenderRequest(request, response);
38  			String assertMsg= new String ("\n\t<Expected> "+MockMerlinKeys.ADD_ASSIGNMENT_ONLINE+" <Actual> "+modelAndView.getViewName());
39  			assertTrue(assertMsg, modelAndView.getViewName().equals(MockMerlinKeys.ADD_ASSIGNMENT_ONLINE));
40  			
41  			request.setParameter("type", "Offline Activity");
42  			modelAndView = controller.handleRenderRequest(request, response);
43  			assertMsg= new String ("\n\t<Expected> "+MockMerlinKeys.ADD_ASSIGNMENT_OFFLINE+" <Actual> "+modelAndView.getViewName());
44  			assertTrue(assertMsg, modelAndView.getViewName().equals(MockMerlinKeys.ADD_ASSIGNMENT_OFFLINE));
45  			
46  			request.setParameter("type", "Upload a Single File");
47  			modelAndView = controller.handleRenderRequest(request, response);
48  			assertMsg= new String ("\n\t<Expected> "+MockMerlinKeys.ADD_ASSIGNMENT_UPLOAD_SINGLE_FILE+" <Actual> "+modelAndView.getViewName());
49  			assertTrue(assertMsg, modelAndView.getViewName().equals(MockMerlinKeys.ADD_ASSIGNMENT_UPLOAD_SINGLE_FILE));
50  			
51  			
52  		} catch (Exception e) {
53  			e.printStackTrace();
54  			assertTrue("error: "+e.getMessage(), false);
55  		}
56  		
57  	}
58  	
59  	public void testHandleActionRequestInternal(){
60  //TODO este método sólo comprueba que la llamada termina bien. Revisarlo.
61  		try {
62  			MockActionRequest request = mockMerlinFactory.getActionRequest();
63  			MockActionResponse response = mockMerlinFactory.getActionResponse();
64  			
65  			AssignmentAddController controller =(AssignmentAddController) loadController(); 
66  	
67  			request.setRemoteUser(MockMerlinKeys.USER_ID_PROFESOR.toString());
68  			request.addParameter("companyId", MockMerlinKeys.COURSE_ID_2.toString());
69  			response.addProperty("companyId", MockMerlinKeys.COURSE_ID_2.toString());
70  			request.addParameter("userType", MerlinWebKeys.TEACHER);
71  			request.addParameter("visible", "true");
72  			request.addParameter("resubmit", "true");
73  			request.addParameter("emailsToTeacher", "true");
74  			request.addParameter("preventLateSubmissions", "true");
75  			
76  			request.setContextPath("assignments/");
77  			request.addParameter("type", "Online Activity");
78  			request.addParameter("startDate", "01/01/2001");
79  			request.addParameter("endDate", "01/01/2001");
80  			request.addParameter("hideDescriptionBeforeAvailable", "true");
81  			//request.addParameter("name", "nombre de la actividad");
82  			//request.addParameter("content", "content");
83  			controller.handleActionRequestInternal(request, response);
84  			String fin=response.getRenderParameter("fin");
85  			
86  			String assertMsg= new String ("\n\t<Expected> "+"fin"+" <Actual> "+fin);
87  			
88  			assertTrue(assertMsg, fin.equals("fin"));
89  			
90  			
91  		} catch (Exception e) {
92  			e.printStackTrace();
93  			assertTrue("error: "+e.getMessage(), false);
94  		}
95  	}
96  }