Fight against the encoding in openstack
[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.junit.Assert.assertTrue;
25 import static org.mockito.ArgumentMatchers.any;
26 import static org.mockito.ArgumentMatchers.isA;
27 import static org.mockito.Mockito.doReturn;
28 import static org.mockito.Mockito.doThrow;
29 import static org.mockito.Mockito.times;
30 import static org.mockito.Mockito.verify;
31 import static org.mockito.Mockito.when;
32 import java.util.Optional;
33 import org.junit.Before;
34 import org.junit.Test;
35 import org.mockito.ArgumentCaptor;
36 import org.mockito.ArgumentMatchers;
37 import org.mockito.InjectMocks;
38 import org.mockito.Mock;
39 import org.mockito.Mockito;
40 import org.onap.aai.domain.yang.Zone;
41 import org.onap.so.bpmn.BaseTaskTest;
42 import org.onap.so.bpmn.servicedecomposition.bbobjects.CloudRegion;
43 import org.onap.so.bpmn.servicedecomposition.bbobjects.InstanceGroup;
44 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
45 import org.onap.so.bpmn.servicedecomposition.entities.GeneralBuildingBlock;
46 import org.onap.so.bpmn.servicedecomposition.entities.ResourceKey;
47 import org.onap.so.bpmn.servicedecomposition.tasks.BBInputSetupUtils;
48 import org.onap.so.client.aai.AAICommonObjectMapperProvider;
49 import org.onap.so.client.aai.entities.AAIResultWrapper;
50 import org.onap.so.client.aai.entities.Relationships;
51 import org.onap.so.client.exception.BBObjectNotFoundException;
52 import org.onap.so.client.namingservice.NamingRequestObject;
53 import org.onap.so.client.namingservice.NamingServiceConstants;
54
55 public class NamingServiceCreateTasksTest extends BaseTaskTest {
56     @InjectMocks
57     private NamingServiceCreateTasks namingServiceCreateTasks;
58
59     @Mock
60     private BBInputSetupUtils MOCK_bbInputSetupUtils;
61
62     private InstanceGroup instanceGroup;
63     private ServiceInstance serviceInstance;
64
65     @Before
66     public void before() throws BBObjectNotFoundException {
67         instanceGroup = setInstanceGroup();
68         when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.INSTANCE_GROUP_ID)))
69                 .thenReturn(instanceGroup);
70         serviceInstance = setServiceInstance();
71         when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.SERVICE_INSTANCE_ID)))
72                 .thenReturn(serviceInstance);
73     }
74
75     @Test
76     public void createInstanceGroupTest() throws Exception {
77         String policyInstanceName = "policyInstanceName";
78         String nfNamingCode = "nfNamingCode";
79         String generatedName = "generatedInstanceGroupName";
80         execution.setVariable(policyInstanceName, policyInstanceName);
81         execution.setVariable(nfNamingCode, nfNamingCode);
82         doReturn(generatedName).when(namingServiceResources).generateInstanceGroupName(instanceGroup,
83                 policyInstanceName, nfNamingCode);
84
85         namingServiceCreateTasks.createInstanceGroupName(execution);
86         verify(namingServiceResources, times(1)).generateInstanceGroupName(instanceGroup, policyInstanceName,
87                 nfNamingCode);
88         assertEquals(instanceGroup.getInstanceGroupName(), generatedName);
89     }
90
91     @Test
92     public void createInstanceGroupExceptionTest() throws Exception {
93         expectedException.expect(BBObjectNotFoundException.class);
94         lookupKeyMap.put(ResourceKey.INSTANCE_GROUP_ID, "notfound");
95         doThrow(BBObjectNotFoundException.class).when(extractPojosForBB).extractByKey(any(),
96                 ArgumentMatchers.eq(ResourceKey.INSTANCE_GROUP_ID));
97         String policyInstanceName = "policyInstanceName";
98         String nfNamingCode = "nfNamingCode";
99         execution.setVariable(policyInstanceName, policyInstanceName);
100         execution.setVariable(nfNamingCode, nfNamingCode);
101         doReturn("").when(namingServiceResources).generateInstanceGroupName(instanceGroup, policyInstanceName,
102                 nfNamingCode);
103         namingServiceCreateTasks.createInstanceGroupName(execution);
104         verify(namingServiceResources, times(1)).generateInstanceGroupName(instanceGroup, policyInstanceName,
105                 nfNamingCode);
106     }
107
108     @Test
109     public void createWanTransportServiceNameTest() throws Exception {
110         String generatedName = "generatedWanTransportServiceName";
111         doReturn(generatedName).when(namingServiceResources).generateServiceInstanceName(any());
112         NamingServiceCreateTasks spy = Mockito.spy(namingServiceCreateTasks);
113         ArgumentCaptor<NamingRequestObject> captor = ArgumentCaptor.forClass(NamingRequestObject.class);
114
115         spy.createWanTransportServiceName(execution);
116         verify(namingServiceResources, times(1)).generateServiceInstanceName(captor.capture());
117         assertTrue(captor.getAllValues().get(0).getExternalKeyValue().startsWith("testServiceInstanceId"));
118         assertEquals(captor.getAllValues().get(0).getNamingTypeValue(), NamingServiceConstants.NAMING_TYPE_SERVICE);
119         assertEquals(captor.getAllValues().get(0).getResourceNameValue(),
120                 NamingServiceConstants.RESOURCE_NAME_SERVICE_INSTANCE_NAME);
121         assertEquals(captor.getAllValues().get(0).getPolicyInstanceNameValue(), null);
122         assertTrue(captor.getAllValues().get(0).getServiceModelNameValue().startsWith("testModelName"));
123         assertTrue(captor.getAllValues().get(0).getModelVersionValue().startsWith("testModelVersion"));
124         assertEquals(generatedName, serviceInstance.getServiceInstanceName());
125     }
126
127     @Test
128     public void createVpnBondingServiceNameTest() throws Exception {
129         when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.NETWORK_ID)))
130                 .thenReturn(buildL3Network());
131         when(extractPojosForBB.extractByKey(any(), ArgumentMatchers.eq(ResourceKey.VPN_ID)))
132                 .thenReturn(buildVpnBinding());
133         ArgumentCaptor<NamingRequestObject> captor = ArgumentCaptor.forClass(NamingRequestObject.class);
134         String generatedName = "generatedWanTransportServiceName";
135         doReturn(generatedName).when(namingServiceResources).generateServiceInstanceName(any());
136         namingServiceCreateTasks.createVpnBondingServiceName(execution);
137         verify(namingServiceResources, times(1)).generateServiceInstanceName(captor.capture());
138         assertTrue(captor.getAllValues().get(0).getExternalKeyValue().startsWith("testServiceInstanceId"));
139         assertEquals(captor.getAllValues().get(0).getPolicyInstanceNameValue(), null);
140         assertEquals(captor.getAllValues().get(0).getNamingTypeValue(), NamingServiceConstants.NAMING_TYPE_SERVICE);
141         assertTrue(captor.getAllValues().get(0).getServiceModelNameValue().startsWith("testModelName"));
142         assertTrue(captor.getAllValues().get(0).getModelVersionValue().startsWith("testModelVersion"));
143         assertTrue(captor.getAllValues().get(0).getNetworkNameValue().startsWith("testNetworkName"));
144         assertTrue(captor.getAllValues().get(0).getVpnNameValue().startsWith("testVpnName"));
145         assertEquals(captor.getAllValues().get(0).getResourceNameValue(),
146                 NamingServiceConstants.RESOURCE_NAME_SERVICE_INSTANCE_NAME);
147         assertEquals(generatedName, serviceInstance.getServiceInstanceName());
148     }
149 }