BAEL-2221

This commit is contained in:
Swapan Pramanick
2018-10-29 03:14:08 +05:30
parent da052c96d3
commit dbf2721d25
5 changed files with 38 additions and 119 deletions
@@ -1,9 +1,12 @@
package org.baeldung.web.service;
import static org.springframework.test.web.client.match.MockRestRequestMatchers.method;
import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo;
import static org.springframework.test.web.client.response.MockRestResponseCreators.withStatus;
import java.net.URI;
import org.baeldung.SpringTestConfig;
import org.baeldung.web.dto.EmployeeDto;
import org.baeldung.web.model.Employee;
import org.junit.Assert;
import org.junit.Before;
@@ -19,11 +22,6 @@ import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.client.ExpectedCount;
import org.springframework.test.web.client.MockRestServiceServer;
import static org.baeldung.web.service.EmployeeService.EMP_URL_PREFIX;
import static org.baeldung.web.service.EmployeeService.URL_SEP;
import static org.springframework.test.web.client.match.MockRestRequestMatchers.*;
import static org.springframework.test.web.client.response.MockRestResponseCreators.*;
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -45,33 +43,24 @@ public class EmployeeServiceMockRestServiceServerUnitTest {
private ObjectMapper mapper = new ObjectMapper();
@Before
public void initMocks() {
public void init() {
mockServer = MockRestServiceServer.createServer(restTemplate);
}
@Test
public void givenMockingIsDoneByMockRestServiceServer_whenGetIsCalled_shouldReturnMockedObject() throws Exception {
String id = "E001";
Employee emp = new Employee();
emp.setId(id);
emp.setName("Eric Simmons");
emp.setSalary(10000.00d);
Employee emp = new Employee("E001", "Eric Simmons");
String fullUri = new StringBuilder().append(EMP_URL_PREFIX).append(URL_SEP)
.append(id).toString();
mockServer.expect(ExpectedCount.once(), requestTo(new URI(fullUri)))
.andExpect(method(HttpMethod.GET))
.andRespond(withStatus(HttpStatus.OK)
.contentType(MediaType.APPLICATION_JSON)
.body(mapper.writeValueAsString(emp)));
EmployeeDto employeeDto = empService.getEmployee(id);
logger.info("Employee received as: {}", employeeDto);
mockServer.expect(ExpectedCount.once(),
requestTo(new URI("http://localhost:8080/employee/E001")))
.andExpect(method(HttpMethod.GET))
.andRespond(withStatus(HttpStatus.OK)
.contentType(MediaType.APPLICATION_JSON)
.body(mapper.writeValueAsString(emp)));
Employee employee = empService.getEmployee("E001");
mockServer.verify();
Assert.assertEquals(emp.getName(), employeeDto.getName());
Assert.assertEquals(emp.getId(), employeeDto.getId());
Assert.assertEquals(emp, employee);
}
}
@@ -1,11 +1,13 @@
package org.baeldung.web.service;
import org.baeldung.web.dto.EmployeeDto;
import org.baeldung.web.model.Employee;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.mockito.*;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpStatus;
@@ -29,20 +31,13 @@ public class EmployeeServiceUnitTest {
@Test
public void givenMockingIsDoneByMockito_whenGetIsCalled_shouldReturnMockedObject() throws Exception {
String id = "E001";
Employee emp = new Employee();
emp.setId(id);
emp.setName("Eric Simmons");
emp.setSalary(10000.00d);
Mockito
.when(restTemplate.getForEntity(EmployeeService.EMP_URL_PREFIX
+ EmployeeService.URL_SEP + id, Employee.class))
.thenReturn(new ResponseEntity<Employee>(emp, HttpStatus.OK));
Employee emp = new Employee("E001", "Eric Simmons");
Mockito.when(restTemplate.getForEntity("http://localhost:8080/employee/E001", Employee.class))
.thenReturn(new ResponseEntity(emp, HttpStatus.OK));
EmployeeDto employeeDto = empService.getEmployee(id);
logger.info("Employee received as: {}", employeeDto);
Assert.assertEquals(emp.getName(), employeeDto.getName());
Assert.assertEquals(emp.getSalary(), employeeDto.getSalary());
Employee employee = empService.getEmployee("E001");
Assert.assertEquals(emp, employee);
}
}