1   package com.germinus.merlin.controller.assignments;
2   
3   import org.springframework.mock.web.portlet.MockRenderRequest;
4   import org.springframework.mock.web.portlet.MockRenderResponse;
5   import org.springframework.web.portlet.ModelAndView;
6   
7   import com.germinus.merlin.controller.BaseControllerTestCase;
8   import com.germinus.merlin.mock.MockMerlinKeys;
9   import com.germinus.merlin.util.MerlinWebKeys;
10  import com.liferay.portal.util.WebKeys;
11  
12  public class AssignmentDetailsControllerTest extends BaseControllerTestCase {
13  	
14  	public AssignmentDetailsControllerTest() {
15  		super();	
16  		setControllerName("assignmentDetailsController");
17  		setApplicationContextFile("assignments.xml");
18  	}
19  	
20  	public void  testHandleRenderRequestInternal(){
21  		
22  		try {
23  			AssignmentDetailsController controller =(AssignmentDetailsController) loadController();
24  			//TODO parece que hace falta el userUtil, no esta implementado en MockMerlinFatocy.
25  					
26  			MockRenderRequest request = mockMerlinFactory.getRenderRequest();
27  			MockRenderResponse response = mockMerlinFactory.getRenderResponse();
28  			
29  			log.debug("hola prueba");
30  			
31  			request.addParameter("assignmentId", MockMerlinKeys.EDIT_ASSIGNMENT_ID.toString());
32  			request.addParameter("companyId", String.valueOf(MockMerlinKeys.COURSE_ID_1));
33  			//request.addParameter("companyId", MockMerlinKeys.COURSE_ID_2.toString());
34  			//request.addParameter("userId", MockMerlinKeys.USER_ID_PROFESOR.toString());
35  			request.setRemoteUser(MockMerlinKeys.USER_ID_PROFESOR.toString());
36  			request.setAttribute(WebKeys.LAYOUT, mockMerlinFactory.getLayout());
37  			request.addParameter("type", "Online Activity");
38  			//request.addParameter("userType", MerlinWebKeys.TEACHER);
39  			ModelAndView modelAndView = controller.handleRenderRequest(request, response);
40  			
41  			String assertMsg= new String ("\n\t<Expected> "+MockMerlinKeys.DETAILS_ASSIGNMENT_ONLINE_TEACHER+" <Actual> "+modelAndView.getViewName());
42  			assertTrue(assertMsg, modelAndView.getViewName().equals(MockMerlinKeys.DETAILS_ASSIGNMENT_ONLINE_TEACHER));
43  					
44  			//request.setParameter("userId", MockMerlinKeys.USER_ID_ALUMNO.toString());
45  			
46  			String idAlumno=MockMerlinKeys.USER_ID_ALUMNO.toString();
47  			request.setRemoteUser(idAlumno);
48  			request.setParameter("userType", MerlinWebKeys.STUDENTS);
49  			request.setParameter("companyId", "10100");//String.valueOf(MockMerlinKeys.COURSE_ID_2));
50  			
51  			modelAndView = controller.handleRenderRequest(request, response);
52  //TODO getUserType siempre devuelve teacher, por lo que no se puede probar esto, hay que aƱadir estas opciones en el mock.			
53  /*			assertMsg= new String ("\n\t<Expected> "+MockMerlinKeys.DETAILS_ASSIGNMENT_STUDENT+" <Actual> "+modelAndView.getViewName());
54  			assertTrue(assertMsg, modelAndView.getViewName().equals(MockMerlinKeys.DETAILS_ASSIGNMENT_STUDENT));
55  			
56  			//request.setParameter("userType", "GUEST");
57  			request.setRemoteUser("otro");
58  			modelAndView = controller.handleRenderRequest(request, response);
59  			
60  			assertMsg= new String ("\n\t<Expected> "+MockMerlinKeys.ASSIGNMENT_USER_NOT_AUTHORIZED+" <Actual> "+modelAndView.getViewName());
61  			assertTrue(assertMsg, modelAndView.getViewName().equals(MockMerlinKeys.ASSIGNMENT_USER_NOT_AUTHORIZED));
62  	*/			
63  		
64  		
65  		} catch (Exception e) {
66  			e.printStackTrace();
67  			assertTrue("error: "+e.getMessage(), false);
68  		}
69  		
70  	}
71  	
72  }