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
+