Improve ueb-listener tests 49/17149/1
authorDan Timoney <dtimoney@att.com>
Wed, 4 Oct 2017 00:34:31 +0000 (20:34 -0400)
committerDan Timoney <dtimoney@att.com>
Wed, 4 Oct 2017 00:34:31 +0000 (20:34 -0400)
Use Maria4JDB to improve test coverage of ueb-listener.

Change-Id: Ifb88916434bb1b293b4bbd6fae069cd1e88c9d8d
Issue-ID: CCSDK-106
Signed-off-by: Dan Timoney <dtimoney@att.com>
ueb-listener/pom.xml
ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebCallback.java
ueb-listener/src/test/java/org/onap/ccsdk/sli/northbound/uebclient/TestSdncUebCallback.java
ueb-listener/src/test/resources/dblib.properties [new file with mode: 0644]

index 68d8fc0..2241047 100755 (executable)
@@ -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>
             <artifactId>mockito-core</artifactId>
             <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>
index b3c96d9..2cc08e1 100644 (file)
@@ -207,7 +207,13 @@ public class SdncUebCallback implements INotificationCallback {
                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.");
index 609d120..d62618c 100644 (file)
@@ -3,28 +3,60 @@ package org.onap.ccsdk.sli.northbound.uebclient;
 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 @@ public class TestSdncUebCallback {
             LOG.warn("Cannot replace spool file {}", curFileName, x);
         }
 
+        db.stop();
+
        }
 
        @Test
@@ -51,6 +85,7 @@ public class TestSdncUebCallback {
 
                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 (file)
index 0000000..9506ac8
--- /dev/null
@@ -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
+