2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2019 Ericsson
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
19 * ============LICENSE_END=========================================================
22 package org.onap.appc.seqgen.provider;
24 import static org.junit.Assert.assertTrue;
25 import java.util.ArrayList;
26 import java.util.List;
27 import org.junit.Test;
28 import org.mockito.Mockito;
29 import org.opendaylight.controller.md.sal.binding.api.DataBroker;
30 import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
31 import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService;
32 import org.opendaylight.controller.sal.binding.api.RpcProviderRegistry;
33 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.GenerateSequenceInput;
34 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.GenerateSequenceInputBuilder;
35 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.SequenceGeneratorService;
36 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.dependency.info.DependencyInfo;
37 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.dependency.info.DependencyInfoBuilder;
38 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.dependency.info.dependency.info.Vnfcs;
39 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.dependency.info.dependency.info.VnfcsBuilder;
40 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.inventory.info.InventoryInfo;
41 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.inventory.info.InventoryInfoBuilder;
42 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.inventory.info.inventory.info.VnfInfo;
43 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.inventory.info.inventory.info.VnfInfoBuilder;
44 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.inventory.info.inventory.info.vnf.info.Vm;
45 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.inventory.info.inventory.info.vnf.info.VmBuilder;
46 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.inventory.info.inventory.info.vnf.info.vm.Vnfc;
47 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.inventory.info.inventory.info.vnf.info.vm.VnfcBuilder;
48 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.request.info.RequestInfo;
49 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.request.info.RequestInfo.Action;
50 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.request.info.RequestInfo.ActionLevel;
51 import org.opendaylight.yang.gen.v1.org.onap.appc.sequencegenerator.rev170706.request.info.RequestInfoBuilder;
52 import org.opendaylight.yangtools.yang.common.RpcResult;
55 public class SequenceGeneratorProviderTest {
57 private DataBroker dataBroker = Mockito.mock(DataBroker.class);
58 private RpcProviderRegistry rpcRegistry = Mockito.mock(RpcProviderRegistry.class);
59 private NotificationPublishService notificationService = Mockito.mock(NotificationPublishService.class);
62 public void testClose() throws Exception {
63 BindingAwareBroker.RpcRegistration<SequenceGeneratorService> registration =
64 (BindingAwareBroker.RpcRegistration<SequenceGeneratorService>) Mockito.mock(BindingAwareBroker.RpcRegistration.class);
65 Mockito.doReturn(registration).when(rpcRegistry).addRpcImplementation(Mockito.any(), Mockito.any());
66 SequenceGeneratorProvider provider = new SequenceGeneratorProvider(dataBroker, notificationService, rpcRegistry);
68 Mockito.verify(provider.rpcRegistration).close();
72 public void testGenerateSequence() throws Exception {
73 BindingAwareBroker.RpcRegistration<SequenceGeneratorService> registration =
74 (BindingAwareBroker.RpcRegistration<SequenceGeneratorService>) Mockito.mock(BindingAwareBroker.RpcRegistration.class);
75 Mockito.doReturn(registration).when(rpcRegistry).addRpcImplementation(Mockito.any(), Mockito.any());
76 SequenceGeneratorProvider provider = new SequenceGeneratorProvider(dataBroker, notificationService, rpcRegistry);
77 GenerateSequenceInputBuilder builder = new GenerateSequenceInputBuilder();
78 RequestInfoBuilder riBuilder = new RequestInfoBuilder();
79 riBuilder.setAction(Action.Start);
80 riBuilder.setActionLevel(ActionLevel.Vm);
81 riBuilder.setPayload("PAYLOAD");
82 RequestInfo info = riBuilder.build();
83 builder.setRequestInfo(info);
84 InventoryInfoBuilder iiBuilder = new InventoryInfoBuilder();
85 VnfInfoBuilder viBuilder = new VnfInfoBuilder();
86 viBuilder.setVnfId("VNF_ID");
87 List<Vm> vmList = new ArrayList<Vm>();
88 VmBuilder vmBuilder = new VmBuilder();
89 vmBuilder.setVmId("VM_ID");
90 vmBuilder.setVserverId("VSERVER_ID");
91 VnfcBuilder vnfcBuilder = new VnfcBuilder();
92 vnfcBuilder.setVnfcName("VNFC_NAME");
93 vnfcBuilder.setVnfcType("VNFC_TYPE");
94 Vnfc vnfc = vnfcBuilder.build();
95 vmBuilder.setVnfc(vnfc);
96 Vm vm = vmBuilder.build();
98 viBuilder.setVm(vmList);
99 VnfInfo vnfInfo = viBuilder.build();
100 iiBuilder.setVnfInfo(vnfInfo);
101 InventoryInfo iInfo = iiBuilder.build();
102 builder.setInventoryInfo(iInfo);
103 DependencyInfoBuilder dependencyBuilder = new DependencyInfoBuilder();
104 List<Vnfcs> vnfcsList = new ArrayList<>();
105 VnfcsBuilder vnfcsBuilder = new VnfcsBuilder();
106 vnfcsBuilder.setVnfcType("VNFC_TYPE");
107 List<String> parentList = new ArrayList<>();
108 parentList.add("VNFC_TYPE");
109 vnfcsBuilder.setParents(parentList);
110 Vnfcs vnfcs = vnfcsBuilder.build();
111 vnfcsList.add(vnfcs);
112 dependencyBuilder.setVnfcs(vnfcsList);
113 DependencyInfo dependencyInfo = dependencyBuilder.build();
114 builder.setDependencyInfo(dependencyInfo);
115 GenerateSequenceInput input = builder.build();
116 assertTrue(provider.generateSequence(input).get() instanceof RpcResult);