From 7d8d130f209b07107d47d7189bb8c563eb36af86 Mon Sep 17 00:00:00 2001 From: Taka Date: Mon, 12 Feb 2018 12:26:34 -0500 Subject: Unit test for iaas provider activator Change-Id: I7e7ec6d977625406b9d4dee19d974492e1a5f4cc Issue-ID: APPC-615 Signed-off-by: Taka --- .../adapter/iaas/AppcProviderAdapterActivator.java | 5 +- .../iaas/AppcProviderAdapterActivatorTest.java | 111 +++++++++++++++++++++ 2 files changed, 114 insertions(+), 2 deletions(-) create mode 100644 appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/test/java/org/onap/appc/adapter/iaas/AppcProviderAdapterActivatorTest.java diff --git a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/AppcProviderAdapterActivator.java b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/AppcProviderAdapterActivator.java index fbd650c39..14d59fb7d 100644 --- a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/AppcProviderAdapterActivator.java +++ b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/main/java/org/onap/appc/adapter/iaas/AppcProviderAdapterActivator.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP : APPC * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2017-2018 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Copyright (C) 2017 Amdocs * ============================================================================= @@ -75,6 +75,7 @@ public class AppcProviderAdapterActivator implements BundleActivator { */ private Configuration configuration; + private static final String IAAS_ADAPTER = "APPC IaaS adapter"; /** * Called when this bundle is started so the Framework can perform the bundle-specific activities necessary to start * this bundle. This method can be used to register services or to allocate any resources that this bundle needs. @@ -141,7 +142,7 @@ public class AppcProviderAdapterActivator implements BundleActivator { } public String getName() { - return "APPC IaaS adapter"; + return IAAS_ADAPTER; } } diff --git a/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/test/java/org/onap/appc/adapter/iaas/AppcProviderAdapterActivatorTest.java b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/test/java/org/onap/appc/adapter/iaas/AppcProviderAdapterActivatorTest.java new file mode 100644 index 000000000..7a8d9ab3c --- /dev/null +++ b/appc-adapters/appc-iaas-adapter/appc-iaas-adapter-bundle/src/test/java/org/onap/appc/adapter/iaas/AppcProviderAdapterActivatorTest.java @@ -0,0 +1,111 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : APPC + * ================================================================================ + * Copyright (C) 2018 AT&T. 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.appc.adapter.iaas; + +import static org.mockito.BDDMockito.given; +import static org.mockito.BDDMockito.then; +import static org.mockito.Matchers.eq; +import static org.mockito.Matchers.isA; +import static org.mockito.Matchers.isNull; +import static org.mockito.Mockito.only; + +import java.util.Dictionary; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; +import org.onap.appc.adapter.iaas.impl.ProviderAdapterImpl; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; + +@RunWith(MockitoJUnitRunner.class) +public class AppcProviderAdapterActivatorTest { + + @Mock + private ServiceRegistration serviceRegistration; + @Mock + private BundleContext bundleContext; + + private AppcProviderAdapterActivator appcProviderAdapterActivator = new AppcProviderAdapterActivator(); + + @Before + public void setUp() { + given(bundleContext.registerService(eq(ProviderAdapter.class), isA(ProviderAdapterImpl.class), isNull( + Dictionary.class))).willReturn(serviceRegistration); + } + + @Test + public void start_shouldRegisterService_whenRegistrationOccursForTheFirstTime() throws Exception { + registerService(); + + then(bundleContext).should(only()) + .registerService(eq(ProviderAdapter.class), isA(ProviderAdapterImpl.class), isNull( + Dictionary.class)); + } + + @Test + public void start_shouldRegisterServiceOnlyOnce_whenServiceRegistrationIsNotNull() throws Exception { + // GIVEN + registerService(); + + // WHEN + registerService(); + + // THEN + then(bundleContext).should(only()).registerService(eq(ProviderAdapter.class), isA(ProviderAdapterImpl.class), isNull( + Dictionary.class)); + } + + @Test + public void stop_shouldUnregisterService_whenServiceRegistrationObjectIsNotNull() throws Exception { + // GIVEN + registerService(); + + // WHEN + unregisterService(); + + // THEN + then(serviceRegistration).should().unregister(); + } + + @Test + public void stop_shouldNotAttemptToUnregisterService_whenServiceHasAlreadyBeenUnregistered() + throws Exception { + // GIVEN + registerService(); + unregisterService(); + + // WHEN + unregisterService(); + + // THEN + then(serviceRegistration).should(only()).unregister(); + } + + private void registerService() throws Exception { + appcProviderAdapterActivator.start(bundleContext); + } + + private void unregisterService() throws Exception { + appcProviderAdapterActivator.stop(bundleContext); + } +} \ No newline at end of file -- cgit 1.2.3-korg