Dynamic Cloud Owner Support
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / client / sdnc / mapper / GeneralTopologyObjectMapperTest.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.client.sdnc.mapper;
22
23 import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs;
24 import static org.junit.Assert.assertEquals;
25 import static org.junit.Assert.assertNotNull;
26 import static org.junit.Assert.assertNull;
27 import static org.junit.Assert.assertThat;
28
29 import java.util.HashMap;
30
31 import org.junit.After;
32 import org.junit.Before;
33 import org.junit.Rule;
34 import org.junit.Test;
35 import org.junit.rules.ExpectedException;
36 import org.mockito.InjectMocks;
37 import org.onap.sdnc.northbound.client.model.GenericResourceApiConfigurationinformationConfigurationInformation;
38 import org.onap.sdnc.northbound.client.model.GenericResourceApiGcrequestinputGcRequestInput;
39 import org.onap.sdnc.northbound.client.model.GenericResourceApiNetworkinformationNetworkInformation;
40 import org.onap.sdnc.northbound.client.model.GenericResourceApiOnapmodelinformationOnapModelInformation;
41 import org.onap.sdnc.northbound.client.model.GenericResourceApiParam;
42 import org.onap.sdnc.northbound.client.model.GenericResourceApiParamParam;
43 import org.onap.sdnc.northbound.client.model.GenericResourceApiSdncrequestheaderSdncRequestHeader;
44 import org.onap.sdnc.northbound.client.model.GenericResourceApiServiceinformationServiceInformation;
45 import org.onap.sdnc.northbound.client.model.GenericResourceApiSvcActionEnumeration;
46 import org.onap.sdnc.northbound.client.model.GenericResourceApiVnfinformationVnfInformation;
47 import org.onap.so.bpmn.common.data.TestDataSetup;
48 import org.onap.so.bpmn.servicedecomposition.bbobjects.Configuration;
49 import org.onap.so.bpmn.servicedecomposition.bbobjects.Customer;
50 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
51 import org.onap.so.bpmn.servicedecomposition.bbobjects.L3Network;
52 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceInstance;
53 import org.onap.so.bpmn.servicedecomposition.bbobjects.ServiceSubscription;
54 import org.onap.so.bpmn.servicedecomposition.generalobjects.RequestContext;
55 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoConfiguration;
56 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoNetwork;
57 import org.onap.so.bpmn.servicedecomposition.modelinfo.ModelInfoServiceInstance;
58 import org.onap.so.client.sdnc.beans.SDNCSvcAction;
59
60
61 public class GeneralTopologyObjectMapperTest  extends TestDataSetup {
62         @InjectMocks
63         private GeneralTopologyObjectMapper genObjMapper = new GeneralTopologyObjectMapper();
64
65         @Rule
66         public ExpectedException expectedException = ExpectedException.none();
67
68         @Before
69         public void before() {
70
71         }
72
73         @After
74         public void after() {
75
76         }
77
78         @Test
79         public void testBuildServiceInformation() {
80                 // prepare and set service instance
81                 ServiceInstance serviceInstance = new ServiceInstance();
82                 serviceInstance.setServiceInstanceId("serviceInstanceId");
83                 ModelInfoServiceInstance modelInfoServiceInstance = new ModelInfoServiceInstance();
84                 modelInfoServiceInstance.setModelInvariantUuid("serviceModelInvariantUuid");
85                 modelInfoServiceInstance.setModelName("serviceModelName");
86                 modelInfoServiceInstance.setModelUuid("serviceModelUuid");
87                 modelInfoServiceInstance.setModelVersion("serviceModelVersion");
88
89                 serviceInstance.setModelInfoServiceInstance(modelInfoServiceInstance);
90                 // prepare Customer object
91                 Customer customer = new Customer();
92                 customer.setGlobalCustomerId("globalCustomerId");
93                 ServiceSubscription serviceSubscription = new ServiceSubscription();
94                 serviceSubscription.setServiceType("productFamilyId");
95                 customer.setServiceSubscription(serviceSubscription);
96                 // set Customer on service instance
97                 customer.getServiceSubscription().getServiceInstances().add(serviceInstance);
98                 //
99                 RequestContext requestContext = new RequestContext();
100                 HashMap<String, String> userParams = new HashMap<String, String>();
101                 userParams.put("key1", "value1");
102                 requestContext.setUserParams(userParams);
103                 requestContext.setProductFamilyId("productFamilyId");
104
105                 GenericResourceApiServiceinformationServiceInformation serviceInfo = genObjMapper.buildServiceInformation(serviceInstance, requestContext, customer, true);
106
107                 assertEquals("serviceModelInvariantUuid", serviceInfo.getOnapModelInformation().getModelInvariantUuid());
108                 assertEquals("serviceModelName", serviceInfo.getOnapModelInformation().getModelName());
109                 assertEquals("serviceModelUuid", serviceInfo.getOnapModelInformation().getModelUuid());
110                 assertEquals("serviceModelVersion", serviceInfo.getOnapModelInformation().getModelVersion());
111                 assertNull(serviceInfo.getOnapModelInformation().getModelCustomizationUuid());
112                 assertEquals("serviceInstanceId", serviceInfo.getServiceInstanceId());
113                 assertEquals("serviceInstanceId", serviceInfo.getServiceId());
114                 assertEquals("globalCustomerId", serviceInfo.getGlobalCustomerId());
115                 assertEquals("productFamilyId", serviceInfo.getSubscriptionServiceType());
116         }
117
118         @Test
119         public void buildSdncRequestHeaderActivateTest() {
120                 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.ACTIVATE, "sdncReqId");
121
122                 assertEquals(GenericResourceApiSvcActionEnumeration.ACTIVATE, requestHeader.getSvcAction());
123                 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
124         }
125
126         @Test
127         public void buildSdncRequestHeaderAssignTest() {
128                 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.ASSIGN, "sdncReqId");
129
130                 assertEquals(GenericResourceApiSvcActionEnumeration.ASSIGN, requestHeader.getSvcAction());
131                 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
132         }
133
134         @Test
135         public void buildSdncRequestHeaderDeactivateTest() {
136                 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.DEACTIVATE, "sdncReqId");
137
138                 assertEquals(GenericResourceApiSvcActionEnumeration.DEACTIVATE, requestHeader.getSvcAction());
139                 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
140         }
141
142         @Test
143         public void buildSdncRequestHeaderDeleteTest() {
144                 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.DELETE, "sdncReqId");
145
146                 assertEquals(GenericResourceApiSvcActionEnumeration.DELETE, requestHeader.getSvcAction());
147                 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
148         }
149
150         @Test
151         public void buildSdncRequestHeaderChangeAssignTest() {
152                 GenericResourceApiSdncrequestheaderSdncRequestHeader requestHeader = genObjMapper.buildSdncRequestHeader(SDNCSvcAction.CHANGE_ASSIGN, "sdncReqId");
153
154                 assertEquals(GenericResourceApiSvcActionEnumeration.CHANGEASSIGN, requestHeader.getSvcAction());
155                 assertEquals("sdncReqId", requestHeader.getSvcRequestId());
156         }
157
158         @Test
159         public void buildConfigurationInformationTest_excludesOnapModelInfo() {
160                 Configuration configuration = new Configuration();
161                 configuration.setConfigurationId("testConfigurationId");
162                 configuration.setConfigurationType("VNR");
163                 configuration.setConfigurationName("VNRCONF");
164                 GenericResourceApiConfigurationinformationConfigurationInformation configurationInformation =genObjMapper.buildConfigurationInformation(configuration,false);
165                 assertEquals(configuration.getConfigurationId(),configurationInformation.getConfigurationId());
166                 assertEquals(configuration.getConfigurationType(),configurationInformation.getConfigurationType());
167                 assertEquals(configuration.getConfigurationName(),configurationInformation.getConfigurationName());
168                 assertNull(configurationInformation.getOnapModelInformation());
169         }
170
171         @Test
172         public void buildConfigurationInformationTest_includesOnapModelInfo() {
173                 Configuration configuration = new Configuration();
174                 configuration.setConfigurationId("testConfigurationId");
175                 configuration.setConfigurationType("VNR");
176                 configuration.setConfigurationName("VNRCONF");
177                 ModelInfoConfiguration modelInfoConfiguration = new ModelInfoConfiguration();
178                 modelInfoConfiguration.setModelVersionId("modelVersionId");
179                 modelInfoConfiguration.setModelInvariantId("modelInvariantId");
180                 modelInfoConfiguration.setModelCustomizationId("modelCustomizationId");
181                 configuration.setModelInfoConfiguration(modelInfoConfiguration);
182
183                 GenericResourceApiConfigurationinformationConfigurationInformation configurationInformation = genObjMapper.buildConfigurationInformation(configuration,true);
184
185                 assertEquals(configuration.getConfigurationId(),configurationInformation.getConfigurationId());
186                 assertEquals(configuration.getConfigurationType(),configurationInformation.getConfigurationType());
187                 assertEquals(configuration.getConfigurationName(),configurationInformation.getConfigurationName());
188                 assertNotNull(configurationInformation.getOnapModelInformation());
189                 assertEquals(configuration.getModelInfoConfiguration().getModelVersionId(),configurationInformation.getOnapModelInformation().getModelUuid());
190                 assertEquals(configuration.getModelInfoConfiguration().getModelInvariantId(),configurationInformation.getOnapModelInformation().getModelInvariantUuid());
191                 assertEquals(configuration.getModelInfoConfiguration().getModelCustomizationId(),configurationInformation.getOnapModelInformation().getModelCustomizationUuid());
192
193         }
194
195         @Test
196         public void buildGcRequestInformationTest() {
197                 GenericVnf vnf = new GenericVnf();
198                 vnf.setVnfId("TestVnfId");
199                 GenericResourceApiGcrequestinputGcRequestInput gcRequestInput = genObjMapper.buildGcRequestInformation(vnf,null);
200                 assertNotNull(gcRequestInput);
201                 assertEquals(vnf.getVnfId(),gcRequestInput.getVnfId());
202                 assertNull(gcRequestInput.getInputParameters());
203         }
204
205         @Test
206         public void buildGcRequestInformationTest_withInputParams() {
207                 GenericVnf vnf = new GenericVnf();
208                 vnf.setVnfId("TestVnfId");
209                 GenericResourceApiParam  genericResourceApiParam =new GenericResourceApiParam();
210                 genericResourceApiParam.addParamItem(new GenericResourceApiParamParam());
211                 GenericResourceApiGcrequestinputGcRequestInput gcRequestInput = genObjMapper.buildGcRequestInformation(vnf,genericResourceApiParam);
212                 assertNotNull(gcRequestInput);
213                 assertEquals(vnf.getVnfId(),gcRequestInput.getVnfId());
214                 assertNotNull(gcRequestInput.getInputParameters());
215         }
216         
217         @Test
218         public void buildVnfInformationTest_withNullData() {
219                 GenericVnf vnf = new GenericVnf();
220                 vnf.setVnfId("TestVnfId");
221                 ServiceInstance serviceInstance = new ServiceInstance();
222                 serviceInstance.setServiceInstanceId("serviceInstanceId");
223                 GenericResourceApiVnfinformationVnfInformation gcRequestInput = genObjMapper.buildVnfInformation(vnf,serviceInstance,true);
224                 assertNotNull(gcRequestInput);
225                 assertNull(vnf.getModelInfoGenericVnf());
226                 assertNull(gcRequestInput.getOnapModelInformation());
227                 assertEquals(vnf.getVnfId(),gcRequestInput.getVnfId());
228                 assertNotNull(gcRequestInput.getVnfId());
229         }
230         
231         @Test
232         public void buildNetworkInformationTest() {
233                 
234                 L3Network network = new L3Network();
235                 ModelInfoNetwork modelInfoNetwork = new ModelInfoNetwork();
236                 modelInfoNetwork.setModelInvariantUUID("my-uuid");
237                 modelInfoNetwork.setModelName("my-model-name");
238                 modelInfoNetwork.setModelVersion("my-model-version");
239                 modelInfoNetwork.setModelUUID("my-model-uuid");
240                 modelInfoNetwork.setModelCustomizationUUID("my-customization-uuid");
241                 network.setModelInfoNetwork(modelInfoNetwork);
242                 network.setNetworkId("my-network-id");
243                 network.setNetworkType("my-network-type");
244                 network.setNetworkTechnology("my-network-technology");
245                 
246                 GenericResourceApiNetworkinformationNetworkInformation networkInformation = new GenericResourceApiNetworkinformationNetworkInformation();
247                 GenericResourceApiOnapmodelinformationOnapModelInformation onapModelInformation = new GenericResourceApiOnapmodelinformationOnapModelInformation();
248                 networkInformation.setNetworkId("my-network-id");
249                 networkInformation.setNetworkType("my-network-type");
250                 networkInformation.networkTechnology("my-network-technology");
251                 networkInformation.setFromPreload(null);
252                 onapModelInformation.setModelInvariantUuid("my-uuid");
253                 onapModelInformation.setModelName("my-model-name");
254                 onapModelInformation.setModelVersion("my-model-version");
255                 onapModelInformation.setModelUuid("my-model-uuid");
256                 onapModelInformation.setModelCustomizationUuid("my-customization-uuid");
257                 networkInformation.setOnapModelInformation(onapModelInformation);
258                 
259                 assertThat(networkInformation, sameBeanAs(genObjMapper.buildNetworkInformation(network)));
260                 
261         }
262         
263         @Test
264         public void buildNetworkInformationNoModelTest() {
265                 
266                 L3Network network = new L3Network();
267                 network.setNetworkId("my-network-id");
268                 network.setNetworkType("my-network-type");
269                 network.setNetworkTechnology("my-network-technology");
270                 
271                 GenericResourceApiNetworkinformationNetworkInformation networkInformation = new GenericResourceApiNetworkinformationNetworkInformation();
272                 networkInformation.setNetworkId("my-network-id");
273                 networkInformation.setNetworkType("my-network-type");
274                 networkInformation.networkTechnology("my-network-technology");
275                 networkInformation.setFromPreload(null);
276                 
277                 
278                 assertThat(networkInformation, sameBeanAs(genObjMapper.buildNetworkInformation(network)));
279                 
280         }
281 }