From 548cf8bad9bd7f9eaa525f4c6ab97ae46fe23d00 Mon Sep 17 00:00:00 2001
From: shubhamkumarguptaTCS
<89141018+shubhamkumarguptaTCS@users.noreply.github.com>
Date: Mon, 25 Oct 2021 21:25:58 +0530
Subject: [PATCH] Mongodb uplift (#510)
Updated MongoDB client version to 4.3.2
Updated code changes to support the above client version.
Fixed some failing test cases.
---
pom.xml | 49 ++++++++++-----
.../RabbitMQConfigurationTestSteps.java | 4 +-
.../RabbitMQTestConnectionSteps.java | 6 +-
.../ericsson/ei/utils/DataBaseManager.java | 7 +--
.../com/ericsson/ei/utils/TestConfigs.java | 11 ++--
.../ei/integrationtests/flow/FlowStepsIT.java | 7 +--
.../java/util/IntegrationTestBase.java | 5 +-
.../ericsson/ei/config/HttpSessionConfig.java | 6 +-
.../ericsson/ei/handlers/ObjectHandler.java | 4 +-
.../com/ericsson/ei/handlers/RMQHandler.java | 4 +-
.../ericsson/ei/jsonmerge/MergeHandler.java | 3 +-
.../ericsson/ei/jsonmerge/MergePrepare.java | 2 +-
.../com/ericsson/ei/mongo/MongoDBHandler.java | 25 ++++----
.../java/com/ericsson/ei/mongo/MongoUri.java | 4 +-
.../TestInformationControllerImpl.java | 6 +-
.../ericsson/ei/flowtests/FlowTestBase.java | 4 +-
.../ei/handlers/test/ObjectHandlerTest.java | 2 +-
.../ericsson/ei/mongo/MongoDBHandlerTest.java | 62 +++++++++++--------
.../ei/notifications/HttpRequestTest.java | 12 ++--
.../test/QueryServiceRESTAPITest.java | 6 +-
.../queryservice/test/QueryServiceTest.java | 26 +++++---
.../test/TestProcessQueryParams.java | 4 ++
.../ericsson/ei/rules/TestRulesService.java | 2 +-
.../ei/services/SubscriptionRestAPITest.java | 5 +-
.../ei/services/SubscriptionServiceTest.java | 2 +-
.../SubscriptionRepeatDbHandlerTest.java | 11 ++--
.../ericsson/ei/test/utils/TestConfigs.java | 15 +++--
src/test/resources/FailedNotification.json | 2 +-
.../resources/FailedNotificationOutput.json | 2 +-
29 files changed, 177 insertions(+), 121 deletions(-)
diff --git a/pom.xml b/pom.xml
index e80498c70..f59fa6aa7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@
org.springframework.boot
spring-boot-starter-parent
- 2.0.8.RELEASE
+ 2.5.5
@@ -25,12 +25,12 @@
false
${skipTests}
${skipTests}
- ${project.parent.version}
- 2.3.2.RELEASE
- 5.0.6.RELEASE
- 2.0.2.RELEASE
+ 2.5.5
+ 2.3.4.RELEASE
+ 5.5.2
+ 2.5.0
1
- 2.12.1
+ 2.12.5
@@ -111,7 +111,7 @@
com.github.ulisesbocchio
jasypt-spring-boot-starter
- 2.1.2
+ 3.0.4
@@ -136,6 +136,10 @@
com.vaadin.external.google
android-json
+
+ org.junit.jupiter
+ junit-jupiter
+
@@ -145,6 +149,23 @@
${springBootVersion}
compile
+
+
+ org.mongodb
+ mongodb-driver-sync
+ 4.3.2
+
+
+
+ org.mongodb
+ mongodb-driver-core
+ 4.3.2
+
+
+
+ org.springframework.boot
+ spring-boot-starter-validation
+
org.springframework.boot
@@ -204,7 +225,7 @@
junit
junit
- 4.13.1
+ 4.13.2
test
@@ -212,7 +233,7 @@
org.mockito
mockito-core
- 2.9.0
+ 3.9.0
test
@@ -246,13 +267,13 @@
org.apache.commons
commons-lang3
- 3.7
+ 3.12.0
org.apache.httpcomponents
httpcore
- 4.4.9
+ 4.4.14
@@ -285,7 +306,7 @@
org.projectlombok
lombok
- 1.18.6
+ 1.18.20
provided
@@ -335,7 +356,7 @@
de.flapdoodle.embed
de.flapdoodle.embed.mongo
- 2.0.0
+ 3.0.0
test
@@ -524,7 +545,7 @@
${skipUTs}
${forkCountTests}
true
- classes
+ methods
5
${someModule.test.includes}
diff --git a/src/functionaltests/java/com/ericsson/ei/rabbitmq/configuration/RabbitMQConfigurationTestSteps.java b/src/functionaltests/java/com/ericsson/ei/rabbitmq/configuration/RabbitMQConfigurationTestSteps.java
index 9ae88f7d6..a1762b947 100644
--- a/src/functionaltests/java/com/ericsson/ei/rabbitmq/configuration/RabbitMQConfigurationTestSteps.java
+++ b/src/functionaltests/java/com/ericsson/ei/rabbitmq/configuration/RabbitMQConfigurationTestSteps.java
@@ -74,7 +74,7 @@ public void connect_to_message_bus() throws Exception {
RabbitTemplate rabbitTemplate = rabbitAdmin.getRabbitTemplate();
rmqHandler.setRabbitTemplate(rabbitTemplate);
- rmqHandler.getContainer().setRabbitAdmin(rabbitAdmin);
+ rmqHandler.getContainer().setAmqpAdmin(rabbitAdmin);
rmqHandler.getContainer().setConnectionFactory(rmqHandler.getCachingConnectionFactory());
rmqHandler.getContainer().setQueueNames(rmqHandler.getRmqProperties().getQueueName());
assertEquals("Expected message bus to be up", true, amqpBroker.isRunning);
@@ -131,7 +131,7 @@ private RabbitAdmin createExchange(final RMQHandler rmqHandler) {
admin.getQueueProperties(queueName);
RabbitTemplate rabbitTemplate = admin.getRabbitTemplate();
rabbitTemplate.setExchange(exchangeName);
- rabbitTemplate.setQueue(queueName);
+ rabbitTemplate.setDefaultReceiveQueue(queueName);
rabbitTemplate.setRoutingKey(ROUTING_KEY_1);
return admin;
}
diff --git a/src/functionaltests/java/com/ericsson/ei/rabbitmq/connection/RabbitMQTestConnectionSteps.java b/src/functionaltests/java/com/ericsson/ei/rabbitmq/connection/RabbitMQTestConnectionSteps.java
index 755f880ce..c9ea9e45b 100644
--- a/src/functionaltests/java/com/ericsson/ei/rabbitmq/connection/RabbitMQTestConnectionSteps.java
+++ b/src/functionaltests/java/com/ericsson/ei/rabbitmq/connection/RabbitMQTestConnectionSteps.java
@@ -21,7 +21,7 @@
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.amqp.rabbit.core.RabbitTemplate.ConfirmCallback;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
-import org.springframework.amqp.rabbit.support.CorrelationData;
+import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
@@ -98,7 +98,7 @@ public void connect_to_message_bus() throws Exception {
RabbitTemplate rabbitTemplate = rabbitAdmin.getRabbitTemplate();
rmqHandler.setRabbitTemplate(rabbitTemplate);
- rmqHandler.getContainer().setRabbitAdmin(rabbitAdmin);
+ rmqHandler.getContainer().setAmqpAdmin(rabbitAdmin);
rmqHandler.getContainer().setConnectionFactory(rmqHandler.getCachingConnectionFactory());
rmqHandler.getContainer().setQueueNames(rmqProperties.getQueueName());
assertEquals("Expected message bus to be up", true, amqpBroker.isRunning);
@@ -172,7 +172,7 @@ private RabbitAdmin createExchange(final RMQHandler rmqHandler) {
RabbitTemplate rabbitTemplate = admin.getRabbitTemplate();
rabbitTemplate.setExchange(exchangeName);
rabbitTemplate.setRoutingKey(DEFAULT_ROUTING_KEY);
- rabbitTemplate.setQueue(queueName);
+ rabbitTemplate.setDefaultReceiveQueue(queueName);
return admin;
}
diff --git a/src/functionaltests/java/com/ericsson/ei/utils/DataBaseManager.java b/src/functionaltests/java/com/ericsson/ei/utils/DataBaseManager.java
index 62f17a008..27835b516 100644
--- a/src/functionaltests/java/com/ericsson/ei/utils/DataBaseManager.java
+++ b/src/functionaltests/java/com/ericsson/ei/utils/DataBaseManager.java
@@ -11,8 +11,8 @@
import org.springframework.boot.autoconfigure.mongo.MongoProperties;
import org.springframework.stereotype.Component;
-import com.mongodb.MongoClient;
-import com.mongodb.MongoClientURI;
+import com.mongodb.client.MongoClient;
+import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
@@ -195,8 +195,7 @@ private List getDocumentsFromCollection(String collectionName) {
}
private MongoCollection getCollection(String collectionName) {
- MongoClientURI uri = new MongoClientURI(mongoProperties.getUri());
- mongoClient = new MongoClient(uri);
+ mongoClient = MongoClients.create(mongoProperties.getUri());
MongoDatabase db = mongoClient.getDatabase(database);
MongoCollection collection = db.getCollection(collectionName);
return collection;
diff --git a/src/functionaltests/java/com/ericsson/ei/utils/TestConfigs.java b/src/functionaltests/java/com/ericsson/ei/utils/TestConfigs.java
index 4466ae0ab..659852bd1 100644
--- a/src/functionaltests/java/com/ericsson/ei/utils/TestConfigs.java
+++ b/src/functionaltests/java/com/ericsson/ei/utils/TestConfigs.java
@@ -5,11 +5,14 @@
import org.apache.tomcat.util.codec.binary.Base64;
import org.apache.tomcat.util.codec.binary.StringUtils;
+import org.bson.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.util.SocketUtils;
-import com.mongodb.MongoClient;
+import com.mongodb.client.ListDatabasesIterable;
+import com.mongodb.client.MongoClient;
+import com.mongodb.client.MongoCursor;
import de.flapdoodle.embed.mongo.distribution.Version;
import de.flapdoodle.embed.mongo.tests.MongodForTestsFactory;
@@ -51,9 +54,9 @@ protected static void startUpMongoClient() throws IOException {
}
try {
- MongodForTestsFactory testsFactory = MongodForTestsFactory.with(Version.V3_4_1);
- mongoClient = testsFactory.newMongo();
- String port = "" + mongoClient.getAddress().getPort();
+ final ListDatabasesIterable list = mongoClient.listDatabases();
+ final MongoCursor iter = list.iterator();
+ final String port = "" + iter.getServerAddress().getPort();
System.setProperty("spring.data.mongodb.port", port);
LOGGER.debug("Started embedded Mongo DB for tests on port: " + port);
} catch (Exception e) {
diff --git a/src/integrationtests/java/com/ericsson/ei/integrationtests/flow/FlowStepsIT.java b/src/integrationtests/java/com/ericsson/ei/integrationtests/flow/FlowStepsIT.java
index 83a4b9ba3..45ac0e3b4 100644
--- a/src/integrationtests/java/com/ericsson/ei/integrationtests/flow/FlowStepsIT.java
+++ b/src/integrationtests/java/com/ericsson/ei/integrationtests/flow/FlowStepsIT.java
@@ -40,8 +40,8 @@
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ArrayNode;
-import com.mongodb.MongoClient;
-import com.mongodb.MongoClientURI;
+import com.mongodb.client.MongoClient;
+import com.mongodb.client.MongoClients;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
@@ -404,8 +404,7 @@ private JsonNode getNewestMailFromDatabase() throws Exception {
}
private void setupMailhogMongoDBHandler() {
- MongoClientURI uri = new MongoClientURI(mailHogUri);
- MongoClient mongoClient = new MongoClient(uri);
+ MongoClient mongoClient = MongoClients.create(mailHogUri);
mailhogMongoDBHandler = new MongoDBHandler();
mailhogMongoDBHandler.setMongoClient(mongoClient);
}
diff --git a/src/integrationtests/java/util/IntegrationTestBase.java b/src/integrationtests/java/util/IntegrationTestBase.java
index 187760912..51ede6c5a 100644
--- a/src/integrationtests/java/util/IntegrationTestBase.java
+++ b/src/integrationtests/java/util/IntegrationTestBase.java
@@ -13,21 +13,17 @@
*/
package util;
-import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
-import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
import javax.annotation.PostConstruct;
@@ -52,6 +48,7 @@
import com.ericsson.ei.utils.HttpRequest.HttpMethod;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
+
import lombok.Setter;
public abstract class IntegrationTestBase extends AbstractTestExecutionListener {
diff --git a/src/main/java/com/ericsson/ei/config/HttpSessionConfig.java b/src/main/java/com/ericsson/ei/config/HttpSessionConfig.java
index 91bf78d15..990de19c5 100644
--- a/src/main/java/com/ericsson/ei/config/HttpSessionConfig.java
+++ b/src/main/java/com/ericsson/ei/config/HttpSessionConfig.java
@@ -5,7 +5,7 @@
import org.springframework.context.annotation.Primary;
import org.springframework.data.mongodb.core.MongoOperations;
import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.session.data.mongo.MongoOperationsSessionRepository;
+import org.springframework.session.data.mongo.MongoIndexedSessionRepository;
import org.springframework.session.data.mongo.config.annotation.web.http.EnableMongoHttpSession;
import org.springframework.session.web.http.HttpSessionIdResolver;
@@ -20,8 +20,8 @@ public class HttpSessionConfig {
@Primary
@Bean
- public MongoOperationsSessionRepository mongoSessionRepository(MongoOperations mongoOperations) {
- MongoOperationsSessionRepository repository = new MongoOperationsSessionRepository(mongoOperations);
+ public MongoIndexedSessionRepository mongoIndexedSessionRepository(MongoOperations mongoOperations) {
+ MongoIndexedSessionRepository repository = new MongoIndexedSessionRepository(mongoOperations);
repository.setMaxInactiveIntervalInSeconds(maxInactiveIntervalInSeconds);
return repository;
}
diff --git a/src/main/java/com/ericsson/ei/handlers/ObjectHandler.java b/src/main/java/com/ericsson/ei/handlers/ObjectHandler.java
index aa0f2d444..c8ce288b3 100644
--- a/src/main/java/com/ericsson/ei/handlers/ObjectHandler.java
+++ b/src/main/java/com/ericsson/ei/handlers/ObjectHandler.java
@@ -45,7 +45,6 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mongodb.BasicDBObject;
import com.mongodb.MongoClientException;
-import com.mongodb.util.JSON;
import lombok.Getter;
import lombok.Setter;
@@ -118,7 +117,6 @@ public String insertObject(String aggregatedObject, RulesObject rulesObject, Str
BasicDBObject document = prepareDocumentForInsertion(id, aggregatedObject);
LOGGER.debug("ObjectHandler: Aggregated Object document to be inserted: {}",
document.toString());
-
mongoDbHandler.insertDocument(databaseName, aggregationsCollectionName, document.toString());
postInsertActions(aggregatedObject, rulesObject, event, id);
return aggregatedObject;
@@ -272,7 +270,7 @@ public String lockDocument(String id) {
if (result != null) {
LOGGER.debug("DB locked by {} thread", Thread.currentThread().getId());
documentLocked = false;
- return JSON.serialize(result);
+ return new BasicDBObject(result).toString();
}
// To Remove
LOGGER.debug("Waiting by {} thread", Thread.currentThread().getId());
diff --git a/src/main/java/com/ericsson/ei/handlers/RMQHandler.java b/src/main/java/com/ericsson/ei/handlers/RMQHandler.java
index d3671788a..af07232a8 100644
--- a/src/main/java/com/ericsson/ei/handlers/RMQHandler.java
+++ b/src/main/java/com/ericsson/ei/handlers/RMQHandler.java
@@ -38,7 +38,7 @@
import org.springframework.amqp.rabbit.core.RabbitTemplate.ConfirmCallback;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
import org.springframework.amqp.rabbit.listener.adapter.MessageListenerAdapter;
-import org.springframework.amqp.rabbit.support.CorrelationData;
+import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
@@ -150,7 +150,7 @@ public RabbitTemplate rabbitMqTemplate() {
rabbitTemplate = new RabbitTemplate(connectionFactory());
}
- rabbitTemplate.setQueue(rmqProperties.getWaitlistQueueName());
+ rabbitTemplate.setDefaultReceiveQueue(rmqProperties.getWaitlistQueueName());
rabbitTemplate.setExchange(rmqProperties.getExchangeName());
rabbitTemplate.setRoutingKey(WAITLIST_BINDING_KEY);
rabbitTemplate.setConfirmCallback(new ConfirmCallback() {
diff --git a/src/main/java/com/ericsson/ei/jsonmerge/MergeHandler.java b/src/main/java/com/ericsson/ei/jsonmerge/MergeHandler.java
index 9536617e4..47080ff89 100644
--- a/src/main/java/com/ericsson/ei/jsonmerge/MergeHandler.java
+++ b/src/main/java/com/ericsson/ei/jsonmerge/MergeHandler.java
@@ -86,7 +86,7 @@ public String mergeObject(String id, String mergeId, RulesObject rules, String e
LOGGER.debug("AGGREGATED OBJECT : " + aggregatedObject);
if(aggregatedObject == null) {
return null;
- }
+ }
String mergeRule = getMergeRules(rules);
if (mergeRule != null && !mergeRule.isEmpty()) {
String updatedRule = replaceIdMarkerInRules(mergeRule, mergeId);
@@ -110,7 +110,6 @@ public String mergeObject(String id, String mergeId, RulesObject rules, String e
}
objectHandler.updateObject(mergedObject, rules, event, id);
}
-
return mergedObject;
}
diff --git a/src/main/java/com/ericsson/ei/jsonmerge/MergePrepare.java b/src/main/java/com/ericsson/ei/jsonmerge/MergePrepare.java
index c777b6445..42add1358 100644
--- a/src/main/java/com/ericsson/ei/jsonmerge/MergePrepare.java
+++ b/src/main/java/com/ericsson/ei/jsonmerge/MergePrepare.java
@@ -221,7 +221,7 @@ public String getMergePath(String originObject, String mergeRule, boolean skipPa
Object ruleJSONObject;
// condition to avoid un-necessary exception to print in the log
- if(mergeRule.startsWith("{")) {
+ if (mergeRule.startsWith("{")) {
ruleJSONObject = new JSONObject(mergeRule);
} else {
return getMergePathFromArrayMergeRules(originObject, mergeRule, stringObject);
diff --git a/src/main/java/com/ericsson/ei/mongo/MongoDBHandler.java b/src/main/java/com/ericsson/ei/mongo/MongoDBHandler.java
index df33e2177..fd78115f0 100644
--- a/src/main/java/com/ericsson/ei/mongo/MongoDBHandler.java
+++ b/src/main/java/com/ericsson/ei/mongo/MongoDBHandler.java
@@ -34,10 +34,7 @@
import com.ericsson.ei.handlers.DateUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.mongodb.BasicDBObject;
-import com.mongodb.MongoClient;
import com.mongodb.MongoClientException;
-import com.mongodb.client.model.Updates;
-import com.mongodb.MongoClientURI;
import com.mongodb.MongoCommandException;
import com.mongodb.MongoConfigurationException;
import com.mongodb.MongoInterruptedException;
@@ -45,13 +42,17 @@
import com.mongodb.MongoSocketWriteException;
import com.mongodb.MongoWriteException;
import com.mongodb.client.FindIterable;
+import com.mongodb.client.ListDatabasesIterable;
+import com.mongodb.client.MongoClient;
+import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.IndexOptions;
import com.mongodb.client.model.Indexes;
+import com.mongodb.client.model.Updates;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;
-import com.mongodb.util.JSON;
+import com.mongodb.client.MongoCursor;
import lombok.Getter;
import lombok.Setter;
@@ -153,7 +154,7 @@ public ArrayList getAllDocuments(String dataBaseName, String collectionN
if (collection != null) {
FindIterable foundResults = collection.find();
for (Document document : foundResults) {
- result.add(JSON.serialize(document));
+ result.add(new BasicDBObject(document).toString());
}
if (result.size() != 0) {
@@ -322,12 +323,16 @@ public void dropDatabase(String databaseName) {
*/
public boolean isMongoDBServerUp() {
try {
- mongoClient.getAddress();
+ final ListDatabasesIterable list = mongoClient.listDatabases();
+ MongoCursor iter = list.iterator();
+ while (iter.hasNext()) {
+ iter.getServerAddress();
+ break;
+ }
return true;
} catch (Exception e) {
return false;
}
-
}
private void createMongoClient() throws AbortExecutionException {
@@ -335,9 +340,7 @@ private void createMongoClient() throws AbortExecutionException {
throw new MongoConfigurationException(
"Failure to create MongoClient, missing config for spring.data.mongodb.uri:");
}
-
- MongoClientURI uri = new MongoClientURI(mongoProperties.getUri());
- mongoClient = new MongoClient(uri);
+ mongoClient = MongoClients.create(mongoProperties.getUri());
}
private ArrayList doFind(String dataBaseName, String collectionName,
@@ -360,7 +363,7 @@ private ArrayList doFind(String dataBaseName, String collectionName,
// Currently document.toJson() does not work here since something will add \\\ before
// all " later on, All get sometihng in mongoDB shoult redurn a JSON object and not a
// String.
- result.add(JSON.serialize(document));
+ result.add(new BasicDBObject(document).toString());
}
if (result.size() != 0) {
diff --git a/src/main/java/com/ericsson/ei/mongo/MongoUri.java b/src/main/java/com/ericsson/ei/mongo/MongoUri.java
index a9c1869f4..3249c1b76 100644
--- a/src/main/java/com/ericsson/ei/mongo/MongoUri.java
+++ b/src/main/java/com/ericsson/ei/mongo/MongoUri.java
@@ -18,7 +18,7 @@
import org.apache.commons.lang3.StringUtils;
-import com.mongodb.MongoClientURI;
+import com.mongodb.ConnectionString;
import com.mongodb.MongoConfigurationException;
public class MongoUri {
@@ -85,7 +85,7 @@ public static String getUriWithNewPassword(String uri, String newPassword) {
*/
public static String extractPasswordFromUri(String inputUri) {
String password = "";
- final MongoClientURI uri = new MongoClientURI(inputUri);
+ ConnectionString uri = new ConnectionString(inputUri);
final char[] passwordCharList = uri.getPassword();
if (passwordCharList != null) {
password = new String(passwordCharList);
diff --git a/src/test/java/com/ericsson/ei/controller/TestInformationControllerImpl.java b/src/test/java/com/ericsson/ei/controller/TestInformationControllerImpl.java
index c90964195..b9f03c0e2 100644
--- a/src/test/java/com/ericsson/ei/controller/TestInformationControllerImpl.java
+++ b/src/test/java/com/ericsson/ei/controller/TestInformationControllerImpl.java
@@ -24,6 +24,7 @@
import com.ericsson.ei.App;
import com.ericsson.ei.controller.model.ParseInstanceInfoEI;
+import com.ericsson.ei.encryption.Encryptor;
import com.ericsson.ei.utils.TestContextInitializer;
@TestPropertySource(properties = {
@@ -33,7 +34,7 @@
"rabbitmq.queue.suffix: TestInformationControllerImpl" })
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = App.class, loader = SpringBootContextLoader.class, initializers = TestContextInitializer.class)
-@WebMvcTest(value = InformationController.class, secure = false)
+@WebMvcTest(value = InformationController.class)
public class TestInformationControllerImpl extends ControllerTestBaseClass {
@MockBean
@@ -41,6 +42,9 @@ public class TestInformationControllerImpl extends ControllerTestBaseClass {
@MockBean
private InformationController infoController;
+
+ @MockBean
+ private Encryptor encryptor;
@Test
public void testResponseStatus() throws Throwable {
diff --git a/src/test/java/com/ericsson/ei/flowtests/FlowTestBase.java b/src/test/java/com/ericsson/ei/flowtests/FlowTestBase.java
index efa5d9817..f5b4e70f6 100644
--- a/src/test/java/com/ericsson/ei/flowtests/FlowTestBase.java
+++ b/src/test/java/com/ericsson/ei/flowtests/FlowTestBase.java
@@ -41,7 +41,7 @@
import com.ericsson.ei.waitlist.WaitListStorageHandler;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.mongodb.MongoClient;
+import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.rabbitmq.client.Channel;
@@ -206,7 +206,7 @@ private long countProcessedEvents(String database, String collection) throws Exc
}
MongoDatabase db = mongoClient.getDatabase(database);
MongoCollection table = db.getCollection(collection);
- return table.count();
+ return table.countDocuments();
}
protected void waitForEventsToBeProcessed(int eventsCount) throws Exception {
diff --git a/src/test/java/com/ericsson/ei/handlers/test/ObjectHandlerTest.java b/src/test/java/com/ericsson/ei/handlers/test/ObjectHandlerTest.java
index b776b7331..79e09c9d4 100644
--- a/src/test/java/com/ericsson/ei/handlers/test/ObjectHandlerTest.java
+++ b/src/test/java/com/ericsson/ei/handlers/test/ObjectHandlerTest.java
@@ -42,7 +42,7 @@
import com.ericsson.ei.test.utils.TestConfigs;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.mongodb.MongoClient;
+import com.mongodb.client.MongoClient;
import de.flapdoodle.embed.mongo.tests.MongodForTestsFactory;
diff --git a/src/test/java/com/ericsson/ei/mongo/MongoDBHandlerTest.java b/src/test/java/com/ericsson/ei/mongo/MongoDBHandlerTest.java
index bdfdfb6d0..a5aaa4c21 100644
--- a/src/test/java/com/ericsson/ei/mongo/MongoDBHandlerTest.java
+++ b/src/test/java/com/ericsson/ei/mongo/MongoDBHandlerTest.java
@@ -25,13 +25,15 @@
import java.util.ArrayList;
-import org.junit.After;
+import org.bson.Document;
import org.junit.Before;
import org.junit.Test;
import com.ericsson.ei.test.utils.TestConfigs;
-import com.mongodb.MongoClient;
import com.mongodb.ServerAddress;
+import com.mongodb.client.ListDatabasesIterable;
+import com.mongodb.client.MongoClient;
+import com.mongodb.client.MongoCursor;
public class MongoDBHandlerTest {
@@ -72,12 +74,6 @@ public void testGetDocumentsOnCondition() {
assertTrue(documents.size() > 0);
}
- @Test
- public void testUpdateDocument() {
- final MongoQuery query = MongoCondition.idCondition("eventId");
- assertTrue("Document was not updated",
- mongoDBHandler.updateDocument(dataBaseName, collectionName, query, updateInput));
- }
@Test
public void testUpdateDocumentWrongId() {
@@ -87,18 +83,10 @@ public void testUpdateDocumentWrongId() {
}
@Test
- public void testIsMongoDBServerUp() {
- MongoClient client = mock(MongoClient.class);
- when(client.getAddress()).thenReturn(new ServerAddress());
- mongoDBHandler.setMongoClient(client);
- assertTrue(mongoDBHandler.isMongoDBServerUp());
-
- doThrow(Exception.class).when(client).getAddress();
- mongoDBHandler.setMongoClient(client);
- assertFalse(mongoDBHandler.isMongoDBServerUp());
-
- // Need to set a working client to enable cleanup
- mongoDBHandler.setMongoClient(TestConfigs.getMongoClient());
+ public void testUpdateDocument() {
+ final MongoQuery query = MongoCondition.idCondition("eventId");
+ assertTrue("Document was not updated",
+ mongoDBHandler.updateDocument(dataBaseName, collectionName, query, updateInput));
}
// Added test cases for EventToObjectMapHandler
@@ -114,13 +102,6 @@ public void updateEventToObjectMap() {
conditionForEventToObjectMap, updateInputForEventToObjectMap));
}
- @After
- public void dropCollection() {
- final MongoCondition idCondition = MongoCondition.idCondition("eventId");
- assertTrue(mongoDBHandler.dropDocument(dataBaseName, collectionName, idCondition));
- mongoDBHandler.dropCollection(dataBaseName, mapCollectionName);
- }
-
@Test
public void checkMongoDBStatusUp() {
assertEquals(mongoDBHandler.checkMongoDbStatus(dataBaseName), true);
@@ -132,4 +113,31 @@ public void checkMongoDBStatusDown() {
final MongoClient mongoclient = null;
assertEquals(mongoDB.checkMongoDbStatus(dataBaseName), false);
}
+
+ @Test
+ public void dropCollection() {
+ final MongoCondition idCondition = MongoCondition.idCondition("eventId");
+ assertTrue(mongoDBHandler.dropDocument(dataBaseName, collectionName, idCondition));
+ mongoDBHandler.dropCollection(dataBaseName, mapCollectionName);
+ }
+
+ @Test
+ public void testIsMongoDBServerUp() {
+ MongoClient client = mock(MongoClient.class);
+ Document document = mock(Document.class);
+ ListDatabasesIterable documents = mock(ListDatabasesIterable.class);;
+ ListDatabasesIterable list = client.listDatabases();
+ MongoCursor cursor= mock(MongoCursor.class);
+
+ when(client.listDatabases()).thenReturn(documents);
+ when(cursor.getServerAddress()).thenReturn(new ServerAddress());
+ assertTrue(mongoDBHandler.isMongoDBServerUp());
+
+ doThrow(Exception.class).when(documents);
+ mongoDBHandler.setMongoClient(null);
+ assertFalse(mongoDBHandler.isMongoDBServerUp());
+
+ //Need to set a working client to enable cleanup
+ mongoDBHandler.setMongoClient(TestConfigs.getMongoClient());
+ }
}
diff --git a/src/test/java/com/ericsson/ei/notifications/HttpRequestTest.java b/src/test/java/com/ericsson/ei/notifications/HttpRequestTest.java
index 35152758e..f79b9ae26 100644
--- a/src/test/java/com/ericsson/ei/notifications/HttpRequestTest.java
+++ b/src/test/java/com/ericsson/ei/notifications/HttpRequestTest.java
@@ -19,6 +19,7 @@
import java.io.IOException;
import java.util.Base64;
+import org.bson.Document;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
@@ -38,9 +39,10 @@
import com.ericsson.eiffelcommons.subscriptionobject.RestPostSubscriptionObject;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
-import com.mongodb.MongoClient;
+import com.mongodb.client.ListDatabasesIterable;
+import com.mongodb.client.MongoClient;
+import com.mongodb.client.MongoCursor;
-import de.flapdoodle.embed.mongo.distribution.Version;
import de.flapdoodle.embed.mongo.tests.MongodForTestsFactory;
@TestPropertySource(properties = {
@@ -80,9 +82,9 @@ public class HttpRequestTest {
private HttpRequest httpRequest;
public static void setUpEmbeddedMongo() throws Exception {
- testsFactory = MongodForTestsFactory.with(Version.V3_4_1);
- mongoClient = testsFactory.newMongo();
- String port = "" + mongoClient.getAddress().getPort();
+ ListDatabasesIterable list = mongoClient.listDatabases();
+ MongoCursor iter = list.iterator();
+ String port = "" + iter.getServerAddress().getPort();
System.setProperty("spring.data.mongodb.port", port);
}
diff --git a/src/test/java/com/ericsson/ei/queryservice/test/QueryServiceRESTAPITest.java b/src/test/java/com/ericsson/ei/queryservice/test/QueryServiceRESTAPITest.java
index 486e1e6fc..ed23eb443 100644
--- a/src/test/java/com/ericsson/ei/queryservice/test/QueryServiceRESTAPITest.java
+++ b/src/test/java/com/ericsson/ei/queryservice/test/QueryServiceRESTAPITest.java
@@ -50,6 +50,7 @@
import com.ericsson.ei.controller.AggregatedObjectControllerImpl;
import com.ericsson.ei.controller.EntryPointConstantsUtils;
import com.ericsson.ei.controller.FailedNotificationControllerImpl;
+import com.ericsson.ei.encryption.Encryptor;
import com.ericsson.ei.utils.TestContextInitializer;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
@@ -61,11 +62,14 @@
"rabbitmq.queue.suffix: QueryServiceRESTAPITest" })
@ContextConfiguration(classes = App.class, loader = SpringBootContextLoader.class, initializers = TestContextInitializer.class)
@RunWith(SpringJUnit4ClassRunner.class)
-@WebMvcTest(value = AggregatedObjectController.class, secure = false)
+@WebMvcTest(value = AggregatedObjectController.class)
public class QueryServiceRESTAPITest {
@Autowired
private MockMvc mockMvc;
+
+ @MockBean
+ private Encryptor encryptor;
static JSONArray jsonArray = null;
diff --git a/src/test/java/com/ericsson/ei/queryservice/test/QueryServiceTest.java b/src/test/java/com/ericsson/ei/queryservice/test/QueryServiceTest.java
index f52874c24..6bb48fa36 100644
--- a/src/test/java/com/ericsson/ei/queryservice/test/QueryServiceTest.java
+++ b/src/test/java/com/ericsson/ei/queryservice/test/QueryServiceTest.java
@@ -25,6 +25,7 @@
import org.apache.commons.io.FileUtils;
import org.bson.BsonDocument;
import org.bson.Document;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
@@ -48,7 +49,7 @@
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.node.ObjectNode;
import com.mongodb.BasicDBObject;
-import com.mongodb.MongoClient;
+import com.mongodb.client.MongoClient;
@TestPropertySource(properties = {
"spring.data.mongodb.database: QueryServiceTest",
@@ -103,14 +104,6 @@ public void initMocks() throws Exception {
mongoClient.getDatabase(database).getCollection(failedNotificationCollectionName)
.insertOne(failedDocument);
LOG.debug("Document Inserted in failed notification Database");
-
- BasicDBObject preparedAggDocument = objectHandler.prepareDocumentForInsertion(
- aggDocument.getString("_id"),
- aggregatedObject);
- aggDocument = Document.parse(preparedAggDocument.toString());
- mongoClient.getDatabase(database).getCollection(aggregationCollectionName)
- .insertOne(aggDocument);
- LOG.debug("Document Inserted in Aggregated Object Database");
}
public void initializeData() throws Exception {
@@ -119,6 +112,21 @@ public void initializeData() throws Exception {
failedNotification = FileUtils.readFileToString(new File(FAILED_NOTIFICATION_PATH), "UTF-8");
LOG.debug("The failed notification is : " + failedNotification);
}
+
+ @Before
+ public void insertOneAggregation() {
+ Document aggDocument = Document.parse(aggregatedObject);
+ BasicDBObject preparedAggDocument = objectHandler.prepareDocumentForInsertion(
+ aggDocument.getString("_id"),
+ aggregatedObject);
+ aggDocument = Document.parse(preparedAggDocument.toString());
+ try {
+ mongoClient.getDatabase(database).getCollection(aggregationCollectionName).insertOne(aggDocument);
+ LOG.debug("Document Inserted in Aggregated Object Database");
+ } catch (Exception e) {
+ LOG.debug("Document already present in Aggregated Object Database");
+ }
+ }
@Test
public void processFailedNotificationTest() {
diff --git a/src/test/java/com/ericsson/ei/queryservice/test/TestProcessQueryParams.java b/src/test/java/com/ericsson/ei/queryservice/test/TestProcessQueryParams.java
index 221c7bbf5..62a90372b 100644
--- a/src/test/java/com/ericsson/ei/queryservice/test/TestProcessQueryParams.java
+++ b/src/test/java/com/ericsson/ei/queryservice/test/TestProcessQueryParams.java
@@ -28,6 +28,7 @@
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import com.ericsson.ei.App;
+import com.ericsson.ei.encryption.Encryptor;
import com.ericsson.ei.mongo.MongoQuery;
import com.ericsson.ei.queryservice.ProcessAggregatedObject;
import com.ericsson.ei.queryservice.ProcessQueryParams;
@@ -57,6 +58,9 @@ public class TestProcessQueryParams {
@MockBean
private ProcessAggregatedObject processAggregatedObject;
+
+ @MockBean
+ private Encryptor encryptor;
@BeforeClass
public static void setUp() throws JSONException {
diff --git a/src/test/java/com/ericsson/ei/rules/TestRulesService.java b/src/test/java/com/ericsson/ei/rules/TestRulesService.java
index 853b10460..05bc667c0 100644
--- a/src/test/java/com/ericsson/ei/rules/TestRulesService.java
+++ b/src/test/java/com/ericsson/ei/rules/TestRulesService.java
@@ -23,7 +23,7 @@
import com.ericsson.ei.mongo.MongoDBHandler;
import com.ericsson.ei.test.utils.TestConfigs;
import com.ericsson.ei.utils.TestContextInitializer;
-import com.mongodb.MongoClient;
+import com.mongodb.client.MongoClient;
@TestPropertySource(properties = {
"spring.data.mongodb.database: TestRulesService",
diff --git a/src/test/java/com/ericsson/ei/services/SubscriptionRestAPITest.java b/src/test/java/com/ericsson/ei/services/SubscriptionRestAPITest.java
index 072b53656..cca56193d 100644
--- a/src/test/java/com/ericsson/ei/services/SubscriptionRestAPITest.java
+++ b/src/test/java/com/ericsson/ei/services/SubscriptionRestAPITest.java
@@ -45,11 +45,12 @@
import com.ericsson.ei.controller.SubscriptionController;
import com.ericsson.ei.controller.model.Subscription;
+import com.ericsson.ei.encryption.Encryptor;
import com.ericsson.ei.exception.SubscriptionNotFoundException;
import com.fasterxml.jackson.databind.ObjectMapper;
@RunWith(SpringJUnit4ClassRunner.class)
-@WebMvcTest(value = SubscriptionController.class, secure = false)
+@WebMvcTest(value = SubscriptionController.class)
public class SubscriptionRestAPITest {
private static final String SUBSCRIPTION = "src/test/resources/subscription_single.json";
@@ -69,6 +70,8 @@ public class SubscriptionRestAPITest {
@MockBean
private SecurityContext securityContext;
+ @MockBean private Encryptor encryptor;
+
private ObjectMapper mapper = new ObjectMapper();
diff --git a/src/test/java/com/ericsson/ei/services/SubscriptionServiceTest.java b/src/test/java/com/ericsson/ei/services/SubscriptionServiceTest.java
index 4c035f034..c6450ed69 100644
--- a/src/test/java/com/ericsson/ei/services/SubscriptionServiceTest.java
+++ b/src/test/java/com/ericsson/ei/services/SubscriptionServiceTest.java
@@ -60,7 +60,7 @@
import com.ericsson.eiffelcommons.subscriptionobject.SubscriptionObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mongodb.BasicDBObject;
-import com.mongodb.MongoClient;
+import com.mongodb.client.MongoClient;
@TestPropertySource(properties = {
"spring.data.mongodb.database: SubscriptionServiceTest",
diff --git a/src/test/java/com/ericsson/ei/subscription/SubscriptionRepeatDbHandlerTest.java b/src/test/java/com/ericsson/ei/subscription/SubscriptionRepeatDbHandlerTest.java
index 745f5f231..b5294ef5e 100644
--- a/src/test/java/com/ericsson/ei/subscription/SubscriptionRepeatDbHandlerTest.java
+++ b/src/test/java/com/ericsson/ei/subscription/SubscriptionRepeatDbHandlerTest.java
@@ -33,7 +33,6 @@
import com.ericsson.ei.mongo.MongoDBHandler;
import com.ericsson.ei.utils.FunctionalTestBase;
import com.mongodb.BasicDBObject;
-import com.mongodb.util.JSON;
@TestPropertySource(properties = {
"spring.data.mongodb.database: SubscriptionRepeatDbHandlerTest",
@@ -76,7 +75,7 @@ public void addOneNewMatchedAggrIdToDatabase() {
subsRepeatDbHandler.addMatchedAggrObjToSubscriptionId(subscriptionId, requirementId, aggrObjId);
- BasicDBObject dbResult = (BasicDBObject) JSON.parse(mongoDBHandler
+ BasicDBObject dbResult = BasicDBObject.parse(mongoDBHandler
.find(subRepeatFlagDataBaseName,
subRepeatFlagCollectionName,
subscriptionQuery)
@@ -114,7 +113,7 @@ public void addTwoNewMatchedAggrIdToDatabase() {
subsRepeatDbHandler.addMatchedAggrObjToSubscriptionId(subscriptionId2, requirementId2, aggrObjId2);
- BasicDBObject dbResult = (BasicDBObject) JSON.parse(mongoDBHandler
+ BasicDBObject dbResult = BasicDBObject.parse(mongoDBHandler
.find(subRepeatFlagDataBaseName,
subRepeatFlagCollectionName,
subscriptionQuery2)
@@ -124,7 +123,7 @@ public void addTwoNewMatchedAggrIdToDatabase() {
assertEquals(subscriptionId2, dbResult.get("subscriptionId").toString());
String actual = dbResult.get("requirements").toString();
- String expected = "{ \"" + requirementId2 + "\" : [ \"" + aggrObjId2 + "\"]}";
+ String expected = "{\"" + requirementId2 + "\": [\"" + aggrObjId2 + "\"]}";
String msg = "\nACTUAL : |" + actual + "|\nEXPECTED: |" + expected + "|";
boolean result = true;
@@ -163,7 +162,7 @@ public void addTwoNewSameMatchedAggrIdToDatabase() {
e.printStackTrace();
}
- BasicDBObject dbResult = (BasicDBObject) JSON.parse(mongoDBHandler
+ BasicDBObject dbResult = BasicDBObject.parse(mongoDBHandler
.find(subRepeatFlagDataBaseName,
subRepeatFlagCollectionName,
subscriptionQuery)
@@ -175,7 +174,7 @@ public void addTwoNewSameMatchedAggrIdToDatabase() {
log.error("DB Content: " + dbResult.toString());
String actual = dbResult.get("requirements").toString();
- String expected = "{ \"0\" : [ \"" + aggrObjId + "\" , \"" + aggrObjId2 + "\"]}";
+ String expected = "{\"0\": [\"" + aggrObjId + "\", \"" + aggrObjId2 + "\"]}";
String msg = "\nACTUAL : |" + actual + "|\nEXPECTED: |" + expected + "|";
boolean result = true;
if (!expected.equals(actual)) {
diff --git a/src/test/java/com/ericsson/ei/test/utils/TestConfigs.java b/src/test/java/com/ericsson/ei/test/utils/TestConfigs.java
index c2a22527d..61723f19c 100644
--- a/src/test/java/com/ericsson/ei/test/utils/TestConfigs.java
+++ b/src/test/java/com/ericsson/ei/test/utils/TestConfigs.java
@@ -4,6 +4,7 @@
import java.io.IOException;
import java.util.concurrent.TimeoutException;
+import org.bson.Document;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.core.BindingBuilder;
@@ -14,7 +15,10 @@
import org.springframework.util.SocketUtils;
import com.ericsson.ei.utils.AMQPBrokerManager;
-import com.mongodb.MongoClient;
+import com.mongodb.client.ListDatabasesIterable;
+import com.mongodb.client.MongoClient;
+import com.mongodb.client.MongoClients;
+import com.mongodb.client.MongoCursor;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
@@ -74,10 +78,11 @@ private static synchronized void setUpEmbeddedMongo(String mongoUri) throws IOEx
}
try {
- testsFactory = MongodForTestsFactory.with(Version.V3_4_1);
- mongoClient = testsFactory.newMongo();
- String port = String.valueOf(mongoClient.getAddress().getPort());
- setNewPortToMongoDBUriProperty(mongoUri, port);
+ mongoClient = MongoClients.create(mongoUri);
+ ListDatabasesIterable list = mongoClient.listDatabases();
+ MongoCursor iter = list.iterator();
+ String port = "" + iter.getServerAddress().getPort();
+ setNewPortToMongoDBUriProperty(mongoUri, port);
} catch (Exception e) {
LOGGER.error("Error setting new mongoDB uri property {}", e.getMessage(), e);
}
diff --git a/src/test/resources/FailedNotification.json b/src/test/resources/FailedNotification.json
index 503313868..2ef219df3 100644
--- a/src/test/resources/FailedNotification.json
+++ b/src/test/resources/FailedNotification.json
@@ -2,7 +2,7 @@
"subscriptionName": "Subscription_1",
"notificationMeta": "some_url",
"time": {
- "$date": "2019-08-29T06:29:00.000Z"
+ "$date": "2019-08-29T06:29:00Z"
},
"aggregatedObject": {
"fileInformation": [
diff --git a/src/test/resources/FailedNotificationOutput.json b/src/test/resources/FailedNotificationOutput.json
index 9e4b7a4fc..4ba9083b9 100644
--- a/src/test/resources/FailedNotificationOutput.json
+++ b/src/test/resources/FailedNotificationOutput.json
@@ -3,7 +3,7 @@
"subscriptionName": "Subscription_1",
"notificationMeta": "some_url",
"time": {
- "$date": "2019-08-29T06:29:00.000Z"
+ "$date": "2019-08-29T06:29:00Z"
},
"aggregatedObject": {
"fileInformation": [