Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
order-management-webflux-mongodb
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Sarika Sama
order-management-webflux-mongodb
Commits
19c74fb6
Commit
19c74fb6
authored
Jun 21, 2023
by
Sarika Sama
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mongodb service integration tests with dynamic mongodb port
parent
b57dc664
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
138 additions
and
41 deletions
+138
-41
User.java
.../com/nisum/webfluxmongodbordermanagement/entity/User.java
+1
-1
UserOrdersService.java
...fluxmongodbordermanagement/service/UserOrdersService.java
+1
-1
application.properties
src/main/resources/application.properties
+2
-2
OrderControllerIntTest.java
...odbordermanagement/controller/OrderControllerIntTest.java
+30
-10
OrderControllerTest.java
...ongodbordermanagement/controller/OrderControllerTest.java
+7
-7
UserControllerTest.java
...mongodbordermanagement/controller/UserControllerTest.java
+1
-4
UserOrderControllerTest.java
...dbordermanagement/controller/UserOrderControllerTest.java
+0
-4
OrdersServiceIntTest.java
...xmongodbordermanagement/service/OrdersServiceIntTest.java
+8
-8
UserServiceTest.java
...ebfluxmongodbordermanagement/service/UserServiceTest.java
+2
-2
UsersOrderServiceIntTest.java
...godbordermanagement/service/UsersOrderServiceIntTest.java
+84
-0
UsersServiceIntTest.java
...uxmongodbordermanagement/service/UsersServiceIntTest.java
+2
-2
No files found.
src/main/java/com/nisum/webfluxmongodbordermanagement/entity/User.java
View file @
19c74fb6
...
...
@@ -18,6 +18,6 @@ public class User {
private
String
userId
;
private
String
userName
;
private
String
emailId
;
private
String
orderId
;
//
private String orderId;
}
src/main/java/com/nisum/webfluxmongodbordermanagement/service/UserOrdersService.java
View file @
19c74fb6
...
...
@@ -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
().
...
...
src/main/resources/application.properties
View file @
19c74fb6
...
...
@@ -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
...
...
src/test/java/com/nisum/webfluxmongodbordermanagement/
service
/OrderControllerIntTest.java
→
src/test/java/com/nisum/webfluxmongodbordermanagement/
controller
/OrderControllerIntTest.java
View file @
19c74fb6
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
();
}
}
src/test/java/com/nisum/webfluxmongodbordermanagement/controller/OrderControllerTest.java
View file @
19c74fb6
...
...
@@ -58,7 +58,7 @@ public class OrderControllerTest {
.
expectSubscription
()
.
expectNextMatches
(
p
->
p
.
getUserId
().
equals
(
"01"
))
.
verifyComplete
();
}
}
}
src/test/java/com/nisum/webfluxmongodbordermanagement/controller/UserControllerTest.java
View file @
19c74fb6
...
...
@@ -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"
)
...
...
src/test/java/com/nisum/webfluxmongodbordermanagement/controller/UserOrderControllerTest.java
View file @
19c74fb6
...
...
@@ -38,10 +38,6 @@ public class UserOrderControllerTest {
void
setUp
()
{
}
@AfterEach
void
tearDown
()
{
}
@Test
void
getAllUsers
()
{
}
...
...
src/test/java/com/nisum/webfluxmongodbordermanagement/service/OrdersServiceIntTest.java
View file @
19c74fb6
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
();
}
...
...
src/test/java/com/nisum/webfluxmongodbordermanagement/service/UserServiceTest.java
View file @
19c74fb6
...
...
@@ -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
...
...
src/test/java/com/nisum/webfluxmongodbordermanagement/service/UsersOrderServiceIntTest.java
0 → 100644
View file @
19c74fb6
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
();
}
}
src/test/java/com/nisum/webfluxmongodbordermanagement/service/UsersServiceIntTest.java
View file @
19c74fb6
...
...
@@ -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"
));
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment