/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package servlet.test;
import entity.Enrollment;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import jpa.controllers.EnrollmentJpaController;
import mobileAPI.MyCoursesListServlet;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.Assert.*;
import org.mockito.Mockito;
/**
*
* @author atap
*/
public class MyCoursesListServletTest {
private MyCoursesListServlet myServlet;
public MyCoursesListServletTest() {
}
@Test
public void testServlet() throws ServletException, IOException {
HttpServletRequest requestMock = Mockito.mock(HttpServletRequest.class);
HttpServletResponse responseMock = Mockito.mock(HttpServletResponse.class);
HttpSession stubHttpSession = Mockito.mock(HttpSession.class);
// get Courses of User who has userId 1.
Mockito.when(requestMock.getParameter("userID")).thenReturn("1");
// set the Json output to the stub to compare with real value
Mockito.when(stubHttpSession.getAttribute("jsonOutput")).thenReturn("{\"myCoursesList\":[{\"courseID\":13,\"courseName\":\"Introduction to Analysis\"},{\"courseID\":5,\"courseName\":\"Developmental Cognitive Neuroscience\"}]}");
StringWriter sw = new StringWriter();
PrintWriter out = new PrintWriter(sw);
Mockito.when(responseMock.getWriter()).thenReturn(out);
myServlet = new MyCoursesListServlet();
try {
myServlet.processRequest(requestMock, responseMock);
} catch (IOException ex) {
Logger.getLogger(LoginServletTest.class.getName()).log(Level.SEVERE, null, ex);
}
String result = sw.getBuffer().toString().trim();
System.out.println(result);
Assert.assertEquals(result, stubHttpSession.getAttribute("jsonOutput"));
}
}