diff options
author | Joss Armstrong <joss.armstrong@ericsson.com> | 2019-02-26 09:05:11 +0000 |
---|---|---|
committer | Takamune Cho <takamune.cho@att.com> | 2019-02-26 15:33:03 +0000 |
commit | 423a91b62f381167bf7852c4ac987b96ba06f35c (patch) | |
tree | 1492482cdda91d1d8b0275a670eada9da43a4131 /appc-config | |
parent | 7c9e66f686a9a0c8dce8d6c6a6cd8cc5e6ac829a (diff) |
Test coverage for CCAActivator
Increased coverage from 0% to 93%
Issue-ID: APPC-1497
Change-Id: Ie78ac50a08b47cac9bedb9d34b089ac3ad23ab22
Signed-off-by: Joss Armstrong <joss.armstrong@ericsson.com>
Diffstat (limited to 'appc-config')
4 files changed, 153 insertions, 7 deletions
diff --git a/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/CCAActivator.java b/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/CCAActivator.java index 6815b4c01..6cb72b66f 100644 --- a/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/CCAActivator.java +++ b/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/CCAActivator.java @@ -5,6 +5,8 @@ * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Copyright (C) 2017 Amdocs + * ================================================================================ + * Modifications Copyright (C) 2019 Ericsson * ============================================================================= * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -37,9 +39,6 @@ import org.osgi.framework.ServiceRegistration; public class CCAActivator implements BundleActivator { - private static final String CCA_PROP_FILE_VAR = "SDNC_CCA_PROPERTIES"; - private static final String APPC_CONFIG_DIR_VAR = "APPC_CONFIG_DIR"; - @SuppressWarnings("rawtypes") private ServiceRegistration registration = null; @@ -52,16 +51,18 @@ public class CCAActivator implements BundleActivator Properties props = new Properties(); // Read properties from appc-config-adaptor.properties - String propFileName = System.getenv(CCA_PROP_FILE_VAR); + String propFileName = CcAdaptorConstants.getEnvironmentVariable(CcAdaptorConstants.CCA_PROP_FILE_VAR); if (propFileName == null) { - String propDir = System.getenv(APPC_CONFIG_DIR_VAR); + String propDir = CcAdaptorConstants.getEnvironmentVariable(CcAdaptorConstants.APPC_CONFIG_DIR_VAR); if (propDir == null) throw new ConfigurationException( - "Cannot find config file - " + CCA_PROP_FILE_VAR + " and " + APPC_CONFIG_DIR_VAR + " unset"); + "Cannot find config file - " + CcAdaptorConstants.CCA_PROP_FILE_VAR + " and " + + CcAdaptorConstants.APPC_CONFIG_DIR_VAR + " unset"); propFileName = propDir + "/appc-config-adaptor.properties"; - log.warn("Environment variable " + CCA_PROP_FILE_VAR + " unset - defaulting to " + propFileName); + log.warn("Environment variable " + CcAdaptorConstants.CCA_PROP_FILE_VAR + " unset - defaulting to " + + propFileName); } File propFile = new File(propFileName); diff --git a/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/CcAdaptorConstants.java b/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/CcAdaptorConstants.java new file mode 100644 index 000000000..af6dede6d --- /dev/null +++ b/appc-config/appc-config-adaptor/provider/src/main/java/org/onap/appc/ccadaptor/CcAdaptorConstants.java @@ -0,0 +1,34 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2019 Ericsson + * ================================================================================ + * 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.appc.ccadaptor; + +public class CcAdaptorConstants { + + public static final String CCA_PROP_FILE_VAR = "SDNC_CCA_PROPERTIES"; + public static final String APPC_CONFIG_DIR_VAR = "APPC_CONFIG_DIR"; + + private CcAdaptorConstants() {} + + public static String getEnvironmentVariable(String env) { + return System.getenv(env); + } +} diff --git a/appc-config/appc-config-adaptor/provider/src/test/java/org/onap/appc/ccadaptor/CCAActivatorTest.java b/appc-config/appc-config-adaptor/provider/src/test/java/org/onap/appc/ccadaptor/CCAActivatorTest.java new file mode 100644 index 000000000..f3830501c --- /dev/null +++ b/appc-config/appc-config-adaptor/provider/src/test/java/org/onap/appc/ccadaptor/CCAActivatorTest.java @@ -0,0 +1,86 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2019 Ericsson + * ================================================================================ + * 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.appc.ccadaptor; + +import org.junit.Rule; +import org.junit.Test; +import org.junit.rules.ExpectedException; +import org.junit.runner.RunWith; +import org.mockito.Mockito; +import org.onap.ccsdk.sli.core.sli.ConfigurationException; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; +import org.powermock.api.mockito.PowerMockito; +import org.powermock.core.classloader.annotations.PrepareForTest; +import org.powermock.modules.junit4.PowerMockRunner; +import org.powermock.reflect.Whitebox; + +@RunWith(PowerMockRunner.class) +@PrepareForTest({CcAdaptorConstants.class}) +public class CCAActivatorTest { + + @Rule + public ExpectedException expectedEx = ExpectedException.none(); + + @Test + public void testStartNoConfigFile() throws Exception { + CCAActivator activator = new CCAActivator(); + BundleContext context = Mockito.mock(BundleContext.class); + expectedEx.expect(ConfigurationException.class); + expectedEx.expectMessage( "Cannot find config file - " + CcAdaptorConstants.CCA_PROP_FILE_VAR + " and " + + CcAdaptorConstants.APPC_CONFIG_DIR_VAR + " unset"); + activator.start(context); + } + + @Test + public void testStart() throws Exception { + PowerMockito.mockStatic(CcAdaptorConstants.class); + PowerMockito.when(CcAdaptorConstants.getEnvironmentVariable(CcAdaptorConstants.APPC_CONFIG_DIR_VAR)) + .thenReturn("src/test/resources"); + CCAActivator activator = new CCAActivator(); + BundleContext context = Mockito.mock(BundleContext.class); + activator.start(context); + Mockito.verify(context).registerService(Mockito.anyString(), Mockito.any(), Mockito.any()); + } + + @Test + public void testStartInvalidFile() throws Exception { + PowerMockito.mockStatic(CcAdaptorConstants.class); + PowerMockito.when(CcAdaptorConstants.getEnvironmentVariable(CcAdaptorConstants.APPC_CONFIG_DIR_VAR)) + .thenReturn("INVALID_DIRECTORY"); + CCAActivator activator = new CCAActivator(); + BundleContext context = Mockito.mock(BundleContext.class); + expectedEx.expect(ConfigurationException.class); + expectedEx.expectMessage("Missing configuration properties file: "); + activator.start(context); + } + + @Test + public void testStop() throws Exception { + CCAActivator activator = new CCAActivator(); + ServiceRegistration registration = Mockito.mock(ServiceRegistration.class); + Whitebox.setInternalState(activator, "registration", registration); + activator.stop(Mockito.mock(BundleContext.class)); + Mockito.verify(registration).unregister(); + } + +} diff --git a/appc-config/appc-config-adaptor/provider/src/test/resources/appc-config-adaptor.properties b/appc-config/appc-config-adaptor/provider/src/test/resources/appc-config-adaptor.properties new file mode 100644 index 000000000..e2212ec45 --- /dev/null +++ b/appc-config/appc-config-adaptor/provider/src/test/resources/appc-config-adaptor.properties @@ -0,0 +1,25 @@ +### +# ============LICENSE_START======================================================= +# ONAP : APP-C +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Modifications Copyright (C) 2019 Ericsson +# ================================================================================ +# 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========================================================= +### + +configComponent.url= +configComponent.user= +configComponent.passwd= |