c4c9f35f668ff5a6b018b4f04fb7195f84b61f25
[ccsdk/apps.git] /
1 /*******************************************************************************\r
2  * Copyright © 2017-2018 AT&T Intellectual Property.\r
3  * \r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  * \r
8  *     http://www.apache.org/licenses/LICENSE-2.0\r
9  * \r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  ******************************************************************************/\r
16 \r
17 package org.onap.ccsdk.apps.ms.vlantagapi.core.service;\r
18 \r
19 import static org.mockito.ArgumentMatchers.any;\r
20 import java.util.ArrayList;\r
21 import java.util.List;\r
22 \r
23 import org.junit.Assert;\r
24 import org.junit.Before;\r
25 import org.junit.Rule;\r
26 import org.junit.Test;\r
27 import org.junit.rules.ExpectedException;\r
28 import org.junit.runner.RunWith;\r
29 import org.mockito.InjectMocks;\r
30 import org.mockito.Mockito;\r
31 import org.mockito.Spy;\r
32 import org.mockito.junit.MockitoJUnitRunner;\r
33 import org.onap.ccsdk.apps.ms.vlantagapi.core.exception.VlantagApiException;\r
34 import org.onap.ccsdk.apps.ms.vlantagapi.core.extinf.pm.model.AllowedRanges;\r
35 import org.onap.ccsdk.apps.ms.vlantagapi.core.extinf.pm.model.Elements;\r
36 import org.onap.ccsdk.apps.ms.vlantagapi.core.extinf.pm.model.PolicyEngineResponse;\r
37 import org.onap.ccsdk.apps.ms.vlantagapi.core.extinf.pm.model.ResourceModel;\r
38 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.AssignVlanTagRequest;\r
39 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.AssignVlanTagRequestInput;\r
40 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.AssignVlanTagResponse;\r
41 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.PingResponse;\r
42 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.UnassignVlanTagRequest;\r
43 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.UnassignVlanTagRequestInput;\r
44 import org.onap.ccsdk.apps.ms.vlantagapi.core.model.UnassignVlanTagResponse;\r
45 import org.onap.ccsdk.apps.ms.vlantagapi.core.service.VlantagApiServiceImpl;\r
46 import org.onap.ccsdk.apps.ms.vlantagapi.extinf.pm.PolicyManagerClient;\r
47 import org.onap.ccsdk.apps.ms.vlantagapi.util.MockResourceAllocator;\r
48 import org.onap.ccsdk.sli.adaptors.ra.comp.ResourceResponse;\r
49 import org.onap.ccsdk.sli.adaptors.util.str.StrUtil;\r
50 \r
51 import org.slf4j.Logger;\r
52 import org.slf4j.LoggerFactory;\r
53 \r
54 \r
55 @RunWith(MockitoJUnitRunner.class)\r
56 public class TestVlantagApiServiceImpl {\r
57 private static final Logger log = LoggerFactory.getLogger(TestVlantagApiServiceImpl.class);\r
58         \r
59         VlantagApiServiceImpl service;\r
60         @InjectMocks\r
61         VlantagApiServiceImpl serviceSpy;\r
62         \r
63         @Spy\r
64         private PolicyManagerClient policyEngineSpy;\r
65         \r
66         @Spy\r
67         protected static MockResourceAllocator mockRA2;\r
68 \r
69         \r
70         @Rule\r
71         public ExpectedException expectedEx = ExpectedException.none();\r
72         \r
73         @Before\r
74         public void setup() throws Exception {\r
75                 service = new VlantagApiServiceImpl();\r
76 \r
77                 PolicyEngineResponse peResponse = new PolicyEngineResponse();\r
78                 peResponse.setConfig("{\"riskLevel\":\"4\",\"riskType\":\"test\",\"policyName\":\"Internet_VlanTag_1810_US_VPE\",\"service\":\"vlantagResourceModel\",\"guard\":\"False\",\"description\":\"Internet_VlanTag_1810_US_VPE\",\"templateVersion\":\"1607\",\"priority\":\"4\",\"version\":\"20180709\",\"content\":{\"policy-instance-name\":\"Internet_VlanTag_1810_US_VPE\",\"resource-models\":[{\"data-store\":\"FALSE\",\"elements\":[{\"allowed-range\":[{\"min\":\"3553\",\"max\":\"3562\"}],\"recycle-vlantag-range\":\"TRUE\",\"overwrite\":\"FALSE\",\"vlantag-name\":\"VPE-Cust\"}],\"scope\":\"SITE\",\"vlan-type\":\"vlan-id-outer\",\"resource-resolution-recipe\":\"#BSB# VPE-Cust #ESB#\",\"resource-vlan-role\":\"outer-tag\"},{\"data-store\":\"TRUE\",\"elements\":[{\"allowed-range\":[{\"min\":\"3503\",\"max\":\"3503\"}],\"element-vlan-role\":\"outer-tag\",\"recycle-vlantag-range\":\"TRUE\",\"overwrite\":\"FALSE\",\"vlantag-name\":\"VPE-Cust-Outer\"},{\"allowed-range\":[{\"min\":\"4001\",\"max\":\"4012\"}],\"element-vlan-role\":\"outer-tag\",\"recycle-vlantag-range\":\"TRUE\",\"overwrite\":\"FALSE\",\"vlantag-name\":\"VPE-Core1\"},{\"allowed-range\":[{\"min\":\"4001\",\"max\":\"4012\"}],\"element-vlan-role\":\"outer-tag\",\"recycle-vlantag-range\":\"TRUE\",\"overwrite\":\"FALSE\",\"vlantag-name\":\"VPE-Core2\"}],\"scope\":\"SITE\",\"vlan-type\":\"vlan-id-filter\",\"resource-resolution-recipe\":\"#BSB# VPE-Cust-Outer, VPE-Core1, VPE-Core2 #ESB#\"}]}}");\r
79                 PolicyEngineResponse[] peResponses = new PolicyEngineResponse[1];\r
80                 peResponses[0] = peResponse;\r
81 \r
82                 Mockito.doReturn(peResponses).when(policyEngineSpy).getConfigUsingPost(any());\r
83         }\r
84         \r
85         @Test(expected = Test.None.class /* no exception expected */)\r
86         public void test_assign_sucess_001() throws Exception {\r
87                 \r
88                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
89                 input.setPolicyInstanceName("some-policy-instance");\r
90                 input.setVlanType("vlan-id-outer");\r
91                 input.setScopeId("some-scope-id");\r
92                 input.setKey("some-key");\r
93                 \r
94                 AssignVlanTagRequest request = new AssignVlanTagRequest();\r
95                 List<AssignVlanTagRequestInput> inputs = new ArrayList<>();\r
96                 inputs.add(input);\r
97                 request.setInput(inputs);\r
98                 \r
99                 //PowerMockito.doReturn(mockStatus.Success).when(mockRA).reserve(any(), any(), any(), any());           \r
100                 AssignVlanTagResponse response = serviceSpy.assignVlanTag(request);\r
101                 \r
102                 StrUtil.info(log, response);\r
103         }\r
104         \r
105         @Test(expected = Test.None.class /* no exception expected */)\r
106         public void test_unassign_sucess_001() throws Exception {\r
107                 \r
108                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
109                 input.setPolicyInstanceName("some-policy-instance");\r
110                 input.setVlanType("vlan-id-outer");\r
111                 input.setKey("some-key");\r
112                 \r
113                 UnassignVlanTagRequest request = new UnassignVlanTagRequest();\r
114                 List<UnassignVlanTagRequestInput> inputs = new ArrayList<>();\r
115                 inputs.add(input);\r
116                 request.setInput(inputs);\r
117                 \r
118                 //Mockito.doReturn(AllocationStatus.Success).when(mockRA).release(any(), any());        \r
119 \r
120                 \r
121                 UnassignVlanTagResponse response = serviceSpy.unassignVlanTag(request);\r
122                 \r
123                 StrUtil.info(log, response);\r
124         }\r
125         \r
126         @Test(expected = Test.None.class /* no exception expected */)\r
127         public void test_ping_sucess_001() throws Exception {   \r
128                 PingResponse response = serviceSpy.getPing("Vlantag API Service");\r
129                 \r
130                 StrUtil.info(log, response);\r
131                 Assert.assertTrue(response.getMessage().contains("Ping response : Vlantag API Service Time : "));\r
132         }\r
133         \r
134         \r
135         @Test\r
136         public void test_resolveRecipe_001() {\r
137                 \r
138                 ResourceModel model = new ResourceModel();\r
139                 model.setVlanType("vlan-id-inner");\r
140                 model.setResourceResolutionRecipe("#BSB# VPE-Core1, #BSB# VPE-Core2 #ESB#, VPE-Core3 #ESB#");\r
141                 //model.setResourceResolutionRecipe("[ VPE-Core1, [ VPE-Core2 ], VPE-Core3 ]");\r
142                 \r
143                 List<ResourceResponse> rl = new ArrayList<>();\r
144                 ResourceResponse response = new ResourceResponse();\r
145                 response.endPointPosition = "VPE-Core1";\r
146                 response.resourceAllocated="3901";\r
147                 \r
148                 rl.add(response);\r
149                 \r
150                 response = new ResourceResponse();\r
151                 response.endPointPosition = "VPE-Core2";\r
152                 response.resourceAllocated="3902";\r
153                 \r
154                 rl.add(response);\r
155                 \r
156                 response = new ResourceResponse();\r
157                 response.endPointPosition = "VPE-Core3";\r
158                 response.resourceAllocated="3903";\r
159                 \r
160                 rl.add(response);\r
161                 \r
162                 service.resolveRecipe(model, rl);\r
163 \r
164         }\r
165         \r
166         @Test\r
167         public void test_resolveResourceElementValue_001() throws VlantagApiException {\r
168                 \r
169                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
170                 input.setKey("some-key");\r
171                 input.setPolicyInstanceName("some-policy-instance-name");\r
172                 input.setVlanType("vlan-id-outer");\r
173                 input.setResourceValue("[ 123, 123, 234 ]");\r
174                 input.setScopeId("scope-id");\r
175                 input.setVlanType("vlan-type");\r
176                 \r
177                 Elements element = new Elements();\r
178                 element.setElementVlanRole("element-vlan-role");\r
179                 element.setOverwrite("FALSE");\r
180                 element.setRecycleVlantagRange("TRUE");\r
181                 element.setVlantagName("VPE-Core2");\r
182                 \r
183                 \r
184                 ResourceModel model = new ResourceModel();\r
185                 model.setVlanType("vlan-id-inner");\r
186                 model.setResourceResolutionRecipe("#BSB# VPE-Core1, VPE-Core2, VPE-Core3 #ESB#");\r
187                 //model.setResourceResolutionRecipe("[ VPE-Core1, [ VPE-Core2 ], VPE-Core3 ]");\r
188                 \r
189                 List<ResourceResponse> rl = new ArrayList<>();\r
190                 ResourceResponse response = new ResourceResponse();\r
191                 response.endPointPosition = "VPE-Core1";\r
192                 response.resourceAllocated="3901";\r
193                 \r
194                 rl.add(response);\r
195                 \r
196                 response = new ResourceResponse();\r
197                 response.endPointPosition = "VPE-Core2";\r
198                 response.resourceAllocated="3902";\r
199                 \r
200                 rl.add(response);\r
201                 \r
202                 response = new ResourceResponse();\r
203                 response.endPointPosition = "VPE-Core3";\r
204                 response.resourceAllocated="3903";\r
205                 \r
206                 rl.add(response);\r
207                 \r
208                 String resourceValue = service.resolveResourceElementValue(input, model, element);\r
209                 \r
210                  Assert.assertTrue(resourceValue.equals("123"));\r
211         }\r
212         \r
213         @Test(expected = VlantagApiException.class)\r
214         public void test_resolveResourceElementValue_002() throws VlantagApiException {\r
215                 \r
216                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
217                 input.setKey("some-key");\r
218                 input.setPolicyInstanceName("some-policy-instance-name");\r
219                 input.setVlanType("vlan-id-outer");\r
220                 input.setResourceValue("[ 123]");\r
221                 input.setScopeId("scope-id");\r
222                 input.setVlanType("vlan-type");\r
223                 \r
224                 Elements element = new Elements();\r
225                 element.setElementVlanRole("element-vlan-role");\r
226                 element.setOverwrite("FALSE");\r
227                 element.setRecycleVlantagRange("TRUE");\r
228                 element.setVlantagName("VPE-Core2");\r
229                 \r
230                 \r
231                 ResourceModel model = new ResourceModel();\r
232                 model.setVlanType("vlan-id-inner");\r
233                 model.setResourceResolutionRecipe("#BSB# VPE-Core1, VPE-Core2, VPE-Core3 #ESB#");\r
234                 //model.setResourceResolutionRecipe("[ VPE-Core1, [ VPE-Core2 ], VPE-Core3 ]");\r
235                 \r
236                 List<ResourceResponse> rl = new ArrayList<>();\r
237                 ResourceResponse response = new ResourceResponse();\r
238                 response.endPointPosition = "VPE-Core1";\r
239                 response.resourceAllocated="3901";\r
240                 \r
241                 rl.add(response);\r
242                 \r
243                 response = new ResourceResponse();\r
244                 response.endPointPosition = "VPE-Core2";\r
245                 response.resourceAllocated="3902";\r
246                 \r
247                 rl.add(response);\r
248                 \r
249                 response = new ResourceResponse();\r
250                 response.endPointPosition = "VPE-Core3";\r
251                 response.resourceAllocated="3903";\r
252                 \r
253                 rl.add(response);\r
254                 \r
255                 service.resolveResourceElementValue(input, model, element);\r
256         }\r
257         \r
258         \r
259         @Test\r
260         public void test_validateElements_assign_vlantagName_001() throws VlantagApiException {\r
261                 \r
262                 expectedEx.expect(VlantagApiException.class);\r
263                 expectedEx.expectMessage("Vlantag Name missing for Element in Resource Model Policy for Vlan Type : vlan-id-outer");\r
264                 \r
265                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
266                 input.setKey("some-key");\r
267                 input.setPolicyInstanceName("some-policy-instance-name");\r
268                 input.setVlanType("vlan-id-outer");\r
269                 input.setResourceValue("[ 123, 123, 234 ]");\r
270                 input.setScopeId("scope-id");\r
271                 \r
272                 Elements element = new Elements();\r
273                 element.setElementVlanRole("element-vlan-role");\r
274                 element.setOverwrite("FALSE");\r
275                 element.setRecycleVlantagRange("TRUE");\r
276                 \r
277                 List<Elements> elements = new ArrayList<>();\r
278                 elements.add(element);\r
279                 \r
280                 service.validateElements(elements, input);\r
281 \r
282         }\r
283         \r
284         @Test\r
285         public void test_validateElements_assign_allowedRanges_002() throws VlantagApiException {\r
286                 \r
287                 expectedEx.expect(VlantagApiException.class);\r
288                 expectedEx.expectMessage("Allowed Ranges missing for Element in Resource Model Policy for Vlan Type : vlan-id-outer");\r
289                 \r
290                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
291                 input.setKey("some-key");\r
292                 input.setPolicyInstanceName("some-policy-instance-name");\r
293                 input.setVlanType("vlan-id-outer");\r
294                 input.setResourceValue("[ 123, 123, 234 ]");\r
295                 input.setScopeId("scope-id");\r
296                 \r
297                 Elements element = new Elements();\r
298                 element.setElementVlanRole("element-vlan-role");\r
299                 element.setOverwrite("FALSE");\r
300                 element.setRecycleVlantagRange("TRUE");\r
301                 element.setVlantagName("VPE-Core2");\r
302                 \r
303                 List<Elements> elements = new ArrayList<>();\r
304                 elements.add(element);\r
305                 \r
306                 service.validateElements(elements, input);\r
307 \r
308         }\r
309         \r
310         @Test\r
311         public void test_validateElements_assign_vlantagElements_003() throws VlantagApiException {\r
312                 \r
313                 expectedEx.expect(VlantagApiException.class);\r
314                 expectedEx.expectMessage("No Vlantag Elements found in Resource Model Policy for Vlan Type : vlan-id-outer");\r
315                 \r
316                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
317                 input.setKey("some-key");\r
318                 input.setPolicyInstanceName("some-policy-instance-name");\r
319                 input.setVlanType("vlan-id-outer");\r
320                 input.setResourceValue("[ 123, 123, 234 ]");\r
321                 input.setScopeId("scope-id");           \r
322                 \r
323                 List<Elements> elements = new ArrayList<>();\r
324                 \r
325                 service.validateElements(elements, input);\r
326 \r
327         }\r
328         \r
329         @Test(expected = Test.None.class /* no exception expected */)\r
330         public void test_validateElements_assign_Success_004() throws VlantagApiException {\r
331                         \r
332                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
333                 input.setKey("some-key");\r
334                 input.setPolicyInstanceName("some-policy-instance-name");\r
335                 input.setVlanType("vlan-id-outer");\r
336                 input.setResourceValue("[ 123, 123, 234 ]");\r
337                 input.setScopeId("scope-id");\r
338                 \r
339                 Elements element = new Elements();\r
340                 element.setElementVlanRole("element-vlan-role");\r
341                 element.setOverwrite("FALSE");\r
342                 element.setRecycleVlantagRange("TRUE");\r
343                 element.setVlantagName("VPE-Core2");\r
344                 \r
345                 List<AllowedRanges> allowedRanges = new ArrayList<>();\r
346                 AllowedRanges range = new AllowedRanges();\r
347                 range.setMin("200");\r
348                 range.setMax("300");\r
349                 allowedRanges.add(range );\r
350                 element.setAllowedRanges(allowedRanges);\r
351                 \r
352                 List<Elements> elements = new ArrayList<>();\r
353                 elements.add(element);\r
354                 \r
355                 service.validateElements(elements, input);\r
356 \r
357         }\r
358         \r
359         @Test\r
360         public void test_validateElements_unassign_vlantagName_001() throws VlantagApiException {\r
361                 \r
362                 expectedEx.expect(VlantagApiException.class);\r
363                 expectedEx.expectMessage("Vlantag Name missing for Element in Resource Model Policy for Vlan Type : vlan-id-outer");\r
364                 \r
365                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
366                 input.setKey("some-key");\r
367                 input.setPolicyInstanceName("some-policy-instance-name");\r
368                 input.setVlanType("vlan-id-outer");\r
369                 \r
370                 Elements element = new Elements();\r
371                 element.setElementVlanRole("element-vlan-role");\r
372                 element.setOverwrite("FALSE");\r
373                 element.setRecycleVlantagRange("TRUE");\r
374                 \r
375                 List<Elements> elements = new ArrayList<>();\r
376                 elements.add(element);\r
377                 \r
378                 service.validateElements(elements, input);\r
379 \r
380         }\r
381         \r
382         @Test\r
383         public void test_validateElements_unassign_vlantagElements_003() throws VlantagApiException {\r
384                 \r
385                 expectedEx.expect(VlantagApiException.class);\r
386                 expectedEx.expectMessage("No Vlantag Elements found in Resource Model Policy for Vlan Type : vlan-id-outer");\r
387                 \r
388                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
389                 input.setKey("some-key");\r
390                 input.setPolicyInstanceName("some-policy-instance-name");\r
391                 input.setVlanType("vlan-id-outer");\r
392                 \r
393                 \r
394                 List<Elements> elements = new ArrayList<>();\r
395                 \r
396                 service.validateElements(elements, input);\r
397 \r
398         }\r
399         \r
400         @Test(expected = Test.None.class /* no exception expected */)\r
401         public void test_validateElements_unassign_Success_004() throws VlantagApiException {\r
402                         \r
403                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
404                 input.setKey("some-key");\r
405                 input.setPolicyInstanceName("some-policy-instance-name");\r
406                 input.setVlanType("vlan-id-outer");\r
407                 \r
408                 Elements element = new Elements();\r
409                 element.setElementVlanRole("element-vlan-role");\r
410                 element.setOverwrite("FALSE");\r
411                 element.setRecycleVlantagRange("TRUE");\r
412                 element.setVlantagName("VPE-Core2");\r
413                 \r
414                 List<AllowedRanges> allowedRanges = new ArrayList<>();\r
415                 AllowedRanges range = new AllowedRanges();\r
416                 range.setMin("200");\r
417                 range.setMax("300");\r
418                 allowedRanges.add(range );\r
419                 element.setAllowedRanges(allowedRanges);\r
420                 \r
421                 List<Elements> elements = new ArrayList<>();\r
422                 elements.add(element);\r
423                 \r
424                 service.validateElements(elements, input);\r
425 \r
426         }\r
427         \r
428         @Test\r
429         public void test_validateModel_assign_resourceModel_001() throws VlantagApiException {\r
430                 \r
431                 expectedEx.expect(VlantagApiException.class);\r
432                 expectedEx.expectMessage("No Matching Policy Resource Model found for Vlan Type : vlan-id-outer");\r
433                 \r
434                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
435                 input.setKey("some-key");\r
436                 input.setPolicyInstanceName("some-policy-instance-name");\r
437                 input.setVlanType("vlan-id-outer");\r
438                 input.setResourceValue("[ 123]");\r
439                 input.setScopeId("scope-id");\r
440                 \r
441                 service.validateModel(null, input);\r
442         }\r
443         \r
444         @Test\r
445         public void test_validateModel_assign_resolutionRecipe_002() throws VlantagApiException {\r
446                 \r
447                 expectedEx.expect(VlantagApiException.class);\r
448                 expectedEx.expectMessage("Resource Resolution Recipe is null in Resource Model for Vlan Type : vlan-id-outer");\r
449                 \r
450                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
451                 input.setKey("some-key");\r
452                 input.setPolicyInstanceName("some-policy-instance-name");\r
453                 input.setVlanType("vlan-id-outer");\r
454                 input.setResourceValue("[ 123]");\r
455                 input.setScopeId("scope-id");           \r
456                         \r
457                 ResourceModel model = new ResourceModel();\r
458                 model.setVlanType("vlan-id-inner");\r
459                 \r
460                 service.validateModel(model, input);\r
461         }\r
462         \r
463         @Test\r
464         public void test_validateModel_assign_scope_003() throws VlantagApiException {\r
465                 \r
466                 expectedEx.expect(VlantagApiException.class);\r
467                 expectedEx.expectMessage("Scope is null in Resource Model for Vlan Type : vlan-id-outer");\r
468                 \r
469                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
470                 input.setKey("some-key");\r
471                 input.setPolicyInstanceName("some-policy-instance-name");\r
472                 input.setVlanType("vlan-id-outer");\r
473                 input.setResourceValue("[ 123]");\r
474                 input.setScopeId("scope-id");\r
475 \r
476                 ResourceModel model = new ResourceModel();\r
477                 model.setVlanType("vlan-id-inner");\r
478                 model.setResourceResolutionRecipe("#BSB# VPE-Core1, VPE-Core2, VPE-Core3 #ESB#");\r
479                 \r
480                 service.validateModel(model, input);\r
481         }\r
482         \r
483         @Test(expected = Test.None.class /* no exception expected */)\r
484         public void test_validateModel_assign_success_004() throws VlantagApiException {\r
485                 \r
486                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
487                 input.setKey("some-key");\r
488                 input.setPolicyInstanceName("some-policy-instance-name");\r
489                 input.setVlanType("vlan-id-outer");\r
490                 input.setResourceValue("[ 123]");\r
491                 input.setScopeId("scope-id");\r
492                 \r
493                 Elements element = new Elements();\r
494                 element.setElementVlanRole("element-vlan-role");\r
495                 element.setOverwrite("FALSE");\r
496                 element.setRecycleVlantagRange("TRUE");\r
497                 element.setVlantagName("VPE-Core2");\r
498                 \r
499                 List<AllowedRanges> allowedRanges = new ArrayList<>();\r
500                 AllowedRanges range = new AllowedRanges();\r
501                 range.setMin("200");\r
502                 range.setMax("300");\r
503                 allowedRanges.add(range );\r
504                 element.setAllowedRanges(allowedRanges);\r
505                 \r
506                 List<Elements> elements = new ArrayList<>();\r
507                 elements.add(element);\r
508                         \r
509                 ResourceModel model = new ResourceModel();\r
510                 model.setVlanType("vlan-id-inner");\r
511                 model.setResourceResolutionRecipe("#BSB# VPE-Core1, VPE-Core2, VPE-Core3 #ESB#");\r
512                 model.setScope("VPE");\r
513                 model.setElements(elements);\r
514         \r
515                 service.validateModel(model, input);\r
516         }\r
517         \r
518         @Test\r
519         public void test_validateModel_unassign_resourceModel_001() throws VlantagApiException {\r
520                 \r
521                 expectedEx.expect(VlantagApiException.class);\r
522                 expectedEx.expectMessage("No Matching Policy Resource Model found for Vlan Type : vlan-id-outer");\r
523                 \r
524                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
525                 input.setKey("some-key");\r
526                 input.setPolicyInstanceName("some-policy-instance-name");\r
527                 input.setVlanType("vlan-id-outer");\r
528                 \r
529                 service.validateModel(null, input);\r
530         }\r
531         \r
532         @Test\r
533         public void test_validateModel_unassign_resolutionRecipe_002() throws VlantagApiException {\r
534                 \r
535                 expectedEx.expect(VlantagApiException.class);\r
536                 expectedEx.expectMessage("Resource Resolution Recipe is null in Resource Model for Vlan Type : vlan-id-outer");\r
537                 \r
538                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
539                 input.setKey("some-key");\r
540                 input.setPolicyInstanceName("some-policy-instance-name");\r
541                 input.setVlanType("vlan-id-outer");             \r
542                         \r
543                 ResourceModel model = new ResourceModel();\r
544                 model.setVlanType("vlan-id-inner");\r
545                 \r
546                 service.validateModel(model, input);\r
547         }\r
548         \r
549         @Test\r
550         public void test_validateModel_unassign_scope_003() throws VlantagApiException {\r
551                 \r
552                 expectedEx.expect(VlantagApiException.class);\r
553                 expectedEx.expectMessage("Scope is null in Resource Model for Vlan Type : vlan-id-outer");\r
554                 \r
555                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
556                 input.setKey("some-key");\r
557                 input.setPolicyInstanceName("some-policy-instance-name");\r
558                 input.setVlanType("vlan-id-outer");             \r
559                         \r
560                 ResourceModel model = new ResourceModel();\r
561                 model.setVlanType("vlan-id-inner");\r
562                 model.setResourceResolutionRecipe("#BSB# VPE-Core1, VPE-Core2, VPE-Core3 #ESB#");\r
563                 \r
564                 service.validateModel(model, input);\r
565         }\r
566         \r
567         @Test(expected = Test.None.class /* no exception expected */)\r
568         public void test_validateModel_unassign_success_004() throws VlantagApiException {\r
569                 \r
570                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
571                 input.setKey("some-key");\r
572                 input.setPolicyInstanceName("some-policy-instance-name");\r
573                 input.setVlanType("vlan-id-outer");\r
574                 \r
575                 Elements element = new Elements();\r
576                 element.setElementVlanRole("element-vlan-role");\r
577                 element.setOverwrite("FALSE");\r
578                 element.setRecycleVlantagRange("TRUE");\r
579                 element.setVlantagName("VPE-Core2");\r
580                 \r
581                 List<AllowedRanges> allowedRanges = new ArrayList<>();\r
582                 AllowedRanges range = new AllowedRanges();\r
583                 range.setMin("200");\r
584                 range.setMax("300");\r
585                 allowedRanges.add(range );\r
586                 element.setAllowedRanges(allowedRanges);\r
587                 \r
588                 List<Elements> elements = new ArrayList<>();\r
589                 elements.add(element);\r
590                         \r
591                 ResourceModel model = new ResourceModel();\r
592                 model.setVlanType("vlan-id-inner");\r
593                 model.setResourceResolutionRecipe("#BSB# VPE-Core1, VPE-Core2, VPE-Core3 #ESB#");\r
594                 model.setScope("VPE");\r
595                 model.setElements(elements);\r
596         \r
597                 service.validateModel(model, input);\r
598         }\r
599         \r
600         @Test\r
601         public void test_validateRequest_assign_request_001() throws VlantagApiException {\r
602                 \r
603                 expectedEx.expect(VlantagApiException.class);\r
604                 expectedEx.expectMessage("VlanTag Assign Request is null.");\r
605                 \r
606                 AssignVlanTagRequest request = null;\r
607                 service.validateRequest(request);\r
608         }\r
609         \r
610         @Test\r
611         public void test_validateRequest_assign_requestInput_002() throws VlantagApiException {\r
612                 \r
613                 expectedEx.expect(VlantagApiException.class);\r
614                 expectedEx.expectMessage("VlanTag Assign Request Input is null or empty.");\r
615                 \r
616                 AssignVlanTagRequest request = new AssignVlanTagRequest();\r
617                 \r
618                 service.validateRequest(request);\r
619         }\r
620         \r
621         @Test\r
622         public void test_validateRequest_assign_policyInstanceName_003() throws VlantagApiException {\r
623                 \r
624                 expectedEx.expect(VlantagApiException.class);\r
625                 expectedEx.expectMessage("VlanTag Assign Request policy-instance-name is null.");\r
626                 \r
627                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
628                 input.setKey("some-key");\r
629                 input.setVlanType("vlan-id-outer");\r
630                 input.setResourceValue("[ 123]");\r
631                 input.setScopeId("scope-id");\r
632                 input.setVlanType("vlan-type");\r
633                 \r
634                 AssignVlanTagRequest request = new AssignVlanTagRequest();\r
635                 List<AssignVlanTagRequestInput> inputs = new ArrayList<>();\r
636                 inputs.add(input);\r
637                 \r
638                 request.setInput(inputs);\r
639                 \r
640                 service.validateRequest(request);\r
641         }\r
642         \r
643         @Test\r
644         public void test_validateRequest_assign_resourceName_004() throws VlantagApiException {\r
645                 \r
646                 expectedEx.expect(VlantagApiException.class);\r
647                 expectedEx.expectMessage("VlanTag Assign Request vlan-type is null.");\r
648                 \r
649                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
650                 input.setKey("some-key");\r
651                 input.setPolicyInstanceName("some-policy-instance");\r
652                 input.setResourceValue("[ 123]");\r
653                 input.setScopeId("scope-id");\r
654                 \r
655                 AssignVlanTagRequest request = new AssignVlanTagRequest();\r
656                 List<AssignVlanTagRequestInput> inputs = new ArrayList<>();\r
657                 inputs.add(input);\r
658                 \r
659                 request.setInput(inputs);\r
660                 \r
661                 service.validateRequest(request);\r
662         }\r
663         \r
664         @Test\r
665         public void test_validateRequest_assign_scopeId_005() throws VlantagApiException {\r
666                 \r
667                 expectedEx.expect(VlantagApiException.class);\r
668                 expectedEx.expectMessage("VlanTag Assign Request scope-id is null.");\r
669                 \r
670                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
671                 input.setKey("some-key");\r
672                 input.setPolicyInstanceName("some-policy-instance");\r
673                 input.setVlanType("vlan-id-outer");\r
674                 input.setResourceValue("[ 123]");\r
675                 input.setVlanType("vlan-type");\r
676                 \r
677                 AssignVlanTagRequest request = new AssignVlanTagRequest();\r
678                 List<AssignVlanTagRequestInput> inputs = new ArrayList<>();\r
679                 inputs.add(input);\r
680                 \r
681                 request.setInput(inputs);\r
682                 \r
683                 service.validateRequest(request);\r
684         }\r
685         \r
686         @Test\r
687         public void test_validateRequest_assign_resourceKey_006() throws VlantagApiException {\r
688                 \r
689                 expectedEx.expect(VlantagApiException.class);\r
690                 expectedEx.expectMessage("VlanTag Assign Request key is null.");\r
691                 \r
692                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
693                 input.setPolicyInstanceName("some-policy-instance");\r
694                 input.setVlanType("vlan-id-outer");\r
695                 input.setScopeId("scope-id");\r
696                 input.setResourceValue("[ 123]");\r
697                 input.setVlanType("vlan-type");\r
698                 \r
699                 AssignVlanTagRequest request = new AssignVlanTagRequest();\r
700                 List<AssignVlanTagRequestInput> inputs = new ArrayList<>();\r
701                 inputs.add(input);\r
702                 \r
703                 request.setInput(inputs);\r
704                 \r
705                 service.validateRequest(request);\r
706         }\r
707         \r
708         @Test(expected = Test.None.class /* no exception expected */)\r
709         public void test_validateRequest_assign_success_007() throws VlantagApiException {\r
710                 \r
711                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
712                 input.setPolicyInstanceName("some-policy-instance");\r
713                 input.setVlanType("vlan-id-outer");\r
714                 input.setScopeId("scope-id");\r
715                 input.setResourceValue("[ 123]");\r
716                 input.setVlanType("vlan-type");\r
717                 input.setKey("some-key");\r
718                 \r
719                 AssignVlanTagRequest request = new AssignVlanTagRequest();\r
720                 List<AssignVlanTagRequestInput> inputs = new ArrayList<>();\r
721                 inputs.add(input);\r
722                 \r
723                 request.setInput(inputs);\r
724                 \r
725                 service.validateRequest(request);\r
726         }\r
727         \r
728         \r
729         @Test\r
730         public void test_validateRequest_unassign_request_001() throws VlantagApiException {\r
731                 \r
732                 expectedEx.expect(VlantagApiException.class);\r
733                 expectedEx.expectMessage("VlanTag Unassign Request is null.");\r
734                 \r
735                 UnassignVlanTagRequest request = null;\r
736                 service.validateRequest(request);\r
737         }\r
738         \r
739         @Test\r
740         public void test_validateRequest_unassign_requestInput_002() throws VlantagApiException {\r
741                 \r
742                 expectedEx.expect(VlantagApiException.class);\r
743                 expectedEx.expectMessage("VlanTag Unassign Request Input is null or empty.");\r
744                 \r
745                 UnassignVlanTagRequest request = new UnassignVlanTagRequest();\r
746                 service.validateRequest(request);\r
747         }\r
748         \r
749         @Test\r
750         public void test_validateRequest_unassign_policyInstanceName_003() throws VlantagApiException {\r
751                 \r
752                 expectedEx.expect(VlantagApiException.class);\r
753                 expectedEx.expectMessage("VlanTag Unassign Request policy-instance-name is null.");\r
754                 \r
755                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
756                 input.setKey("some-key");\r
757                 input.setVlanType("vlan-id-outer");\r
758                 \r
759                 UnassignVlanTagRequest request = new UnassignVlanTagRequest();\r
760                 List<UnassignVlanTagRequestInput> inputs = new ArrayList<>();\r
761                 inputs.add(input);\r
762                 \r
763                 request.setInput(inputs);\r
764                 \r
765                 service.validateRequest(request);\r
766         }\r
767         \r
768         @Test\r
769         public void test_validateRequest_unassign_resourceName_004() throws VlantagApiException {\r
770                 \r
771                 expectedEx.expect(VlantagApiException.class);\r
772                 expectedEx.expectMessage("VlanTag Unassign Request resource-name is null.");\r
773                 \r
774                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
775                 input.setKey("some-key");\r
776                 input.setPolicyInstanceName("some-policy-instance");\r
777                 \r
778                 UnassignVlanTagRequest request = new UnassignVlanTagRequest();\r
779                 List<UnassignVlanTagRequestInput> inputs = new ArrayList<>();\r
780                 inputs.add(input);\r
781                 \r
782                 request.setInput(inputs);\r
783                 \r
784                 service.validateRequest(request);\r
785         }\r
786         \r
787         \r
788         @Test\r
789         public void test_validateRequest_unassign_resourceKey_005() throws VlantagApiException {\r
790                 \r
791                 expectedEx.expect(VlantagApiException.class);\r
792                 expectedEx.expectMessage("VlanTag Unassign Request key is null.");\r
793                 \r
794                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
795                 input.setPolicyInstanceName("some-policy-instance");\r
796                 input.setVlanType("vlan-id-outer");\r
797                 \r
798                 UnassignVlanTagRequest request = new UnassignVlanTagRequest();\r
799                 List<UnassignVlanTagRequestInput> inputs = new ArrayList<>();\r
800                 inputs.add(input);\r
801                 \r
802                 request.setInput(inputs);\r
803                 \r
804                 service.validateRequest(request);\r
805         }\r
806         \r
807         @Test(expected = Test.None.class /* no exception expected */)\r
808         public void test_validateRequest_unassign_success_006() throws VlantagApiException {\r
809                 \r
810                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
811                 input.setKey("some-key");\r
812                 input.setPolicyInstanceName("some-policy-instance");\r
813                 input.setVlanType("vlan-id-outer");\r
814                 \r
815                 UnassignVlanTagRequest request = new UnassignVlanTagRequest();\r
816                 List<UnassignVlanTagRequestInput> inputs = new ArrayList<>();\r
817                 inputs.add(input);\r
818                 \r
819                 request.setInput(inputs);\r
820                 \r
821                 service.validateRequest(request);\r
822         }\r
823         \r
824         @Test\r
825         public void test_validate_assign_failure_001() throws VlantagApiException {\r
826                 \r
827                 expectedEx.expect(VlantagApiException.class);\r
828                 expectedEx.expectMessage("No Resource Models available in Policy Manager for Policy Instance Name : some-policy-instance");\r
829                 \r
830                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
831                 input.setPolicyInstanceName("some-policy-instance");\r
832                 input.setVlanType("vlan-id-outer");\r
833                 \r
834                 List<ResourceModel> resourceModels = new ArrayList<>();\r
835                 \r
836                 service.validate(resourceModels, input);\r
837         }\r
838         \r
839         @Test(expected = Test.None.class /* no exception expected */)\r
840         public void test_validate_assign_sucess_002() throws VlantagApiException {\r
841                 \r
842                 AssignVlanTagRequestInput input = new AssignVlanTagRequestInput();\r
843                 input.setPolicyInstanceName("some-policy-instance");\r
844                 input.setVlanType("vlan-id-outer");\r
845                 \r
846                 Elements element = new Elements();\r
847                 element.setElementVlanRole("element-vlan-role");\r
848                 element.setOverwrite("FALSE");\r
849                 element.setRecycleVlantagRange("TRUE");\r
850                 element.setVlantagName("VPE-Core2");\r
851                 \r
852                 List<AllowedRanges> allowedRanges = new ArrayList<>();\r
853                 AllowedRanges range = new AllowedRanges();\r
854                 range.setMin("200");\r
855                 range.setMax("300");\r
856                 allowedRanges.add(range );\r
857                 element.setAllowedRanges(allowedRanges);\r
858                 \r
859                 List<Elements> elements = new ArrayList<>();\r
860                 elements.add(element);\r
861                         \r
862                 ResourceModel model = new ResourceModel();\r
863                 model.setVlanType("vlan-id-outer");\r
864                 model.setResourceResolutionRecipe("#BSB# VPE-Core1, VPE-Core2, VPE-Core3 #ESB#");\r
865                 model.setScope("VPE");\r
866                 model.setElements(elements);\r
867                 \r
868                 List<ResourceModel> resourceModels = new ArrayList<>();\r
869                 resourceModels.add(model);\r
870                 \r
871                 \r
872                 service.validate(resourceModels, input);\r
873         }\r
874         \r
875         @Test\r
876         public void test_validate_unassign_failure_001() throws VlantagApiException {\r
877                 \r
878                 expectedEx.expect(VlantagApiException.class);\r
879                 expectedEx.expectMessage("No Resource Models available in Policy Manager for Policy Instance Name : some-policy-instance");\r
880                 \r
881                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
882                 input.setPolicyInstanceName("some-policy-instance");\r
883                 input.setVlanType("vlan-id-outer");\r
884                 \r
885                 List<ResourceModel> resourceModels = new ArrayList<>();\r
886                 \r
887                 service.validate(resourceModels, input);\r
888         }\r
889         \r
890         @Test(expected = Test.None.class /* no exception expected */)\r
891         public void test_validate_unassign_sucess_002() throws VlantagApiException {\r
892                 \r
893                 UnassignVlanTagRequestInput input = new UnassignVlanTagRequestInput();\r
894                 input.setPolicyInstanceName("some-policy-instance");\r
895                 input.setVlanType("vlan-id-outer");\r
896                 \r
897                 Elements element = new Elements();\r
898                 element.setElementVlanRole("element-vlan-role");\r
899                 element.setOverwrite("FALSE");\r
900                 element.setRecycleVlantagRange("TRUE");\r
901                 element.setVlantagName("VPE-Core2");\r
902                 \r
903                 List<AllowedRanges> allowedRanges = new ArrayList<>();\r
904                 AllowedRanges range = new AllowedRanges();\r
905                 range.setMin("200");\r
906                 range.setMax("300");\r
907                 allowedRanges.add(range );\r
908                 element.setAllowedRanges(allowedRanges);\r
909                 \r
910                 List<Elements> elements = new ArrayList<>();\r
911                 elements.add(element);\r
912                         \r
913                 ResourceModel model = new ResourceModel();\r
914                 model.setVlanType("vlan-id-outer");\r
915                 model.setResourceResolutionRecipe("#BSB# VPE-Core1, VPE-Core2, VPE-Core3 #ESB#");\r
916                 model.setScope("VPE");\r
917                 model.setElements(elements);\r
918                 \r
919                 List<ResourceModel> resourceModels = new ArrayList<>();\r
920                 resourceModels.add(model);\r
921                 \r
922                 \r
923                 service.validate(resourceModels, input);\r
924         }\r
925         \r
926            @Test(expected = VlantagApiException.class)\r
927             public void testGetPolicyFromPDPFailure() throws Exception {\r
928                 Mockito.doThrow(new VlantagApiException()).when(policyEngineSpy).getConfigUsingPost(any());\r
929                 policyEngineSpy.getPolicyFromPDP("sonme_random_policy_name");\r
930             }\r
931 }\r