[JAVA-8148] Code clean up
This commit is contained in:
parent
003d00daa9
commit
39f17dd3d1
@ -12,6 +12,4 @@ public class Employee {
|
|||||||
private String id;
|
private String id;
|
||||||
private String name;
|
private String name;
|
||||||
|
|
||||||
// standard getters and setters
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -16,16 +16,16 @@ public class EmployeeWebClient {
|
|||||||
public void consume() {
|
public void consume() {
|
||||||
|
|
||||||
Mono<Employee> employeeMono = client.get()
|
Mono<Employee> employeeMono = client.get()
|
||||||
.uri("/employees/{id}", "1")
|
.uri("/employees/{id}", "1")
|
||||||
.retrieve()
|
.retrieve()
|
||||||
.bodyToMono(Employee.class);
|
.bodyToMono(Employee.class);
|
||||||
|
|
||||||
employeeMono.subscribe(employee -> LOGGER.info("Employee: {}", employee));
|
employeeMono.subscribe(employee -> LOGGER.info("Employee: {}", employee));
|
||||||
|
|
||||||
Flux<Employee> employeeFlux = client.get()
|
Flux<Employee> employeeFlux = client.get()
|
||||||
.uri("/employees")
|
.uri("/employees")
|
||||||
.retrieve()
|
.retrieve()
|
||||||
.bodyToFlux(Employee.class);
|
.bodyToFlux(Employee.class);
|
||||||
|
|
||||||
employeeFlux.subscribe(employee -> LOGGER.info("Employee: {}", employee));
|
employeeFlux.subscribe(employee -> LOGGER.info("Employee: {}", employee));
|
||||||
}
|
}
|
||||||
|
@ -17,29 +17,27 @@ public class EmployeeWebSecurityConfig {
|
|||||||
@Bean
|
@Bean
|
||||||
public MapReactiveUserDetailsService userDetailsService() {
|
public MapReactiveUserDetailsService userDetailsService() {
|
||||||
UserDetails user = User
|
UserDetails user = User
|
||||||
.withUsername("admin")
|
.withUsername("admin")
|
||||||
.password(passwordEncoder().encode("password"))
|
.password(passwordEncoder().encode("password"))
|
||||||
.roles("ADMIN")
|
.roles("ADMIN")
|
||||||
.build();
|
.build();
|
||||||
return new MapReactiveUserDetailsService(user);
|
return new MapReactiveUserDetailsService(user);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
|
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
|
||||||
http.csrf()
|
http
|
||||||
.disable()
|
.csrf().disable()
|
||||||
.authorizeExchange()
|
.authorizeExchange()
|
||||||
.pathMatchers(HttpMethod.POST, "/employees/update")
|
.pathMatchers(HttpMethod.POST, "/employees/update").hasRole("ADMIN")
|
||||||
.hasRole("ADMIN")
|
.pathMatchers("/**").permitAll()
|
||||||
.pathMatchers("/**")
|
.and()
|
||||||
.permitAll()
|
.httpBasic();
|
||||||
.and()
|
|
||||||
.httpBasic();
|
|
||||||
return http.build();
|
return http.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public PasswordEncoder passwordEncoder() {
|
public PasswordEncoder passwordEncoder() {
|
||||||
return new BCryptPasswordEncoder();
|
return new BCryptPasswordEncoder();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,50 +25,49 @@ public class EmployeeFunctionalConfig {
|
|||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
RouterFunction<ServerResponse> getAllEmployeesRoute() {
|
RouterFunction<ServerResponse> getAllEmployeesRoute() {
|
||||||
return route(GET("/employees"),
|
return route(GET("/employees"),
|
||||||
req -> ok().body(
|
req -> ok().body(
|
||||||
employeeRepository().findAllEmployees(), Employee.class));
|
employeeRepository().findAllEmployees(), Employee.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
RouterFunction<ServerResponse> getEmployeeByIdRoute() {
|
RouterFunction<ServerResponse> getEmployeeByIdRoute() {
|
||||||
return route(GET("/employees/{id}"),
|
return route(GET("/employees/{id}"),
|
||||||
req -> ok().body(
|
req -> ok().body(
|
||||||
employeeRepository().findEmployeeById(req.pathVariable("id")), Employee.class));
|
employeeRepository().findEmployeeById(req.pathVariable("id")), Employee.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
RouterFunction<ServerResponse> updateEmployeeRoute() {
|
RouterFunction<ServerResponse> updateEmployeeRoute() {
|
||||||
return route(POST("/employees/update"),
|
return route(POST("/employees/update"),
|
||||||
req -> req.body(toMono(Employee.class))
|
req -> req.body(toMono(Employee.class))
|
||||||
.doOnNext(employeeRepository()::updateEmployee)
|
.doOnNext(employeeRepository()::updateEmployee)
|
||||||
.then(ok().build()));
|
.then(ok().build()));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
RouterFunction<ServerResponse> composedRoutes() {
|
RouterFunction<ServerResponse> composedRoutes() {
|
||||||
return
|
return
|
||||||
route(GET("/employees"),
|
route(GET("/employees"),
|
||||||
req -> ok().body(
|
req -> ok().body(
|
||||||
employeeRepository().findAllEmployees(), Employee.class))
|
employeeRepository().findAllEmployees(), Employee.class))
|
||||||
|
|
||||||
.and(route(GET("/employees/{id}"),
|
.and(route(GET("/employees/{id}"),
|
||||||
req -> ok().body(
|
req -> ok().body(
|
||||||
employeeRepository().findEmployeeById(req.pathVariable("id")), Employee.class)))
|
employeeRepository().findEmployeeById(req.pathVariable("id")), Employee.class)))
|
||||||
|
|
||||||
.and(route(POST("/employees/update"),
|
.and(route(POST("/employees/update"),
|
||||||
req -> req.body(toMono(Employee.class))
|
req -> req.body(toMono(Employee.class))
|
||||||
.doOnNext(employeeRepository()::updateEmployee)
|
.doOnNext(employeeRepository()::updateEmployee)
|
||||||
.then(ok().build())));
|
.then(ok().build())));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
|
public SecurityWebFilterChain springSecurityFilterChain(ServerHttpSecurity http) {
|
||||||
http.csrf()
|
http
|
||||||
.disable()
|
.csrf().disable()
|
||||||
.authorizeExchange()
|
.authorizeExchange()
|
||||||
.anyExchange()
|
.anyExchange().permitAll();
|
||||||
.permitAll();
|
|
||||||
return http.build();
|
return http.build();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ import static org.mockito.Mockito.verifyNoInteractions;
|
|||||||
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
|
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
|
||||||
|
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest(webEnvironment = RANDOM_PORT, classes= EmployeeSpringApplication.class)
|
@SpringBootTest(webEnvironment = RANDOM_PORT, classes = EmployeeSpringApplication.class)
|
||||||
public class EmployeeControllerIntegrationTest {
|
public class EmployeeControllerIntegrationTest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -39,10 +39,10 @@ public class EmployeeControllerIntegrationTest {
|
|||||||
given(employeeRepository.findEmployeeById("1")).willReturn(Mono.just(employee));
|
given(employeeRepository.findEmployeeById("1")).willReturn(Mono.just(employee));
|
||||||
|
|
||||||
testClient.get()
|
testClient.get()
|
||||||
.uri("/employees/1")
|
.uri("/employees/1")
|
||||||
.exchange()
|
.exchange()
|
||||||
.expectStatus().isOk()
|
.expectStatus().isOk()
|
||||||
.expectBody(Employee.class).isEqualTo(employee);
|
.expectBody(Employee.class).isEqualTo(employee);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@ -57,14 +57,14 @@ public class EmployeeControllerIntegrationTest {
|
|||||||
given(employeeRepository.findAllEmployees()).willReturn(employeeFlux);
|
given(employeeRepository.findAllEmployees()).willReturn(employeeFlux);
|
||||||
|
|
||||||
testClient.get()
|
testClient.get()
|
||||||
.uri("/employees")
|
.uri("/employees")
|
||||||
.exchange()
|
.exchange()
|
||||||
.expectStatus().isOk()
|
.expectStatus().isOk()
|
||||||
.expectBodyList(Employee.class).isEqualTo(employeeList);
|
.expectBodyList(Employee.class).isEqualTo(employeeList);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@WithMockUser(username = "admin", roles = {"ADMIN"})
|
@WithMockUser(username = "admin", roles = { "ADMIN" })
|
||||||
public void givenValidUser_whenUpdateEmployee_thenEmployeeUpdated() {
|
public void givenValidUser_whenUpdateEmployee_thenEmployeeUpdated() {
|
||||||
Employee employee = new Employee("10", "Employee 10 Updated");
|
Employee employee = new Employee("10", "Employee 10 Updated");
|
||||||
|
|
||||||
|
@ -2,10 +2,8 @@ package com.baeldung.reactive.webflux.functional;
|
|||||||
|
|
||||||
import com.baeldung.reactive.webflux.Employee;
|
import com.baeldung.reactive.webflux.Employee;
|
||||||
import com.baeldung.reactive.webflux.EmployeeRepository;
|
import com.baeldung.reactive.webflux.EmployeeRepository;
|
||||||
import org.junit.FixMethodOrder;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.runners.MethodSorters;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||||
@ -19,10 +17,10 @@ import java.util.List;
|
|||||||
|
|
||||||
import static org.mockito.BDDMockito.given;
|
import static org.mockito.BDDMockito.given;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
|
import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT;
|
||||||
|
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT, classes = EmployeeSpringFunctionalApplication.class)
|
@SpringBootTest(webEnvironment = RANDOM_PORT, classes = EmployeeSpringFunctionalApplication.class)
|
||||||
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
|
|
||||||
public class EmployeeSpringFunctionalIntegrationTest {
|
public class EmployeeSpringFunctionalIntegrationTest {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@ -34,58 +32,54 @@ public class EmployeeSpringFunctionalIntegrationTest {
|
|||||||
@Test
|
@Test
|
||||||
public void givenEmployeeId_whenGetEmployeeById_thenCorrectEmployee() {
|
public void givenEmployeeId_whenGetEmployeeById_thenCorrectEmployee() {
|
||||||
WebTestClient client = WebTestClient
|
WebTestClient client = WebTestClient
|
||||||
.bindToRouterFunction(config.getEmployeeByIdRoute())
|
.bindToRouterFunction(config.getEmployeeByIdRoute())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
Employee employee = new Employee("1", "Employee 1");
|
Employee employee = new Employee("1", "Employee 1");
|
||||||
|
|
||||||
given(employeeRepository.findEmployeeById("1")).willReturn(Mono.just(employee));
|
given(employeeRepository.findEmployeeById("1")).willReturn(Mono.just(employee));
|
||||||
|
|
||||||
client.get()
|
client.get()
|
||||||
.uri("/employees/1")
|
.uri("/employees/1")
|
||||||
.exchange()
|
.exchange()
|
||||||
.expectStatus()
|
.expectStatus().isOk()
|
||||||
.isOk()
|
.expectBody(Employee.class).isEqualTo(employee);
|
||||||
.expectBody(Employee.class)
|
|
||||||
.isEqualTo(employee);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void whenGetAllEmployees_thenCorrectEmployees() {
|
public void whenGetAllEmployees_thenCorrectEmployees() {
|
||||||
WebTestClient client = WebTestClient
|
WebTestClient client = WebTestClient
|
||||||
.bindToRouterFunction(config.getAllEmployeesRoute())
|
.bindToRouterFunction(config.getAllEmployeesRoute())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
List<Employee> employees = Arrays.asList(
|
List<Employee> employees = Arrays.asList(
|
||||||
new Employee("1", "Employee 1"),
|
new Employee("1", "Employee 1"),
|
||||||
new Employee("2", "Employee 2"));
|
new Employee("2", "Employee 2")
|
||||||
|
);
|
||||||
|
|
||||||
Flux<Employee> employeeFlux = Flux.fromIterable(employees);
|
Flux<Employee> employeeFlux = Flux.fromIterable(employees);
|
||||||
given(employeeRepository.findAllEmployees()).willReturn(employeeFlux);
|
given(employeeRepository.findAllEmployees()).willReturn(employeeFlux);
|
||||||
|
|
||||||
client.get()
|
client.get()
|
||||||
.uri("/employees")
|
.uri("/employees")
|
||||||
.exchange()
|
.exchange()
|
||||||
.expectStatus()
|
.expectStatus().isOk()
|
||||||
.isOk()
|
.expectBodyList(Employee.class).isEqualTo(employees);
|
||||||
.expectBodyList(Employee.class)
|
|
||||||
.isEqualTo(employees);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void whenUpdateEmployee_thenEmployeeUpdated() {
|
public void whenUpdateEmployee_thenEmployeeUpdated() {
|
||||||
WebTestClient client = WebTestClient
|
WebTestClient client = WebTestClient
|
||||||
.bindToRouterFunction(config.updateEmployeeRoute())
|
.bindToRouterFunction(config.updateEmployeeRoute())
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
Employee employee = new Employee("1", "Employee 1 Updated");
|
Employee employee = new Employee("1", "Employee 1 Updated");
|
||||||
|
|
||||||
client.post()
|
client.post()
|
||||||
.uri("/employees/update")
|
.uri("/employees/update")
|
||||||
.body(Mono.just(employee), Employee.class)
|
.body(Mono.just(employee), Employee.class)
|
||||||
.exchange()
|
.exchange()
|
||||||
.expectStatus()
|
.expectStatus().isOk();
|
||||||
.isOk();
|
|
||||||
|
|
||||||
verify(employeeRepository).updateEmployee(employee);
|
verify(employeeRepository).updateEmployee(employee);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user