289d97108f2928d14807111c13f0f25bd05b8a4a
[so.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP - SO
4  * ================================================================================
5  * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.so.bpmn.infrastructure.aai;
22
23 import static org.junit.Assert.assertEquals;
24 import static org.junit.Assert.assertTrue;
25 import static org.mockito.ArgumentMatchers.isA;
26 import static org.mockito.Mockito.doNothing;
27 import static org.mockito.Mockito.doReturn;
28 import static org.mockito.Mockito.doThrow;
29 import static org.mockito.Mockito.times;
30 import static org.mockito.Mockito.verify;
31 import java.util.HashMap;
32 import java.util.Optional;
33 import org.junit.Before;
34 import org.junit.Test;
35 import org.junit.runner.RunWith;
36 import org.mockito.Mock;
37 import org.mockito.MockitoAnnotations;
38 import org.mockito.Spy;
39 import org.mockito.junit.MockitoJUnitRunner;
40 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
41 import org.onap.so.client.aai.AAIObjectType;
42 import org.onap.so.client.aai.AAIResourcesClient;
43 import org.onap.so.client.aai.entities.AAIResultWrapper;
44 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
45 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
46
47 @RunWith(MockitoJUnitRunner.class)
48 public class AAICreateResourcesTest {
49
50     private AAICreateResources aaiCreateResources;
51
52     private String projectName;
53     private String serviceInstanceId;
54     private String owningEntityId;
55     private String owningEntityName;
56     private String platformName;
57     private String vnfId;
58     private String lineOfBusiness;
59     private String globalCustomerId;
60     private String serviceType;
61
62     @Spy
63     private AAIResourcesClient aaiResourcesClient;
64
65     @Before
66     public void before() {
67
68
69         aaiCreateResources = new AAICreateResources();
70         aaiCreateResources.setAaiClient(aaiResourcesClient);
71
72         projectName = "projectName";
73         serviceInstanceId = "serviceInstanceId";
74         owningEntityId = "owningEntityId";
75         owningEntityName = "owningEntityName";
76         platformName = "platformName";
77         vnfId = "vnfId";
78         lineOfBusiness = "lineOfBusiness";
79         globalCustomerId = "globalCustomerId";
80         serviceType = "serviceType";
81     }
82
83     @Test
84     public void createAAIProjectTest() {
85         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
86                 isA(Optional.class));
87         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
88
89
90         aaiCreateResources.createAAIProject(projectName, serviceInstanceId);
91
92         AAIResourceUri projectURI = AAIUriFactory.createResourceUri(AAIObjectType.PROJECT, projectName);
93
94         verify(aaiResourcesClient, times(1)).createIfNotExists(projectURI, Optional.empty());
95         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
96     }
97
98     @Test
99     public void createAAIOwningEntityTest() {
100         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
101                 isA(Optional.class));
102         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
103
104         aaiCreateResources.createAAIOwningEntity(owningEntityId, owningEntityName, serviceInstanceId);
105
106         HashMap<String, String> owningEntityMap = new HashMap<>();
107         owningEntityMap.put("owning-entity-name", owningEntityName);
108         AAIResourceUri owningEntityURI = AAIUriFactory.createResourceUri(AAIObjectType.OWNING_ENTITY, owningEntityId);
109
110         verify(aaiResourcesClient, times(1)).createIfNotExists(owningEntityURI, Optional.of(owningEntityMap));
111         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
112     }
113
114     @Test
115     public void existsOwningEntityTest() {
116         doReturn(true).when(aaiResourcesClient).exists(isA(AAIResourceUri.class));
117
118         boolean expectedBoolean = aaiCreateResources.existsOwningEntity(owningEntityId);
119
120         AAIResourceUri owningEntityURI = AAIUriFactory.createResourceUri(AAIObjectType.OWNING_ENTITY, owningEntityId);
121
122         verify(aaiResourcesClient, times(1)).exists(owningEntityURI);
123         assertTrue(expectedBoolean);
124     }
125
126     @Test
127     public void connectOwningEntityandServiceInstanceTest() {
128         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
129
130         aaiCreateResources.connectOwningEntityandServiceInstance(owningEntityId, serviceInstanceId);
131
132         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
133     }
134
135     @Test
136     public void createAAIPlatformTest() {
137         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
138                 isA(Optional.class));
139         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
140
141         aaiCreateResources.createAAIPlatform(platformName, vnfId);
142
143         AAIResourceUri platformURI = AAIUriFactory.createResourceUri(AAIObjectType.PLATFORM, platformName);
144
145         verify(aaiResourcesClient, times(1)).createIfNotExists(platformURI, Optional.empty());
146         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
147     }
148
149     @Test
150     public void createAAILineOfBusinessTest() {
151         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
152                 isA(Optional.class));
153         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
154
155         aaiCreateResources.createAAILineOfBusiness(lineOfBusiness, vnfId);
156
157         AAIResourceUri lineOfBusinessURI =
158                 AAIUriFactory.createResourceUri(AAIObjectType.LINE_OF_BUSINESS, lineOfBusiness);
159
160         verify(aaiResourcesClient, times(1)).createIfNotExists(lineOfBusinessURI, Optional.empty());
161         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
162     }
163
164     @Test
165     public void createAAIServiceInstanceTest() {
166         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
167                 isA(Optional.class));
168
169         aaiCreateResources.createAAIServiceInstance(globalCustomerId, serviceType, serviceInstanceId);
170
171         AAIResourceUri serviceInstanceURI = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
172                 globalCustomerId, serviceType, serviceInstanceId);
173
174         verify(aaiResourcesClient, times(1)).createIfNotExists(serviceInstanceURI, Optional.empty());
175     }
176
177     @Test
178     public void getVnfInstanceTest() {
179         AAIResultWrapper aaiResultWrapper = new AAIResultWrapper("vnfUriAaiResponse");
180
181         doReturn(aaiResultWrapper).when(aaiResourcesClient).get(isA(AAIResourceUri.class));
182
183         Optional<GenericVnf> actualVnf = aaiCreateResources.getVnfInstance(vnfId);
184
185         AAIResourceUri vnfURI = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
186
187         verify(aaiResourcesClient, times(1)).get(vnfURI);
188         assertEquals(actualVnf, aaiResultWrapper.asBean(GenericVnf.class));
189     }
190
191     @Test
192     public void getVnfInstanceExceptionTest() {
193         doThrow(RuntimeException.class).when(aaiResourcesClient).get(isA(AAIResourceUri.class));
194
195         Optional<GenericVnf> actualVnf = aaiCreateResources.getVnfInstance(vnfId);
196
197         AAIResourceUri vnfURI = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
198
199         verify(aaiResourcesClient, times(1)).get(vnfURI);
200         assertEquals(actualVnf, Optional.empty());
201     }
202 }