Improve ueb-listener tests
Use Maria4JDB to improve test coverage of ueb-listener.
Change-Id: Ifb88916434bb1b293b4bbd6fae069cd1e88c9d8d
Issue-ID: CCSDK-106
Signed-off-by: Dan Timoney <dtimoney@att.com>
diff --git a/ueb-listener/pom.xml b/ueb-listener/pom.xml
index 68d8fc0..2241047 100755
--- a/ueb-listener/pom.xml
+++ b/ueb-listener/pom.xml
@@ -41,7 +41,7 @@
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
- <version>1.7.10</version>
+ <version>1.7.21</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
@@ -82,6 +82,12 @@
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
+ <dependency>
+ <groupId>ch.vorburger.mariaDB4j</groupId>
+ <artifactId>mariaDB4j</artifactId>
+ <version>2.2.3</version>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>org.onap.ccsdk.sli.core</groupId>
<artifactId>dblib-provider</artifactId>
diff --git a/ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebCallback.java b/ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebCallback.java
index b3c96d9..2cc08e1 100644
--- a/ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebCallback.java
+++ b/ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebCallback.java
@@ -207,7 +207,13 @@
Properties props = new Properties();
props.load(new FileInputStream(propFile));
- jdbcDataSource = new DBResourceManager(props);
+ setJdbcDataSource(new DBResourceManager(props));
+
+ }
+
+ static void setJdbcDataSource(DBResourceManager dbMgr) {
+
+ jdbcDataSource = dbMgr;
if(jdbcDataSource.isActive()){
LOG.warn( "DBLIB: JDBC DataSource has been initialized.");
diff --git a/ueb-listener/src/test/java/org/onap/ccsdk/sli/northbound/uebclient/TestSdncUebCallback.java b/ueb-listener/src/test/java/org/onap/ccsdk/sli/northbound/uebclient/TestSdncUebCallback.java
index 609d120..d62618c 100644
--- a/ueb-listener/src/test/java/org/onap/ccsdk/sli/northbound/uebclient/TestSdncUebCallback.java
+++ b/ueb-listener/src/test/java/org/onap/ccsdk/sli/northbound/uebclient/TestSdncUebCallback.java
@@ -3,28 +3,60 @@
import static org.mockito.Mockito.mock;
import java.io.File;
+import java.io.InputStream;
+import java.net.URL;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;
+import java.util.Properties;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.onap.ccsdk.sli.core.dblib.DBResourceManager;
import org.openecomp.sdc.api.IDistributionClient;
import org.openecomp.sdc.api.notification.INotificationData;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import ch.vorburger.mariadb4j.DB;
+import ch.vorburger.mariadb4j.DBConfigurationBuilder;
+
public class TestSdncUebCallback {
private static final Logger LOG = LoggerFactory
.getLogger(TestSdncUebCallback.class);
SdncUebConfiguration config;
+ DBResourceManager dblibSvc;
+ DB db;
@Before
public void setUp() throws Exception {
config = new SdncUebConfiguration("src/test/resources");
+
+ URL propUrl = getClass().getResource("/dblib.properties");
+
+ InputStream propStr = getClass().getResourceAsStream("/dblib.properties");
+
+ Properties props = new Properties();
+
+ props.load(propStr);
+
+
+ // Start MariaDB4j database
+ DBConfigurationBuilder config = DBConfigurationBuilder.newBuilder();
+ config.setPort(0); // 0 => autom. detect free port
+ db = DB.newEmbeddedDB(config.build());
+ db.start();
+
+
+ // Override jdbc URL and database name
+ props.setProperty("org.onap.ccsdk.sli.jdbc.database", "test");
+ props.setProperty("org.onap.ccsdk.sli.jdbc.url", config.getURL("test"));
+
+
+ dblibSvc = new DBResourceManager(props);
}
@After
@@ -44,6 +76,8 @@
LOG.warn("Cannot replace spool file {}", curFileName, x);
}
+ db.stop();
+
}
@Test
@@ -51,6 +85,7 @@
IDistributionClient iDistClient = mock(IDistributionClient.class);
SdncUebCallback cb = new SdncUebCallback(iDistClient, config);
+ cb.setJdbcDataSource(dblibSvc);
INotificationData iData = mock(INotificationData.class);
cb.activateCallback(iData);
diff --git a/ueb-listener/src/test/resources/dblib.properties b/ueb-listener/src/test/resources/dblib.properties
new file mode 100644
index 0000000..9506ac8
--- /dev/null
+++ b/ueb-listener/src/test/resources/dblib.properties
@@ -0,0 +1,38 @@
+###
+# ============LICENSE_START=======================================================
+# openECOMP : SDN-C
+# ================================================================================
+# Copyright (C) 2017 AT&T Intellectual Property. All rights
+# reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+###
+
+# dblib.properrties
+org.onap.ccsdk.sli.dbtype=jdbc
+
+org.onap.ccsdk.sli.jdbc.hosts=sdnctldb01
+org.onap.ccsdk.sli.jdbc.url=jdbc:mysql://dbhost:3306/sdnctl
+org.onap.ccsdk.sli.jdbc.driver=org.mariadb.jdbc.Driver
+org.onap.ccsdk.sli.jdbc.database=sdnctl
+org.onap.ccsdk.sli.jdbc.user=sdnctl
+org.onap.ccsdk.sli.jdbc.password=gamma
+org.onap.ccsdk.sli.jdbc.connection.name=sdnctldb01
+org.onap.ccsdk.sli.jdbc.connection.timeout=50
+org.onap.ccsdk.sli.jdbc.request.timeout=100
+org.onap.ccsdk.sli.jdbc.limit.init=10
+org.onap.ccsdk.sli.jdbc.limit.min=10
+org.onap.ccsdk.sli.jdbc.limit.max=20
+org.onap.dblib.connection.recovery=false
+