summaryrefslogtreecommitdiffstats
path: root/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'src/test')
-rw-r--r--src/test/java/org/onap/dcae/inventory/InventoryApplicationTest.java115
-rw-r--r--src/test/java/org/onap/dcae/inventory/InventoryConfigurationTest.java9
-rw-r--r--src/test/java/org/onap/dcae/inventory/dbthings/StringListArgumentTest.java126
3 files changed, 249 insertions, 1 deletions
diff --git a/src/test/java/org/onap/dcae/inventory/InventoryApplicationTest.java b/src/test/java/org/onap/dcae/inventory/InventoryApplicationTest.java
new file mode 100644
index 0000000..8011452
--- /dev/null
+++ b/src/test/java/org/onap/dcae/inventory/InventoryApplicationTest.java
@@ -0,0 +1,115 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * dcae-inventory
+ * ================================================================================
+ * Copyright (C) 2019 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=========================================================
+ */
+
+package org.onap.dcae.inventory;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import io.dropwizard.db.DataSourceFactory;
+import io.dropwizard.jersey.setup.JerseyEnvironment;
+import io.dropwizard.jetty.setup.ServletEnvironment;
+import io.dropwizard.setup.Bootstrap;
+import io.dropwizard.setup.Environment;
+import org.eclipse.jetty.servlets.CrossOriginFilter;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.junit.runner.manipulation.Filter;
+import org.onap.dcae.inventory.daos.InventoryDAOManager;
+import org.powermock.api.mockito.PowerMockito;
+import org.powermock.core.classloader.annotations.PrepareForTest;
+import org.powermock.modules.junit4.PowerMockRunner;
+
+import javax.servlet.FilterRegistration;
+import java.util.HashMap;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doAnswer;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+/**
+ * Created by mhwang on 3/14/19.
+ */
+@PrepareForTest({InventoryDAOManager.class})
+@RunWith(PowerMockRunner.class)
+public class InventoryApplicationTest {
+
+ @Test
+ public void testProcessArgs() {
+ String userArgs[] = {"server"};
+ assertEquals(InventoryApplication.processArgs(userArgs).length, 2);
+
+ userArgs = new String[] {"server some-yaml.yaml"};
+ assertArrayEquals(InventoryApplication.processArgs(userArgs), userArgs);
+
+ userArgs = new String[] {"foo"};
+ assertArrayEquals(InventoryApplication.processArgs(userArgs), userArgs);
+
+ userArgs = new String[] {"foo bar"};
+ assertArrayEquals(InventoryApplication.processArgs(userArgs), userArgs);
+ }
+
+ @Test
+ public void testAppInit() {
+ InventoryApplication app = new InventoryApplication();
+ assertEquals(app.getName(), "dcae-inventory");
+
+ Bootstrap<InventoryConfiguration> mockBootstrap = mock(Bootstrap.class);
+ app.initialize(mockBootstrap);
+
+ InventoryApplication.shouldRemoteFetchConfig = !InventoryApplication.shouldRemoteFetchConfig;
+ app.initialize(mockBootstrap);
+ }
+
+ @Test
+ public void testAppRun() {
+ InventoryApplication app = new InventoryApplication();
+
+ ServletEnvironment mockEnvServlet = mock(ServletEnvironment.class);
+ FilterRegistration.Dynamic mockFilters = mock(FilterRegistration.Dynamic.class);
+ when(mockEnvServlet.addFilter("CORSFilter", CrossOriginFilter.class)).thenReturn(mockFilters);
+ Environment mockEnv = mock(Environment.class);
+ when(mockEnv.servlets()).thenReturn(mockEnvServlet);
+ when(mockEnv.getObjectMapper()).thenReturn(new ObjectMapper());
+ JerseyEnvironment mockEnvJersey = mock(JerseyEnvironment.class);
+ when(mockEnv.jersey()).thenReturn(mockEnvJersey);
+
+ DataSourceFactory mockDSF = mock(DataSourceFactory.class);
+ when(mockDSF.getProperties()).thenReturn(new HashMap<String, String>());
+ InventoryConfiguration.DatabusControllerConnectionConfiguration mockConfigBus = mock(InventoryConfiguration.DatabusControllerConnectionConfiguration.class);
+ InventoryConfiguration mockConfig = mock(InventoryConfiguration.class);
+ when(mockConfig.getDataSourceFactory()).thenReturn(mockDSF);
+ when(mockConfig.getDatabusControllerConnection()).thenReturn(mockConfigBus);
+ when(mockConfigBus.getRequired()).thenReturn(Boolean.FALSE);
+
+ // PowerMockito does bytecode magic to mock static methods and use final classes
+ PowerMockito.mockStatic(InventoryDAOManager.class);
+ InventoryDAOManager mockDaoManager = mock(InventoryDAOManager.class);
+
+ when(InventoryDAOManager.getInstance()).thenReturn(mockDaoManager);
+ doAnswer((a) -> {return null;}).when(mockDaoManager).initialize();
+
+ app.run(mockConfig, mockEnv);
+ }
+
+}
diff --git a/src/test/java/org/onap/dcae/inventory/InventoryConfigurationTest.java b/src/test/java/org/onap/dcae/inventory/InventoryConfigurationTest.java
index 1848a42..1935d8d 100644
--- a/src/test/java/org/onap/dcae/inventory/InventoryConfigurationTest.java
+++ b/src/test/java/org/onap/dcae/inventory/InventoryConfigurationTest.java
@@ -2,7 +2,7 @@
* ============LICENSE_START=======================================================
* dcae-inventory
* ================================================================================
- * Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
+ * Copyright (C) 2018-2019 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.
@@ -21,6 +21,7 @@
package org.onap.dcae.inventory;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
import java.io.File;
@@ -55,6 +56,12 @@ public class InventoryConfigurationTest {
assertEquals(configuration.getDatabusControllerConnection().getHost(), "databus-controller-hostname");
assertEquals((long) configuration.getDatabusControllerConnection().getPort(), 8443);
assertEquals(configuration.getDatabusControllerConnection().getRequired(), true);
+ assertEquals(configuration.getDatabusControllerConnection().getMechId(), "some-mech-id");
+ assertEquals(configuration.getDatabusControllerConnection().getPassword(), "some-password");
+
+ configuration.setDefaultName("foo-config");
+ assertEquals(configuration.getDefaultName(), "foo-config");
+ assertNotNull(configuration.getJerseyClientConfiguration());
assertEquals(configuration.getDataSourceFactory().getUrl(), "jdbc:postgresql://127.0.0.1:5432/dcae_inv");
} catch (Exception e) {
diff --git a/src/test/java/org/onap/dcae/inventory/dbthings/StringListArgumentTest.java b/src/test/java/org/onap/dcae/inventory/dbthings/StringListArgumentTest.java
new file mode 100644
index 0000000..4fc2c6c
--- /dev/null
+++ b/src/test/java/org/onap/dcae/inventory/dbthings/StringListArgumentTest.java
@@ -0,0 +1,126 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * dcae-inventory
+ * ================================================================================
+ * Copyright (C) 2019 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=========================================================
+ */
+
+package org.onap.dcae.inventory.dbthings;
+
+import org.junit.Test;
+import org.skife.jdbi.v2.tweak.Argument;
+
+import java.sql.*;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.fail;
+import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+/**
+ * Created by mhwang on 3/14/19.
+ */
+public class StringListArgumentTest {
+
+ @Test
+ public void testAccepts() {
+ StringListArgument test = new StringListArgument();
+ assertEquals(test.accepts(null, new ArrayList<>(), null), true);
+ assertEquals(test.accepts(null, null, null), false);
+ assertEquals(test.accepts(null, "fail case", null), false);
+ }
+
+ @Test
+ public void testStringListArgumentBuild() {
+ StringListArgument test = new StringListArgument();
+ assertNotNull(test.build(null, null, null));
+
+ List<String> value = new ArrayList<>();
+ Argument func = test.build(null, value, null);
+
+ try {
+ PreparedStatement statement = mock(PreparedStatement.class);
+ Connection conn = mock(Connection.class);
+ when(conn.createArrayOf(any(), any())).thenReturn(new Array() {
+ @Override
+ public String getBaseTypeName() throws SQLException {
+ return null;
+ }
+
+ @Override
+ public int getBaseType() throws SQLException {
+ return 0;
+ }
+
+ @Override
+ public Object getArray() throws SQLException {
+ return null;
+ }
+
+ @Override
+ public Object getArray(Map<String, Class<?>> map) throws SQLException {
+ return null;
+ }
+
+ @Override
+ public Object getArray(long index, int count) throws SQLException {
+ return null;
+ }
+
+ @Override
+ public Object getArray(long index, int count, Map<String, Class<?>> map) throws SQLException {
+ return null;
+ }
+
+ @Override
+ public ResultSet getResultSet() throws SQLException {
+ return null;
+ }
+
+ @Override
+ public ResultSet getResultSet(Map<String, Class<?>> map) throws SQLException {
+ return null;
+ }
+
+ @Override
+ public ResultSet getResultSet(long index, int count) throws SQLException {
+ return null;
+ }
+
+ @Override
+ public ResultSet getResultSet(long index, int count, Map<String, Class<?>> map) throws SQLException {
+ return null;
+ }
+
+ @Override
+ public void free() throws SQLException {
+
+ }
+ });
+ when(statement.getConnection()).thenReturn(conn);
+ func.apply(0, statement, null);
+ } catch (SQLException e) {
+ fail("Unexpected SQLException");
+ e.printStackTrace();
+ }
+ }
+
+}