Commit 19c74fb6 authored by Sarika Sama's avatar Sarika Sama

mongodb service integration tests with dynamic mongodb port

parent b57dc664
......@@ -18,6 +18,6 @@ public class User {
private String userId;
private String userName;
private String emailId;
private String orderId;
// private String orderId;
}
......@@ -15,7 +15,7 @@ import reactor.core.publisher.Flux;
public class UserOrdersService {
@Autowired
private ReactiveMongoTemplate reactiveMongoTemplate;
ReactiveMongoTemplate reactiveMongoTemplate;
public Flux<UserOrders> getAllUsersWithOrders() {
LookupOperation lookupOperation = LookupOperation.newLookup().
......
......@@ -5,8 +5,8 @@
#spring.data.mongodb.user-orders-db.database=user-orders-db
server.port=9090
spring.data.mongodb.host=localhost
spring.data.mongodb.port=27017
#spring.data.mongodb.host=localhost
#spring.data.mongodb.port=27017
spring.data.mongodb.database=user-orders-db
#spring.data.mongodb.orders-db.uri=mongodb://localhost:27017/orders-db
......
package com.nisum.webfluxmongodbordermanagement.service;
package com.nisum.webfluxmongodbordermanagement.controller;
import com.nisum.webfluxmongodbordermanagement.entity.Order;
import com.nisum.webfluxmongodbordermanagement.service.OrdersService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -10,13 +11,16 @@ import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.test.context.ActiveProfiles;
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.io.IOException;
@DataMongoTest
@ExtendWith(SpringExtension.class)
@ActiveProfiles("test")
@Disabled
public class OrderControllerIntTest {
static {
......@@ -24,28 +28,44 @@ public class OrderControllerIntTest {
}
@Autowired
MongoTemplate mongoTemplate;
WebTestClient webTestClient;
@Autowired(required=true)
OrdersService orderService;
@BeforeEach
public void setup() throws IOException {
mongoTemplate.getCollection("orders").drop();
//mongoTemplate.insert(new User("23563456", "01", "samab12344","sarika@123456","1"));
mongoTemplate.insert(new Order("2356781", "01", "1","ooppo122356","oppo123456","sucess"));
// mongoTemplate.getCollection("orders").drop();
// //mongoTemplate.insert(new User("23563456", "01", "samab12344","sarika@123456","1"));
// mongoTemplate.insert(new Order("2356781", "01", "1","ooppo122356","oppo123456","sucess"));
}
@Test
public void getOrderControllerTest(@Autowired MongoTemplate mongoTemplate) {
mongoTemplate.getCollection("orders").drop();
// Flux<Order> result = orderService.getOrders();
//
// StepVerifier.create(result)
// .expectNextMatches(order -> order.getOrderId().equals("01"))
// .expectComplete()
// .verify();
// }
mongoTemplate.insert(new Order("2356781", "01", "1","ooppo122356","oppo123456","sucess"));
Flux<Order> result = orderService.getOrders();
Flux<Order> responseBody = webTestClient.get().uri("/orders")
.exchange()
.expectStatus().isOk()
.returnResult(Order.class)
.getResponseBody();
//
StepVerifier.create(responseBody)
.expectSubscription()
.expectNextMatches(order -> order.getUserId().equals("1"))
.verifyComplete();
}
StepVerifier.create(result)
.expectNextMatches(order -> order.getOrderId().equals("01"))
.expectComplete()
.verify();
}
}
......@@ -49,16 +49,16 @@ public class OrderControllerTest {
when(ordersService.getOrders()).thenReturn(order);
Flux<Order> responseBody = webTestClient.get().uri("/orders")
.exchange()
.expectStatus().isOk()
.returnResult(Order.class)
.getResponseBody();
.exchange()
.expectStatus().isOk()
.returnResult(Order.class)
.getResponseBody();
//
StepVerifier.create(responseBody)
.expectSubscription()
.expectSubscription()
.expectNextMatches(p -> p.getUserId().equals("01"))
.verifyComplete();
}
.verifyComplete();
}
}
......@@ -6,9 +6,6 @@ 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;
......@@ -47,7 +44,7 @@ public class UserControllerTest {
public void testGetUsers() {
// Mock data
Flux<User> user = Flux.just(new User("1", "1", "sama", "sama@gmail.com","01"));
Flux<User> user = Flux.just(new User("1", "1", "sama", "sama@gmail.com"));
when(userService.getUsers()).thenReturn(user);
Flux<User> responseBody = webTestClient.get().uri("/users")
......
......@@ -38,10 +38,6 @@ public class UserOrderControllerTest {
void setUp() {
}
@AfterEach
void tearDown() {
}
@Test
void getAllUsers() {
}
......
package com.nisum.webfluxmongodbordermanagement.service;
import com.nisum.webfluxmongodbordermanagement.entity.Order;
import com.nisum.webfluxmongodbordermanagement.entity.User;
import com.nisum.webfluxmongodbordermanagement.repository.OrderRepository;
import com.nisum.webfluxmongodbordermanagement.repository.UserRepository;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
......@@ -25,27 +23,29 @@ public class OrdersServiceIntTest {
System.setProperty("spring.mongodb.embedded.version","5.0.0");
}
@Autowired
MongoTemplate mongoTemplate;
/*@Autowired
MongoTemplate mongoTemplate;*/
@Autowired
OrderRepository orderRepository;
@BeforeEach
public void setup() throws IOException {
mongoTemplate.getCollection("orders").drop();
// mongoTemplate.getCollection("orders").drop();
//mongoTemplate.insert(new User("23563456", "01", "samab12344","sarika@123456","1"));
mongoTemplate.insert(new Order("2356781", "01", "1","ooppo122356","oppo123456","sucess"));
//mongoTemplate.insert(new Order("2356781", "01", "1","ooppo122356","oppo123456","sucess"));
}
@Test
public void testGetOrders(@Autowired MongoTemplate mongoTemplate) {
mongoTemplate.getCollection("orders").drop();
Flux<Order> result = orderRepository.findAll();
mongoTemplate.insert(new Order("2356781", "01", "1","ooppo122356","oppo123456","sucess"));
mongoTemplate.insert(new Order("2356782", "02", "2","ooppo122356","oppo123456","sucess"));
StepVerifier.create(result)
.expectNextMatches(order -> order.getUserId().equals("1"))
.expectNextMatches(o -> o.getUserId().equals("2"))
.expectComplete()
.verify();
}
......
......@@ -36,8 +36,8 @@ class UserServiceTest {
@Test
@DisplayName("get all users ")
void getAllUsers() {
User user1 = new User("1","01", "John", "john@example.com", "order1");
User user2 = new User("2","02","Jane", "jane@example.com", "order2");
User user1 = new User("1","01", "John", "john@example.com");
User user2 = new User("2","02","Jane", "jane@example.com");
when(userRepository.findAll()).thenReturn(Flux.just(user1, user2));
// Call the method
......
package com.nisum.webfluxmongodbordermanagement.service;
import com.nisum.webfluxmongodbordermanagement.entity.Order;
import com.nisum.webfluxmongodbordermanagement.entity.User;
import com.nisum.webfluxmongodbordermanagement.entity.UserOrders;
import com.nisum.webfluxmongodbordermanagement.repository.UserRepository;
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.data.mongo.DataMongoTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.ReactiveMongoTemplate;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import reactor.core.publisher.Flux;
import reactor.test.StepVerifier;
import java.io.IOException;
@DataMongoTest
@ExtendWith(SpringExtension.class)
@ActiveProfiles("test")
public class UsersOrderServiceIntTest {
static {
System.setProperty("spring.mongodb.embedded.version","5.0.0");
}
UserOrdersService userOrdersService;
@Autowired
private ReactiveMongoTemplate reactiveMongoTemplate;
@Autowired
MongoTemplate mongoTemplate;
@Autowired
UserRepository userRepository;
@BeforeEach
public void setup() throws IOException {
userOrdersService = new UserOrdersService();
userOrdersService.reactiveMongoTemplate = reactiveMongoTemplate;
mongoTemplate.getCollection("user").drop();
mongoTemplate.getCollection("orders").drop();
//mongoTemplate.insert(new User("23563456", "01", "samab12344","sarika@123456","1"));
mongoTemplate.insert(new Order("2356781", "01", "user1","ooppo122356","oppo123456","sucess"));
mongoTemplate.insert(new Order("2356782", "02", "user1","vivo122356","vivo123456","sucess"));
mongoTemplate.insert(new Order("2356783", "03", "user2","sam122356","sam123456","sucess"));
mongoTemplate.insert(new User("2356781", "user1", "sarika","sarika@123456"));
mongoTemplate.insert(new User("2356782", "user2", "sama","sama@123456"));
mongoTemplate.insert(new User("2356783", "user3", "samasarika","sama@123456"));
}
@Test
public void testGetUsers(@Autowired MongoTemplate mongoTemplate) {
// Flux<User> result = userRepository.findAll();
Flux<UserOrders> result = userOrdersService.getAllUsersWithOrders();
StepVerifier.create(result)
.expectNextMatches(uo -> uo.getUserId().equals("user1") && uo.getOrder().size()==2)
.expectNextMatches(uo -> uo.getUserId().equals("user2") && uo.getOrder().size() == 1)
.expectNextMatches(uo -> uo.getUserId().equals("user3") && uo.getOrder().size() == 0)
.expectComplete()
.verify();
}
}
......@@ -35,8 +35,8 @@ public class UsersServiceIntTest {
public void setup() throws IOException {
mongoTemplate.getCollection("user").drop();
//mongoTemplate.insert(new User("23563456", "01", "samab12344","sarika@123456","1"));
mongoTemplate.insert(new User("2356781", "01", "samasarika","sama@123456","1"));
//mongoTemplate.insert(new User("23563456", "01", "samab12344","sarika@123456"));
mongoTemplate.insert(new User("2356781", "01", "samasarika","sama@123456"));
}
......
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