Commit ea59d826 authored by Sarika Sama's avatar Sarika Sama

added swagger and mockito junits test cases

parent 9f666188
package com.nisum.webfluxmongodbordermanagement.controller;
import com.nisum.webfluxmongodbordermanagement.entity.Order;
import com.nisum.webfluxmongodbordermanagement.entity.User;
import com.nisum.webfluxmongodbordermanagement.service.OrdersService;
import com.nisum.webfluxmongodbordermanagement.service.UserService;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.web.reactive.server.WebTestClient;
import reactor.core.publisher.Flux;
import reactor.test.StepVerifier;
import static org.mockito.Mockito.when;
@ExtendWith(SpringExtension.class)
@WebFluxTest(OrdersController.class)
public class OrderControllerTest {
@Autowired
private WebTestClient webTestClient;
@MockBean
private OrdersService ordersService;
@BeforeEach
void setUp() {
}
@AfterEach
void tearDown() {
}
@Test
void getAllUsers() {
}
@Test
public void testGetOrders() {
// Mock data
Flux<Order> order = Flux.just(new Order("1", "1123", "01", "ooppo01234","ooppo12345678","success"));
when(ordersService.getOrders()).thenReturn(order);
Flux<Order> responseBody = webTestClient.get().uri("/orders")
.exchange()
.expectStatus().isOk()
.returnResult(Order.class)
.getResponseBody();
//
StepVerifier.create(responseBody)
.expectSubscription()
.expectNextMatches(p -> p.getUserId().equals("01"))
.verifyComplete();
}
}
//package com.nisum.webfluxmongodbordermanagement.controller;
package com.nisum.webfluxmongodbordermanagement.controller;
import com.nisum.webfluxmongodbordermanagement.entity.User;
import com.nisum.webfluxmongodbordermanagement.service.UserService;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.web.reactive.server.WebTestClient;
import reactor.core.publisher.Flux;
import reactor.test.StepVerifier;
import static org.mockito.Mockito.when;
@ExtendWith(SpringExtension.class)
@WebFluxTest(UserController.class)
public class UserControllerTest {
@Autowired
private WebTestClient webTestClient;
@MockBean
private UserService userService;
@BeforeEach
void setUp() {
}
@AfterEach
void tearDown() {
}
@Test
void getAllUsers() {
}
@Test
public void testGetUsers() {
// Mock data
Flux<User> user = Flux.just(new User("1", "1", "sama", "sama@gmail.com","01"));
when(userService.getUsers()).thenReturn(user);
Flux<User> responseBody = webTestClient.get().uri("/users")
.exchange()
.expectStatus().isOk()
.returnResult(User.class)
.getResponseBody();
//
//import com.nisum.webfluxmongodbordermanagement.entity.User;
//import com.nisum.webfluxmongodbordermanagement.service.UserService;
//import org.junit.jupiter.api.BeforeEach;
//import org.junit.jupiter.api.Test;
//import org.junit.jupiter.api.extension.ExtendWith;
//import org.mockito.InjectMocks;
//import org.mockito.Mock;
//import org.mockito.MockitoAnnotations;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest;
//import org.springframework.boot.test.mock.mockito.MockBean;
//import org.springframework.test.context.junit.jupiter.SpringExtension;
//import org.springframework.test.web.reactive.server.WebTestClient;
//import reactor.core.publisher.Flux;
//import reactor.test.StepVerifier;
//
//import static org.mockito.Mockito.when;
//
//@ExtendWith(SpringExtension.class)
//@WebFluxTest(UserController.class)
//public class UserControllerTest {
//
// @Mock
// private UserService userService;
//
// @InjectMocks
// private UserController userController;
//
// @BeforeEach
// public void setUp() {
// MockitoAnnotations.openMocks(this);
// }
//
// @Test
// public void testGetUsers() {
// // Mock data
// User user1 = new User("1", "01", "John", "john@example.com", "order1");
// User user2 = new User("2", "02" , "Jane", "jane@example.com", "order2");
// when(userService.getUsers()).thenReturn(Flux.just(user1, user2));
//
// // Call the endpoint method
//// Flux<User> result = userController.getUsers();
////
//// // Verify the output
//// StepVerifier.create(result)
//// .expectNext(user1, user2)
//// .expectComplete()
//// .verify();
// }
//
//
//
//}
StepVerifier.create(responseBody)
.expectSubscription()
.expectNextMatches(p -> p.getEmailId().equals("sama@gmail.com"))
.verifyComplete();
}
}
package com.nisum.webfluxmongodbordermanagement.controller;
import com.nisum.webfluxmongodbordermanagement.entity.Order;
import com.nisum.webfluxmongodbordermanagement.entity.UserOrders;
import com.nisum.webfluxmongodbordermanagement.service.OrdersService;
import com.nisum.webfluxmongodbordermanagement.service.UserOrdersService;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.web.reactive.server.WebTestClient;
import reactor.core.publisher.Flux;
import reactor.test.StepVerifier;
import java.util.Arrays;
import java.util.List;
import static org.mockito.Mockito.when;
@ExtendWith(SpringExtension.class)
@WebFluxTest(UserOrdersController.class)
public class UserOrderControllerTest {
@Autowired
private WebTestClient webTestClient;
@MockBean
private UserOrdersService userOrdersService;
@BeforeEach
void setUp() {
}
@AfterEach
void tearDown() {
}
@Test
void getAllUsers() {
}
@Test
public void testGetUsersAndOrders() {
// Mock data
Flux<UserOrders> order = Flux.just(new UserOrders("1", "01", "sama","sama@gmail.com",
Arrays.asList(new Order("1","123","01","oppo1234","oppo23bvn1","success"),
new Order("2","1234","01","vivo1234","vivo23bvn1","success"))));
when(userOrdersService.getAllUsersWithOrders()).thenReturn(order);
Flux<UserOrders> responseBody = webTestClient.get().uri("/user-orders")
.exchange()
.expectStatus().isOk()
.returnResult(UserOrders.class)
.getResponseBody();
//
StepVerifier.create(responseBody)
.expectSubscription()
.expectNextMatches(p -> p.getUserId().equals("01"))
.verifyComplete();
}
}
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