Enhanced List Level flow with backward support
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / bpmn / infrastructure / namingservice / tasks / NamingServiceCreateTasksTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
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
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
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.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.bpmn.infrastructure.namingservice.tasks;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.mockito.ArgumentMatchers.any;
25 import static org.mockito.ArgumentMatchers.isA;
26 import static org.mockito.Mockito.doReturn;
27 import static org.mockito.Mockito.doThrow;
28 import static org.mockito.Mockito.times;
29 import static org.mockito.Mockito.verify;
30 import static org.mockito.Mockito.when;
31 import java.util.Optional;
32 import org.junit.Before;
33 import org.junit.Test;
34 import org.mockito.ArgumentMatchers;
35 import org.mockito.InjectMocks;
36 import org.mockito.Mock;
37 import org.mockito.Mockito;
38 import org.onap.aai.domain.yang.Zone;
39 import org.onap.so.bpmn.BaseTaskTest;
40 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
41 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
42 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
43 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
44 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
45 import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
46 import org.onap.so.client.aai.AAICommonObjectMapperProvider;
47 import org.onap.so.client.aai.entities.AAIResultWrapper;
48 import org.onap.so.client.aai.entities.Relationships;
49 import org.onap.so.client.exception.BBObjectNotFoundException;
50
51 public class NamingServiceCreateTasksTest extends BaseTaskTest {
52     @InjectMocks
53     private NamingServiceCreateTasks namingServiceCreateTasks;
54
55     @Mock
56     private BBInputSetupUtils MOCK_bbInputSetupUtils;
57
58     private InstanceGroup instanceGroup;
59     private ServiceInstance serviceInstance;
60
61     @Before
62     public void before() throws BBObjectNotFoundException {
63         instanceGroup = setInstanceGroup();
64         when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.INSTANCE_GROUP_ID)))
65                 .thenReturn(instanceGroup);
66         serviceInstance = setServiceInstance();
67         when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.SERVICE_INSTANCE_ID)))
68                 .thenReturn(serviceInstance);
69     }
70
71     @Test
72     public void createInstanceGroupTest() throws Exception {
73         String policyInstanceName = "policyInstanceName";
74         String nfNamingCode = "nfNamingCode";
75         String generatedName = "generatedInstanceGroupName";
76         execution.setVariable(policyInstanceName, policyInstanceName);
77         execution.setVariable(nfNamingCode, nfNamingCode);
78         doReturn(generatedName).when(namingServiceResources).generateInstanceGroupName(instanceGroup,
79                 policyInstanceName, nfNamingCode);
80
81         namingServiceCreateTasks.createInstanceGroupName(execution);
82         verify(namingServiceResources, times(1)).generateInstanceGroupName(instanceGroup, policyInstanceName,
83                 nfNamingCode);
84         assertEquals(instanceGroup.getInstanceGroupName(), generatedName);
85     }
86
87     @Test
88     public void createInstanceGroupExceptionTest() throws Exception {
89         expectedException.expect(BBObjectNotFoundException.class);
90         lookupKeyMap.put(ResourceKey.INSTANCE_GROUP_ID, "notfound");
91         doThrow(BBObjectNotFoundException.class).when(extractPojosForBB).extractByKey(any(),
92                 ArgumentMatchers.eq(ResourceKey.INSTANCE_GROUP_ID));
93         String policyInstanceName = "policyInstanceName";
94         String nfNamingCode = "nfNamingCode";
95         execution.setVariable(policyInstanceName, policyInstanceName);
96         execution.setVariable(nfNamingCode, nfNamingCode);
97         doReturn("").when(namingServiceResources).generateInstanceGroupName(instanceGroup, policyInstanceName,
98                 nfNamingCode);
99         namingServiceCreateTasks.createInstanceGroupName(execution);
100         verify(namingServiceResources, times(1)).generateInstanceGroupName(instanceGroup, policyInstanceName,
101                 nfNamingCode);
102     }
103
104     @Test
105     public void createWanTransportServiceNameTest() throws Exception {
106         String generatedName = "generatedWanTransportServiceName";
107         doReturn(generatedName).when(namingServiceResources).generateServiceInstanceName(any());
108         NamingServiceCreateTasks spy = Mockito.spy(namingServiceCreateTasks);
109
110         spy.createWanTransportServiceName(execution);
111         verify(namingServiceResources, times(1)).generateServiceInstanceName(any());
112         assertEquals(generatedName, serviceInstance.getServiceInstanceName());
113     }
114
115     @Test
116     public void createVpnBondingServiceNameTest() throws Exception {
117         when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.NETWORK_ID)))
118                 .thenReturn(buildL3Network());
119         when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.VPN_ID)))
120                 .thenReturn(buildVpnBinding());
121         String generatedName = "generatedWanTransportServiceName";
122         doReturn(generatedName).when(namingServiceResources).generateServiceInstanceName(any());
123         namingServiceCreateTasks.createVpnBondingServiceName(execution);
124         verify(namingServiceResources, times(1)).generateServiceInstanceName(any());
125         assertEquals(generatedName, serviceInstance.getServiceInstanceName());
126     }
127 }