61 lines
1.7 KiB
Java
Raw Normal View History

package com.baeldung.servlets;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;
import java.io.PrintWriter;
import java.io.StringWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import com.baeldung.model.Employee;
import com.google.gson.Gson;
@RunWith(MockitoJUnitRunner.class)
public class EmployeeServletTest {
2018-05-20 17:04:21 +02:00
@Mock
HttpServletRequest httpServletRequest;
2018-05-20 17:04:21 +02:00
@Mock
HttpServletResponse httpServletResponse;
2018-05-20 17:04:21 +02:00
Employee employee;
2018-05-20 17:04:21 +02:00
@Test
2018-05-20 17:04:21 +02:00
public void whenPostRequestToEmployeeServlet_thenEmployeeReturnedAsJson() throws Exception {
//Given
int id = 1;
2018-05-20 17:04:21 +02:00
String name = "Karan Khanna";
String department = "IT";
Double salary = 5000.0;
employee = new Employee(id, name, department, salary);
//when
when(httpServletRequest.getParameter("id")).thenReturn(String.valueOf(id));
2018-05-20 17:04:21 +02:00
when(httpServletRequest.getParameter("name")).thenReturn(name);
when(httpServletRequest.getParameter("department")).thenReturn(department);
when(httpServletRequest.getParameter("salary")).thenReturn(String.valueOf(salary));
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
when(httpServletResponse.getWriter()).thenReturn(pw);
EmployeeServlet employeeServlet = new EmployeeServlet();
employeeServlet.doPost(httpServletRequest, httpServletResponse);
String employeeJsonString = sw.getBuffer().toString().trim();
Employee fetchedEmployee = new Gson().fromJson(employeeJsonString, Employee.class);
assertEquals(fetchedEmployee, employee);
}
}