diff options
Diffstat (limited to 'src/test')
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(); + } + } + +} |