Commit 7036f8c9 authored by Syed Javed Ali's avatar Syed Javed Ali

Added http response status and Stepverifier test

parent a0b5d0b7
...@@ -27,7 +27,7 @@ public class EmployeeController { ...@@ -27,7 +27,7 @@ public class EmployeeController {
@PostMapping(path = "/create") @PostMapping(path = "/create")
@ResponseStatus(HttpStatus.CREATED) @ResponseStatus(HttpStatus.CREATED)
public Mono<Employee> create(@RequestBody Employee e) { public Mono<Employee> create(@RequestBody Employee e) {
return employeeService.insert(e); return employeeService.insert(e).log();
} }
/** /**
...@@ -37,7 +37,7 @@ public class EmployeeController { ...@@ -37,7 +37,7 @@ public class EmployeeController {
*/ */
@GetMapping("/{id}") @GetMapping("/{id}")
public ResponseEntity<Mono<Employee>> findById(@PathVariable("id") Integer id) { public ResponseEntity<Mono<Employee>> findById(@PathVariable("id") Integer id) {
Mono<Employee> emp = employeeService.fetchById(id); Mono<Employee> emp = employeeService.fetchById(id).log();
HttpStatus status = emp!=null ?HttpStatus.OK:HttpStatus.NOT_FOUND; HttpStatus status = emp!=null ?HttpStatus.OK:HttpStatus.NOT_FOUND;
return new ResponseEntity<Mono<Employee>>(emp, status); return new ResponseEntity<Mono<Employee>>(emp, status);
} }
...@@ -48,8 +48,11 @@ public class EmployeeController { ...@@ -48,8 +48,11 @@ public class EmployeeController {
* @return Flux * @return Flux
*/ */
@GetMapping("/name/{name}") @GetMapping("/name/{name}")
public Flux<Employee> findByName(@PathVariable("name") String name) { public ResponseEntity<Flux<Employee>> findByName(@PathVariable("name") String name) {
return employeeService.fetchByName(name); Flux<Employee> employeeFlux=employeeService.fetchByName(name).log();
HttpStatus status=employeeFlux!=null?HttpStatus.OK:HttpStatus.NOT_FOUND;
return new ResponseEntity<>(employeeFlux,status);
} }
/** /**
...@@ -58,7 +61,7 @@ public class EmployeeController { ...@@ -58,7 +61,7 @@ public class EmployeeController {
*/ */
@GetMapping(value = "", produces = MediaType.TEXT_EVENT_STREAM_VALUE) @GetMapping(value = "", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<Employee> findAll() { public Flux<Employee> findAll() {
Flux<Employee> emps = employeeService.fetchAll(); Flux<Employee> emps = employeeService.fetchAll().log();
return emps; return emps;
} }
...@@ -68,9 +71,8 @@ public class EmployeeController { ...@@ -68,9 +71,8 @@ public class EmployeeController {
* @return Mono * @return Mono
*/ */
@PutMapping("/update") @PutMapping("/update")
@ResponseStatus(HttpStatus.OK)
public Mono<Employee> update(@RequestBody Employee emp) { public Mono<Employee> update(@RequestBody Employee emp) {
return employeeService.modify(emp); return employeeService.modify(emp).log();
} }
/** /**
...@@ -79,7 +81,7 @@ public class EmployeeController { ...@@ -79,7 +81,7 @@ public class EmployeeController {
* @return Void * @return Void
*/ */
@DeleteMapping("/delete/{id}") @DeleteMapping("/delete/{id}")
@ResponseStatus(HttpStatus.OK) @ResponseStatus(HttpStatus.NO_CONTENT)
public void deleteById(@PathVariable("id") Integer id) { public void deleteById(@PathVariable("id") Integer id) {
employeeService.removeById(id); employeeService.removeById(id);
} }
......
...@@ -24,6 +24,7 @@ public class EmployeeServiceImpl implements IEmployeeService { ...@@ -24,6 +24,7 @@ public class EmployeeServiceImpl implements IEmployeeService {
*/ */
@Override @Override
public Mono<Employee> insert(Employee emp) { public Mono<Employee> insert(Employee emp) {
return employeeRepository.save(emp); return employeeRepository.save(emp);
} }
......
...@@ -156,11 +156,11 @@ public class EmployeeControllerTest { ...@@ -156,11 +156,11 @@ public class EmployeeControllerTest {
{ {
Mono<Void> voidReturn = Mono.empty(); Mono<Void> voidReturn = Mono.empty();
Mockito Mockito
.when(repository.deleteById(1)) .when(repository.deleteById(201))
.thenReturn(voidReturn); .thenReturn(voidReturn);
webTestClient.delete().uri("/delete/{id}", 1) webTestClient.delete().uri("/delete/{id}", 201)
.exchange() .exchange()
.expectStatus().isOk(); .expectStatus().isNoContent();
} }
} }
...@@ -9,6 +9,7 @@ import org.springframework.boot.test.context.SpringBootTest; ...@@ -9,6 +9,7 @@ import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.boot.test.mock.mockito.MockBean;
import reactor.core.publisher.Flux; import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono; import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;
import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertEquals;
...@@ -27,6 +28,10 @@ public class EmployeeServiceTest { ...@@ -27,6 +28,10 @@ public class EmployeeServiceTest {
Mono<Employee> employeeMono=Mono.just(employee); Mono<Employee> employeeMono=Mono.just(employee);
Mockito.when(employeeRepository.save(employee)).thenReturn(employeeMono); Mockito.when(employeeRepository.save(employee)).thenReturn(employeeMono);
assertEquals(employeeMono,employeeService.insert(employee)); assertEquals(employeeMono,employeeService.insert(employee));
StepVerifier.create(employeeService.insert(employee).log())
.expectNext(employee)
.expectComplete()
.verify();
} }
...@@ -36,15 +41,24 @@ public class EmployeeServiceTest { ...@@ -36,15 +41,24 @@ public class EmployeeServiceTest {
Mono<Employee> employeeMono=Mono.just(employee); Mono<Employee> employeeMono=Mono.just(employee);
Mockito.when(employeeRepository.findById(101)).thenReturn(employeeMono); Mockito.when(employeeRepository.findById(101)).thenReturn(employeeMono);
assertEquals(employeeMono,employeeService.fetchById(101)); assertEquals(employeeMono,employeeService.fetchById(101));
StepVerifier.create(employeeService.fetchById(101).log())
.expectNext(employee)
.expectComplete()
.verify();
} }
@Test @Test
void testEmployeeFetchByName(){ void testEmployeeFetchByName(){
Employee employee=new Employee(101,"SYED",1500L); Employee employee=new Employee(101,"SYED",1500L);
Flux<Employee> employeeFlux=Flux.just(employee); Flux<Employee> employeeFlux=Flux.just(employee);
Mockito.when(employeeRepository.findByName("SYED")).thenReturn(employeeFlux); Mockito.when(employeeRepository.findByName("SYED")).thenReturn(employeeFlux);
assertEquals(employeeFlux,employeeService.fetchByName("SYED")); assertEquals(employeeFlux,employeeService.fetchByName("SYED"));
StepVerifier.create(employeeService.fetchByName("SYED").log())
.expectNext(employee)
.expectComplete()
.verify();
} }
...@@ -54,6 +68,10 @@ public class EmployeeServiceTest { ...@@ -54,6 +68,10 @@ public class EmployeeServiceTest {
Flux<Employee> employeeFlux=Flux.just(employee); Flux<Employee> employeeFlux=Flux.just(employee);
Mockito.when(employeeRepository.findAll()).thenReturn(employeeFlux); Mockito.when(employeeRepository.findAll()).thenReturn(employeeFlux);
assertEquals(employeeFlux,employeeService.fetchAll()); assertEquals(employeeFlux,employeeService.fetchAll());
StepVerifier.create(employeeService.fetchAll())
.expectNext(employee)
.expectComplete()
.verify();
} }
@Test @Test
...@@ -62,6 +80,10 @@ public class EmployeeServiceTest { ...@@ -62,6 +80,10 @@ public class EmployeeServiceTest {
Mono<Employee> employeeMono=Mono.just(employee); Mono<Employee> employeeMono=Mono.just(employee);
Mockito.when(employeeRepository.save(employee)).thenReturn(employeeMono); Mockito.when(employeeRepository.save(employee)).thenReturn(employeeMono);
assertEquals(employeeMono,employeeService.modify(employee)); assertEquals(employeeMono,employeeService.modify(employee));
StepVerifier.create(employeeService.modify(employee))
.expectNext(employee)
.expectComplete()
.verify();
} }
@Test @Test
...@@ -69,6 +91,9 @@ public class EmployeeServiceTest { ...@@ -69,6 +91,9 @@ public class EmployeeServiceTest {
Mono<Void> voidMono=Mono.empty(); Mono<Void> voidMono=Mono.empty();
Mockito.when(employeeRepository.deleteById(1)).thenReturn(voidMono); Mockito.when(employeeRepository.deleteById(1)).thenReturn(voidMono);
assertEquals(voidMono,employeeService.removeById(1)); assertEquals(voidMono,employeeService.removeById(1));
StepVerifier.create(employeeService.removeById(1))
.expectComplete()
.verify();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment