From d5ae32097a639dae335426bf6b74b60582159936 Mon Sep 17 00:00:00 2001 From: Mehreen Kaleem Date: Wed, 19 Feb 2020 07:22:45 +0000 Subject: optical-service package added for service create and service delete and to handle async notifications from controller. Change-Id: I117c331e73520a023b9a67a07ede9cc4171cd414 Issue-ID: SDNC-928 Signed-off-by: Mehreen Kaleem --- .../sdnc/northbound/OpticalServiceClientTest.java | 90 ++++++++++++++++ .../northbound/TestOpticalServiceProvider.java | 118 +++++++++++++++++++++ 2 files changed, 208 insertions(+) create mode 100644 optical-service/provider/src/test/java/org/onap/sdnc/northbound/OpticalServiceClientTest.java create mode 100644 optical-service/provider/src/test/java/org/onap/sdnc/northbound/TestOpticalServiceProvider.java (limited to 'optical-service/provider/src/test/java/org') diff --git a/optical-service/provider/src/test/java/org/onap/sdnc/northbound/OpticalServiceClientTest.java b/optical-service/provider/src/test/java/org/onap/sdnc/northbound/OpticalServiceClientTest.java new file mode 100644 index 00000000..430777a9 --- /dev/null +++ b/optical-service/provider/src/test/java/org/onap/sdnc/northbound/OpticalServiceClientTest.java @@ -0,0 +1,90 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : SDN-C + * ================================================================================ + * Copyright (C) 2019-2020 Fujitsu Limited 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.sdnc.northbound; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.*; + +import java.util.Properties; + +import org.junit.Before; +import org.junit.Test; +import org.onap.ccsdk.sli.core.sli.SvcLogicException; +import org.onap.ccsdk.sli.core.sli.provider.MdsalHelper; +import org.onap.ccsdk.sli.core.sli.provider.SvcLogicService; +import org.onap.sdnc.northbound.OpticalServiceClient; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.optical.service.rev191206.OpticalServiceCreateOutputBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.optical.service.rev191206.OpticalServiceDeleteOutputBuilder; + +public class OpticalServiceClientTest { + + SvcLogicService mockSvcLogicService; + String module = "test-module"; + String rpc = "test-rpc"; + String version = "test-version"; + String mode = "test-mode"; + Properties localProp = new Properties(); + + @Before + public void setUp() throws Exception { + mockSvcLogicService = mock(SvcLogicService.class); + when(mockSvcLogicService.hasGraph(module, rpc, version, mode)).thenReturn(true); + } + + @Test + public void testOpticalServiceClientConstructor() { + OpticalServiceClient opticalServiceClient = new OpticalServiceClient(mockSvcLogicService); + assertNotNull(opticalServiceClient); + } + + @Test + public void testHasGraph() throws SvcLogicException { + OpticalServiceClient opticalServiceClient = new OpticalServiceClient(mockSvcLogicService); + boolean result = opticalServiceClient.hasGraph(module, rpc, version, mode); + assertTrue(result); + } + + @Test + public void testExecuteSvcLogicStatusFailureCreate() throws SvcLogicException { + OpticalServiceCreateOutputBuilder serviceData = mock(OpticalServiceCreateOutputBuilder.class); + Properties parms = mock(Properties.class); + SvcLogicService svcLogicService = mock(SvcLogicService.class); + Properties properties = new Properties(); + properties.setProperty("SvcLogic.status", "failure"); + when(svcLogicService.execute(module, rpc, version, mode, properties)).thenReturn(properties); + OpticalServiceClient sliClient = new OpticalServiceClient(svcLogicService); + Properties prop = sliClient.execute(module, rpc, version, mode, serviceData, properties); + assertTrue(prop != null); + } + + @Test + public void testExecuteSvcLogicStatusFailureDelete() throws SvcLogicException { + OpticalServiceDeleteOutputBuilder serviceData = mock(OpticalServiceDeleteOutputBuilder.class); + Properties parms = mock(Properties.class); + SvcLogicService svcLogicService = mock(SvcLogicService.class); + Properties properties = new Properties(); + properties.setProperty("SvcLogic.status", "failure"); + when(svcLogicService.execute(module, rpc, version, mode, properties)).thenReturn(properties); + OpticalServiceClient sliClient = new OpticalServiceClient(svcLogicService); + Properties prop = sliClient.execute(module, rpc, version, mode, serviceData, properties); + assertTrue(prop != null); + } +} \ No newline at end of file diff --git a/optical-service/provider/src/test/java/org/onap/sdnc/northbound/TestOpticalServiceProvider.java b/optical-service/provider/src/test/java/org/onap/sdnc/northbound/TestOpticalServiceProvider.java new file mode 100644 index 00000000..5738aabb --- /dev/null +++ b/optical-service/provider/src/test/java/org/onap/sdnc/northbound/TestOpticalServiceProvider.java @@ -0,0 +1,118 @@ +/*- + * ============LICENSE_START======================================================= + * ONAP : SDN-C + * ================================================================================ + * Copyright (C) 2019-2020 Fujitsu Limited 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.sdnc.northbound; + +import org.junit.Before; +import org.junit.Test; +import org.onap.sdnc.northbound.OpticalServiceProvider; +import org.onap.sdnc.northbound.OpticalServiceClient; +import org.opendaylight.controller.md.sal.binding.api.DataBroker; +import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService; +import org.opendaylight.controller.md.sal.binding.test.AbstractConcurrentDataBrokerTest; +import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.optical.service.rev191206.OpticalServiceCreateInput; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.optical.service.rev191206.OpticalServiceCreateInputBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.optical.service.rev191206.OpticalServiceCreateOutput; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.optical.service.rev191206.optical.service.create.request.PayloadBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.optical.service.rev191206.OpticalServiceDeleteInput; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.optical.service.rev191206.OpticalServiceDeleteInputBuilder; +import org.opendaylight.yang.gen.v1.org.onap.sdnc.northbound.optical.service.rev191206.OpticalServiceDeleteOutput; + +import org.opendaylight.yangtools.yang.common.RpcResult; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import static org.junit.Assert.*; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public class TestOpticalServiceProvider extends AbstractConcurrentDataBrokerTest { + + private OpticalServiceProvider opticalServiceProvider; + private static final Logger LOG = LoggerFactory.getLogger(OpticalServiceProvider.class); + String module = "OpticalService"; + String rpc = "optical-service-create"; + String version = null; + String mode = "sync"; + + @Before + public void setUp() throws Exception { + if (null == opticalServiceProvider) { + DataBroker dataBroker = getDataBroker(); + NotificationPublishService mockNotification = mock(NotificationPublishService.class); + RpcProviderRegistry mockRpcRegistry = mock(RpcProviderRegistry.class); + OpticalServiceClient mockSliClient = mock(OpticalServiceClient.class); + when(mockSliClient.hasGraph(module, rpc, version, mode)).thenReturn(false); + opticalServiceProvider = new OpticalServiceProvider(dataBroker, mockNotification, mockRpcRegistry, mockSliClient); + } + } + + //Should return error 503 when No service logic active for optical-service. + @Test + public void testOpticalServiceCreate() { + + OpticalServiceCreateInputBuilder inputBuilder = new OpticalServiceCreateInputBuilder(); + + java.util.concurrent.Future> future = opticalServiceProvider + .opticalServiceCreate(inputBuilder.build()); + RpcResult rpcResult = null; + try { + rpcResult = future.get(); + } catch (Exception e) { + fail("Error : " + e); + } + assertEquals("503", rpcResult.getResult().getResponseCode()); + } + + @Test + public void testOpticalServiceDelete() { + + OpticalServiceDeleteInputBuilder inputBuilder = new OpticalServiceDeleteInputBuilder(); + java.util.concurrent.Future> future = opticalServiceProvider + .opticalServiceDelete(inputBuilder.build()); + RpcResult rpcResult = null; + try { + rpcResult = future.get(); + } catch (Exception e) { + fail("Error : " + e); + } + assertEquals("503", rpcResult.getResult().getResponseCode()); + } + + + + + //Input parameter validation + @Test + public void testOpticalServiceCreateInputValidation() { + + java.util.concurrent.Future> future = opticalServiceProvider + .opticalServiceCreate(null); + RpcResult rpcResult = null; + try { + rpcResult = future.get(); + } catch (Exception e) { + fail("Error : " + e); + } + assertEquals("403", rpcResult.getResult().getResponseCode()); + } + +} -- cgit 1.2.3-korg