Fix typo
[so.git] / bpmn / MSOCommonBPMN / src / test / java / org / onap / so / bpmn / common / resource / ResourceRequestBuilderTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2018 Huawei 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 package org.onap.so.bpmn.common.resource;
21
22 import com.github.tomakehurst.wiremock.client.WireMock;
23 import com.github.tomakehurst.wiremock.junit.WireMockRule;
24 import org.junit.Rule;
25 import org.junit.Test;
26 import org.mockito.Mock;
27 import org.onap.so.bpmn.core.UrnPropertiesReader;
28 import org.springframework.core.env.Environment;
29
30 import java.util.HashMap;
31 import java.util.List;
32 import java.util.Map;
33
34 import static org.junit.Assert.assertEquals;
35 import static org.mockito.Matchers.eq;
36 import static org.mockito.Mockito.mock;
37 import static org.mockito.Mockito.when;
38
39 public class ResourceRequestBuilderTest {
40
41     @Rule
42     public WireMockRule wireMockRule = new WireMockRule();
43
44     @Mock
45     UrnPropertiesReader urnPropertiesReader;
46
47     @Test
48     public void getResourceInputTest() throws Exception {
49
50         UrnPropertiesReader reader = new UrnPropertiesReader();
51         Environment env = mock(Environment.class);
52
53         when(env.getProperty(eq("mso.catalog.db.endpoint"))).thenReturn("http://localhost:8080/ecomp/mso/catalog");
54         reader.setEnvironment(env);
55
56         WireMock.stubFor(WireMock.get(WireMock.urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
57                 .willReturn(WireMock.ok("{ \"serviceResources\"    : {\n" +
58                         "\t\"modelInfo\"       : {\n" +
59                         "\t\t\"modelName\"          : \"demoVFWCL\",\n" +
60                         "\t\t\"modelUuid\"          : \"c3954379-4efe-431c-8258-f84905b158e5\",\n" +
61                         "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n" +
62                         "\t\t\"modelVersion\"       : \"1.0\"\n" +
63                         "\t},\n" +
64                         "\t\"serviceType\"        : \"\",\n" +
65                         "\t\"serviceRole\"        : \"\",\n" +
66                         "\t\"environmentContext\" : null,\n" +
67                         "\t\"resourceOrder\"       : \"res1,res2\",\n" +
68                         "\t\"workloadContext\"    : \"Production\",\n" +
69                         "\t\"serviceVnfs\": [\n" +
70                         "\t\n" +
71                         "\t\t{ \"modelInfo\"                    : {\n" +
72                         "\t\t\t\"modelName\"              : \"15968a6e-2fe5-41bf-a481\",\n" +
73                         "\t\t\t\"modelUuid\"              : \"808abda3-2023-4105-92d2-e62644b61d53\",\n" +
74                         "\t\t\t\"modelInvariantUuid\"     : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n" +
75                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
76                         "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n" +
77                         "\t\t\t\"modelInstanceName\"      : \"15968a6e-2fe5-41bf-a481 0\"\n" +
78                         "\t\t\t},\n" +
79                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n" +
80                         "\t\t\"nfFunction\"           \t: null,\n" +
81                         "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\"," +
82                         "\t\t\"nfType\"              \t\t: null,\n" +
83                         "\t\t\"nfRole\"              \t\t: null,\n" +
84                         "\t\t\"nfNamingCode\"         \t: null,\n" +
85                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
86                         "\t\t\t\"vfModules\": [\n" +
87                         "\t\t\t\t{\n" +
88                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
89                         "\t\t\t\t\t\t\"modelName\"              : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n" +
90                         "\t\t\t\t\t\t\"modelUuid\"              : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n" +
91                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n" +
92                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
93                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n" +
94                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
95                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vfw\",\n" +
96                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
97                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
98                         "\t\t\t\t}\n" +
99                         "\t\t\t]\n" +
100                         "\t\t},\n" +
101                         "\t\n" +
102                         "\t\t{ \"modelInfo\"                    : {\n" +
103                         "\t\t\t\"modelName\"              : \"f971106a-248f-4202-9d1f\",\n" +
104                         "\t\t\t\"modelUuid\"              : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n" +
105                         "\t\t\t\"modelInvariantUuid\"     : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n" +
106                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
107                         "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n" +
108                         "\t\t\t\"modelInstanceName\"      : \"f971106a-248f-4202-9d1f 0\"\n" +
109                         "\t\t\t},\n" +
110                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n" +
111                         "\t\t\"nfFunction\"           \t: null,\n" +
112                         "\t\t\"nfType\"              \t\t: null,\n" +
113                         "\t\t\"nfRole\"              \t\t: null,\n" +
114                         "\"resourceInput\":\"{\\\"a\\\":\\\"key|default_value\\\"}\"," +
115                         "\t\t\"nfNamingCode\"         \t: null,\n" +
116                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
117                         "\t\t\t\"vfModules\": [\n" +
118                         "\t\t\t\t{\n" +
119                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
120                         "\t\t\t\t\t\t\"modelName\"              : \"F971106a248f42029d1f..base_vpkg..module-0\",\n" +
121                         "\t\t\t\t\t\t\"modelUuid\"              : \"47d5273a-7456-4786-9035-b3911944cc35\",\n" +
122                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n" +
123                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
124                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n" +
125                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
126                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vpkg\",\n" +
127                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
128                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
129                         "\t\t\t\t}\n" +
130                         "\t\t\t]\n" +
131                         "\t\t}\n" +
132                         "\t],\n" +
133                         "\t\"serviceNetworks\": [],\n" +
134                         "\t\"serviceAllottedResources\": []\n" +
135                         "\t}}")));
136
137 //        when(UrnPropertiesReader.getVariable(anyString())).thenReturn("http://localhost:8080");
138         HashMap serviceInput = new HashMap();
139         serviceInput.put("key", "value");
140         Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest("c3954379-4efe-431c-8258-f84905b158e5",
141                 "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
142         assertEquals(stringObjectMap.get("a"), "value");
143     }
144
145     @Test
146     public void getResourceInputDefaultValueTest() throws Exception {
147
148         UrnPropertiesReader reader = new UrnPropertiesReader();
149         Environment env = mock(Environment.class);
150
151         when(env.getProperty(eq("mso.catalog.db.endpoint"))).thenReturn("http://localhost:8080/ecomp/mso/catalog");
152         reader.setEnvironment(env);
153
154         WireMock.stubFor(WireMock.get(WireMock.urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
155                 .willReturn(WireMock.ok("{ \"serviceResources\"    : {\n" +
156                         "\t\"modelInfo\"       : {\n" +
157                         "\t\t\"modelName\"          : \"demoVFWCL\",\n" +
158                         "\t\t\"modelUuid\"          : \"c3954379-4efe-431c-8258-f84905b158e5\",\n" +
159                         "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n" +
160                         "\t\t\"modelVersion\"       : \"1.0\"\n" +
161                         "\t},\n" +
162                         "\t\"serviceType\"        : \"\",\n" +
163                         "\t\"serviceRole\"        : \"\",\n" +
164                         "\t\"environmentContext\" : null,\n" +
165                         "\t\"workloadContext\"    : \"Production\",\n" +
166                         "\t\"serviceVnfs\": [\n" +
167                         "\t\n" +
168                         "\t\t{ \"modelInfo\"                    : {\n" +
169                         "\t\t\t\"modelName\"              : \"15968a6e-2fe5-41bf-a481\",\n" +
170                         "\t\t\t\"modelUuid\"              : \"808abda3-2023-4105-92d2-e62644b61d53\",\n" +
171                         "\t\t\t\"modelInvariantUuid\"     : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n" +
172                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
173                         "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n" +
174                         "\t\t\t\"modelInstanceName\"      : \"15968a6e-2fe5-41bf-a481 0\"\n" +
175                         "\t\t\t},\n" +
176                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n" +
177                         "\t\t\"nfFunction\"           \t: null,\n" +
178                         "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\"," +
179                         "\t\t\"nfType\"              \t\t: null,\n" +
180                         "\t\t\"nfRole\"              \t\t: null,\n" +
181                         "\t\t\"nfNamingCode\"         \t: null,\n" +
182                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
183                         "\t\t\t\"vfModules\": [\n" +
184                         "\t\t\t\t{\n" +
185                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
186                         "\t\t\t\t\t\t\"modelName\"              : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n" +
187                         "\t\t\t\t\t\t\"modelUuid\"              : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n" +
188                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n" +
189                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
190                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n" +
191                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
192                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vfw\",\n" +
193                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
194                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
195                         "\t\t\t\t}\n" +
196                         "\t\t\t]\n" +
197                         "\t\t},\n" +
198                         "\t\n" +
199                         "\t\t{ \"modelInfo\"                    : {\n" +
200                         "\t\t\t\"modelName\"              : \"f971106a-248f-4202-9d1f\",\n" +
201                         "\t\t\t\"modelUuid\"              : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n" +
202                         "\t\t\t\"modelInvariantUuid\"     : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n" +
203                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
204                         "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n" +
205                         "\t\t\t\"modelInstanceName\"      : \"f971106a-248f-4202-9d1f 0\"\n" +
206                         "\t\t\t},\n" +
207                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n" +
208                         "\t\t\"nfFunction\"           \t: null,\n" +
209                         "\t\t\"nfType\"              \t\t: null,\n" +
210                         "\t\t\"nfRole\"              \t\t: null,\n" +
211                         "\"resourceInput\":\"{\\\"a\\\":\\\"key|default_value\\\"}\"," +
212                         "\t\t\"nfNamingCode\"         \t: null,\n" +
213                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
214                         "\t\t\t\"vfModules\": [\n" +
215                         "\t\t\t\t{\n" +
216                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
217                         "\t\t\t\t\t\t\"modelName\"              : \"F971106a248f42029d1f..base_vpkg..module-0\",\n" +
218                         "\t\t\t\t\t\t\"modelUuid\"              : \"47d5273a-7456-4786-9035-b3911944cc35\",\n" +
219                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n" +
220                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
221                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n" +
222                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
223                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vpkg\",\n" +
224                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
225                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
226                         "\t\t\t\t}\n" +
227                         "\t\t\t]\n" +
228                         "\t\t}\n" +
229                         "\t],\n" +
230                         "\t\"serviceNetworks\": [],\n" +
231                         "\t\"serviceAllottedResources\": []\n" +
232                         "\t}}")));
233
234 //        when(UrnPropertiesReader.getVariable(anyString())).thenReturn("http://localhost:8080");
235         HashMap serviceInput = new HashMap();
236         serviceInput.put("key1", "value");
237         Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest("c3954379-4efe-431c-8258-f84905b158e5",
238                 "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
239         assertEquals(stringObjectMap.get("a"), "default_value");
240     }
241
242     @Test
243     public void getResourceInputValueNoDefaultTest() throws Exception {
244
245         UrnPropertiesReader reader = new UrnPropertiesReader();
246         Environment env = mock(Environment.class);
247
248         when(env.getProperty(eq("mso.catalog.db.endpoint"))).thenReturn("http://localhost:8080/ecomp/mso/catalog");
249         reader.setEnvironment(env);
250
251         WireMock.stubFor(WireMock.get(WireMock.urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
252                 .willReturn(WireMock.ok("{ \"serviceResources\"    : {\n" +
253                         "\t\"modelInfo\"       : {\n" +
254                         "\t\t\"modelName\"          : \"demoVFWCL\",\n" +
255                         "\t\t\"modelUuid\"          : \"c3954379-4efe-431c-8258-f84905b158e5\",\n" +
256                         "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n" +
257                         "\t\t\"modelVersion\"       : \"1.0\"\n" +
258                         "\t},\n" +
259                         "\t\"serviceType\"        : \"\",\n" +
260                         "\t\"serviceRole\"        : \"\",\n" +
261                         "\t\"environmentContext\" : null,\n" +
262                         "\t\"workloadContext\"    : \"Production\",\n" +
263                         "\t\"serviceVnfs\": [\n" +
264                         "\t\n" +
265                         "\t\t{ \"modelInfo\"                    : {\n" +
266                         "\t\t\t\"modelName\"              : \"15968a6e-2fe5-41bf-a481\",\n" +
267                         "\t\t\t\"modelUuid\"              : \"808abda3-2023-4105-92d2-e62644b61d53\",\n" +
268                         "\t\t\t\"modelInvariantUuid\"     : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n" +
269                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
270                         "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n" +
271                         "\t\t\t\"modelInstanceName\"      : \"15968a6e-2fe5-41bf-a481 0\"\n" +
272                         "\t\t\t},\n" +
273                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n" +
274                         "\t\t\"nfFunction\"           \t: null,\n" +
275                         "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\"," +
276                         "\t\t\"nfType\"              \t\t: null,\n" +
277                         "\t\t\"nfRole\"              \t\t: null,\n" +
278                         "\t\t\"nfNamingCode\"         \t: null,\n" +
279                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
280                         "\t\t\t\"vfModules\": [\n" +
281                         "\t\t\t\t{\n" +
282                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
283                         "\t\t\t\t\t\t\"modelName\"              : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n" +
284                         "\t\t\t\t\t\t\"modelUuid\"              : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n" +
285                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n" +
286                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
287                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n" +
288                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
289                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vfw\",\n" +
290                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
291                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
292                         "\t\t\t\t}\n" +
293                         "\t\t\t]\n" +
294                         "\t\t},\n" +
295                         "\t\n" +
296                         "\t\t{ \"modelInfo\"                    : {\n" +
297                         "\t\t\t\"modelName\"              : \"f971106a-248f-4202-9d1f\",\n" +
298                         "\t\t\t\"modelUuid\"              : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n" +
299                         "\t\t\t\"modelInvariantUuid\"     : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n" +
300                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
301                         "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n" +
302                         "\t\t\t\"modelInstanceName\"      : \"f971106a-248f-4202-9d1f 0\"\n" +
303                         "\t\t\t},\n" +
304                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n" +
305                         "\t\t\"nfFunction\"           \t: null,\n" +
306                         "\t\t\"nfType\"              \t\t: null,\n" +
307                         "\t\t\"nfRole\"              \t\t: null,\n" +
308                         "\"resourceInput\":\"{\\\"a\\\":\\\"value\\\"}\"," +
309                         "\t\t\"nfNamingCode\"         \t: null,\n" +
310                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
311                         "\t\t\t\"vfModules\": [\n" +
312                         "\t\t\t\t{\n" +
313                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
314                         "\t\t\t\t\t\t\"modelName\"              : \"F971106a248f42029d1f..base_vpkg..module-0\",\n" +
315                         "\t\t\t\t\t\t\"modelUuid\"              : \"47d5273a-7456-4786-9035-b3911944cc35\",\n" +
316                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n" +
317                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
318                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n" +
319                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
320                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vpkg\",\n" +
321                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
322                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
323                         "\t\t\t\t}\n" +
324                         "\t\t\t]\n" +
325                         "\t\t}\n" +
326                         "\t],\n" +
327                         "\t\"serviceNetworks\": [],\n" +
328                         "\t\"serviceAllottedResources\": []\n" +
329                         "\t}}")));
330
331 //        when(UrnPropertiesReader.getVariable(anyString())).thenReturn("http://localhost:8080");
332         HashMap serviceInput = new HashMap();
333         serviceInput.put("key1", "value");
334         Map<String, Object> stringObjectMap = ResourceRequestBuilder.buildResouceRequest("c3954379-4efe-431c-8258-f84905b158e5",
335                 "e776449e-2b10-45c5-9217-2775c88ca1a0", serviceInput);
336         assertEquals(stringObjectMap.get("a"), "value");
337     }
338
339     @Test
340     public void getResourceSequenceTest() throws Exception {
341
342         UrnPropertiesReader reader = new UrnPropertiesReader();
343         Environment env = mock(Environment.class);
344
345         when(env.getProperty(eq("mso.catalog.db.endpoint"))).thenReturn("http://localhost:8080/ecomp/mso/catalog");
346         reader.setEnvironment(env);
347
348         WireMock.stubFor(WireMock.get(WireMock.urlEqualTo("/ecomp/mso/catalog/v2/serviceResources?serviceModelUuid=c3954379-4efe-431c-8258-f84905b158e5"))
349                 .willReturn(WireMock.ok("{ \"serviceResources\"    : {\n" +
350                         "\t\"modelInfo\"       : {\n" +
351                         "\t\t\"modelName\"          : \"demoVFWCL\",\n" +
352                         "\t\t\"modelUuid\"          : \"c3954379-4efe-431c-8258-f84905b158e5\",\n" +
353                         "\t\t\"modelInvariantUuid\" : \"0cbff61e-3b0a-4eed-97ce-b1b4faa03493\",\n" +
354                         "\t\t\"modelVersion\"       : \"1.0\"\n" +
355                         "\t},\n" +
356                         "\t\"serviceType\"        : \"\",\n" +
357                         "\t\"serviceRole\"        : \"\",\n" +
358                         "\t\"environmentContext\" : null,\n" +
359                         "\t\"resourceOrder\"       : \"res1,res2\",\n" +
360                         "\t\"workloadContext\"    : \"Production\",\n" +
361                         "\t\"serviceVnfs\": [\n" +
362                         "\t\n" +
363                         "\t\t{ \"modelInfo\"                    : {\n" +
364                         "\t\t\t\"modelName\"              : \"15968a6e-2fe5-41bf-a481\",\n" +
365                         "\t\t\t\"modelUuid\"              : \"808abda3-2023-4105-92d2-e62644b61d53\",\n" +
366                         "\t\t\t\"modelInvariantUuid\"     : \"6e4ffc7c-497e-4a77-970d-af966e642d31\",\n" +
367                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
368                         "\t\t\t\"modelCustomizationUuid\" : \"a00404d5-d7eb-4c46-b6b6-9cf2d087e545\",\n" +
369                         "\t\t\t\"modelInstanceName\"      : \"15968a6e-2fe5-41bf-a481 0\"\n" +
370                         "\t\t\t},\n" +
371                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.15968a6e2fe541bfA481\",\n" +
372                         "\t\t\"nfFunction\"           \t: null,\n" +
373                         "\"resourceInput\":\"{\\\"a\\\":\\\"b\\\"}\"," +
374                         "\t\t\"nfType\"              \t\t: null,\n" +
375                         "\t\t\"nfRole\"              \t\t: null,\n" +
376                         "\t\t\"nfNamingCode\"         \t: null,\n" +
377                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
378                         "\t\t\t\"vfModules\": [\n" +
379                         "\t\t\t\t{\n" +
380                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
381                         "\t\t\t\t\t\t\"modelName\"              : \"15968a6e2fe541bfA481..base_vfw..module-0\",\n" +
382                         "\t\t\t\t\t\t\"modelUuid\"              : \"ec7fadde-1e5a-42f7-8255-cb19e475ff45\",\n" +
383                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"61ab8b64-a014-4cf3-8a5a-b5ef388f8819\",\n" +
384                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
385                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"123aff6b-854f-4026-ae1e-cc74a3924576\"\n" +
386                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
387                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vfw\",\n" +
388                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
389                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
390                         "\t\t\t\t}\n" +
391                         "\t\t\t]\n" +
392                         "\t\t},\n" +
393                         "\t\n" +
394                         "\t\t{ \"modelInfo\"                    : {\n" +
395                         "\t\t\t\"modelName\"              : \"f971106a-248f-4202-9d1f\",\n" +
396                         "\t\t\t\"modelUuid\"              : \"4fbc08a4-35ed-4a59-9e47-79975e4add7e\",\n" +
397                         "\t\t\t\"modelInvariantUuid\"     : \"c669799e-adf1-46ae-8c70-48b326fe89f3\",\n" +
398                         "\t\t\t\"modelVersion\"           : \"1.0\",\n" +
399                         "\t\t\t\"modelCustomizationUuid\" : \"e776449e-2b10-45c5-9217-2775c88ca1a0\",\n" +
400                         "\t\t\t\"modelInstanceName\"      : \"f971106a-248f-4202-9d1f 0\"\n" +
401                         "\t\t\t},\n" +
402                         "\t\t\"toscaNodeType\"            : \"org.openecomp.resource.vf.F971106a248f42029d1f\",\n" +
403                         "\t\t\"nfFunction\"           \t: null,\n" +
404                         "\t\t\"nfType\"              \t\t: null,\n" +
405                         "\t\t\"nfRole\"              \t\t: null,\n" +
406                         "\"resourceInput\":\"{\\\"a\\\":\\\"key|default_value\\\"}\"," +
407                         "\t\t\"nfNamingCode\"         \t: null,\n" +
408                         "\t\t\"multiStageDesign\"         : \"false\",\n" +
409                         "\t\t\t\"vfModules\": [\n" +
410                         "\t\t\t\t{\n" +
411                         "\t\t\t\t\t\"modelInfo\"               : { \n" +
412                         "\t\t\t\t\t\t\"modelName\"              : \"F971106a248f42029d1f..base_vpkg..module-0\",\n" +
413                         "\t\t\t\t\t\t\"modelUuid\"              : \"47d5273a-7456-4786-9035-b3911944cc35\",\n" +
414                         "\t\t\t\t\t\t\"modelInvariantUuid\"     : \"0ea3e57e-ac7a-425a-928b-b4aee8806c15\",\n" +
415                         "\t\t\t\t\t\t\"modelVersion\"           : \"1\",\n" +
416                         "\t\t\t\t\t\t\"modelCustomizationUuid\" : \"9ed9fef6-d3f8-4433-9807-7e23393a16bc\"\n" +
417                         "\t\t\t\t\t},\t\t\"isBase\"                 : true,\n" +
418                         "\t\t\t\t\t\"vfModuleLabel\"          : \"base_vpkg\",\n" +
419                         "\t\t\t\t\t\"initialCount\"           : 1,\n" +
420                         "\t\t\t\t\t\"hasVolumeGroup\"           : true\n" +
421                         "\t\t\t\t}\n" +
422                         "\t\t\t]\n" +
423                         "\t\t}\n" +
424                         "\t],\n" +
425                         "\t\"serviceNetworks\": [],\n" +
426                         "\t\"serviceAllottedResources\": []\n" +
427                         "\t}}")));
428
429         List<String> resourceSequence = ResourceRequestBuilder.getResourceSequence("c3954379-4efe-431c-8258-f84905b158e5");
430         assertEquals(resourceSequence.size(), 2);
431         assertEquals(resourceSequence.get(0), "res1");
432         assertEquals(resourceSequence.get(1), "res2");
433     }
434 }