Optimize and refactor (#2302)
This commit is contained in:
committed by
GitHub
parent
4e95722017
commit
f8bf4038f1
+8
-8
@@ -45,9 +45,9 @@ public class EmployeeControllerIntegrationTest {
|
||||
given(service.save(Mockito.anyObject())).willReturn(alex);
|
||||
|
||||
mvc.perform(post("/api/employees").contentType(MediaType.APPLICATION_JSON)
|
||||
.content(JsonUtil.toJson(alex)))
|
||||
.andExpect(status().isCreated())
|
||||
.andExpect(jsonPath("$.name", is("alex")));
|
||||
.content(JsonUtil.toJson(alex)))
|
||||
.andExpect(status().isCreated())
|
||||
.andExpect(jsonPath("$.name", is("alex")));
|
||||
verify(service, VerificationModeFactory.times(1)).save(Mockito.anyObject());
|
||||
reset(service);
|
||||
}
|
||||
@@ -63,11 +63,11 @@ public class EmployeeControllerIntegrationTest {
|
||||
given(service.getAllEmployees()).willReturn(allEmployees);
|
||||
|
||||
mvc.perform(get("/api/employees").contentType(MediaType.APPLICATION_JSON))
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(jsonPath("$", hasSize(3)))
|
||||
.andExpect(jsonPath("$[0].name", is(alex.getName())))
|
||||
.andExpect(jsonPath("$[1].name", is(john.getName())))
|
||||
.andExpect(jsonPath("$[2].name", is(bob.getName())));
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(jsonPath("$", hasSize(3)))
|
||||
.andExpect(jsonPath("$[0].name", is(alex.getName())))
|
||||
.andExpect(jsonPath("$[1].name", is(john.getName())))
|
||||
.andExpect(jsonPath("$[2].name", is(bob.getName())));
|
||||
verify(service, VerificationModeFactory.times(1)).getAllEmployees();
|
||||
reset(service);
|
||||
}
|
||||
|
||||
+6
-6
@@ -1,9 +1,5 @@
|
||||
package org.baeldung.boot.boottest;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -11,6 +7,10 @@ import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
|
||||
import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@DataJpaTest
|
||||
public class EmployeeRepositoryIntegrationTest {
|
||||
@@ -65,7 +65,7 @@ public class EmployeeRepositoryIntegrationTest {
|
||||
List<Employee> allEmployees = employeeRepository.findAll();
|
||||
|
||||
assertThat(allEmployees).hasSize(3)
|
||||
.extracting(Employee::getName)
|
||||
.containsOnly(alex.getName(), ron.getName(), bob.getName());
|
||||
.extracting(Employee::getName)
|
||||
.containsOnly(alex.getName(), ron.getName(), bob.getName());
|
||||
}
|
||||
}
|
||||
|
||||
+22
-22
@@ -1,19 +1,5 @@
|
||||
package org.baeldung.boot.boottest;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
|
||||
import static org.hamcrest.Matchers.hasSize;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import org.baeldung.boot.DemoApplication;
|
||||
import org.junit.After;
|
||||
import org.junit.Test;
|
||||
@@ -27,6 +13,20 @@ import org.springframework.http.MediaType;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
import org.springframework.test.web.servlet.MockMvc;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.hamcrest.CoreMatchers.is;
|
||||
import static org.hamcrest.Matchers.greaterThanOrEqualTo;
|
||||
import static org.hamcrest.Matchers.hasSize;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
|
||||
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
|
||||
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = DemoApplication.class)
|
||||
@AutoConfigureMockMvc
|
||||
@@ -49,11 +49,11 @@ public class EmployeeRestControllerIntegrationTest {
|
||||
public void whenValidInput_thenCreateEmployee() throws IOException, Exception {
|
||||
Employee bob = new Employee("bob");
|
||||
mvc.perform(post("/api/employees").contentType(MediaType.APPLICATION_JSON)
|
||||
.content(JsonUtil.toJson(bob)));
|
||||
.content(JsonUtil.toJson(bob)));
|
||||
|
||||
List<Employee> found = repository.findAll();
|
||||
assertThat(found).extracting(Employee::getName)
|
||||
.containsOnly("bob");
|
||||
.containsOnly("bob");
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -63,12 +63,12 @@ public class EmployeeRestControllerIntegrationTest {
|
||||
createTestEmployee("alex");
|
||||
|
||||
mvc.perform(get("/api/employees").contentType(MediaType.APPLICATION_JSON))
|
||||
.andDo(print())
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("$", hasSize(greaterThanOrEqualTo(2))))
|
||||
.andExpect(jsonPath("$[0].name", is("bob")))
|
||||
.andExpect(jsonPath("$[1].name", is("alex")));
|
||||
.andDo(print())
|
||||
.andExpect(status().isOk())
|
||||
.andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
|
||||
.andExpect(jsonPath("$", hasSize(greaterThanOrEqualTo(2))))
|
||||
.andExpect(jsonPath("$[0].name", is("bob")))
|
||||
.andExpect(jsonPath("$[1].name", is("alex")));
|
||||
}
|
||||
|
||||
private void createTestEmployee(String name) {
|
||||
|
||||
+19
-19
@@ -1,10 +1,5 @@
|
||||
package org.baeldung.boot.boottest;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
@@ -16,6 +11,11 @@ import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.test.context.junit4.SpringRunner;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
||||
@RunWith(SpringRunner.class)
|
||||
public class EmployeeServiceImplIntegrationTest {
|
||||
|
||||
@@ -44,27 +44,27 @@ public class EmployeeServiceImplIntegrationTest {
|
||||
List<Employee> allEmployees = Arrays.asList(john, bob, alex);
|
||||
|
||||
Mockito.when(employeeRepository.findByName(john.getName()))
|
||||
.thenReturn(john);
|
||||
.thenReturn(john);
|
||||
Mockito.when(employeeRepository.findByName(alex.getName()))
|
||||
.thenReturn(alex);
|
||||
.thenReturn(alex);
|
||||
Mockito.when(employeeRepository.findByName("wrong_name"))
|
||||
.thenReturn(null);
|
||||
.thenReturn(null);
|
||||
Mockito.when(employeeRepository.findById(john.getId()))
|
||||
.thenReturn(john);
|
||||
.thenReturn(john);
|
||||
Mockito.when(employeeRepository.findAll())
|
||||
.thenReturn(allEmployees);
|
||||
.thenReturn(allEmployees);
|
||||
Mockito.when(employeeRepository.findById(-99L))
|
||||
.thenReturn(null);
|
||||
.thenReturn(null);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenValidName_thenEmployeeShouldBeFound() {
|
||||
String name = "alex";
|
||||
Employee found = employeeService.getEmployeeByName(name);
|
||||
|
||||
assertThat(found.getName())
|
||||
|
||||
assertThat(found.getName())
|
||||
.isEqualTo(name);
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void whenInValidName_thenEmployeeShouldNotBeFound() {
|
||||
@@ -114,25 +114,25 @@ public class EmployeeServiceImplIntegrationTest {
|
||||
List<Employee> allEmployees = employeeService.getAllEmployees();
|
||||
verifyFindAllEmployeesIsCalledOnce();
|
||||
assertThat(allEmployees).hasSize(3)
|
||||
.extracting(Employee::getName)
|
||||
.contains(alex.getName(), john.getName(), bob.getName());
|
||||
.extracting(Employee::getName)
|
||||
.contains(alex.getName(), john.getName(), bob.getName());
|
||||
}
|
||||
|
||||
private void verifyFindByNameIsCalledOnce(String name) {
|
||||
Mockito.verify(employeeRepository, VerificationModeFactory.times(1))
|
||||
.findByName(name);
|
||||
.findByName(name);
|
||||
Mockito.reset(employeeRepository);
|
||||
}
|
||||
|
||||
private void verifyFindByIdIsCalledOnce() {
|
||||
Mockito.verify(employeeRepository, VerificationModeFactory.times(1))
|
||||
.findById(Mockito.anyLong());
|
||||
.findById(Mockito.anyLong());
|
||||
Mockito.reset(employeeRepository);
|
||||
}
|
||||
|
||||
private void verifyFindAllEmployeesIsCalledOnce() {
|
||||
Mockito.verify(employeeRepository, VerificationModeFactory.times(1))
|
||||
.findAll();
|
||||
.findAll();
|
||||
Mockito.reset(employeeRepository);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
package org.baeldung.boot.boottest;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
class JsonUtil {
|
||||
static byte[] toJson(Object object) throws IOException {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
Reference in New Issue
Block a user