978814be7fe8451b0ae06596ca476e632d5630fb
[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.Spy;
37 import org.mockito.junit.MockitoJUnitRunner;
38 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
39 import org.onap.aaiclient.client.aai.AAIObjectType;
40 import org.onap.aaiclient.client.aai.AAIResourcesClient;
41 import org.onap.aaiclient.client.aai.entities.AAIResultWrapper;
42 import org.onap.aaiclient.client.aai.entities.uri.AAIResourceUri;
43 import org.onap.aaiclient.client.aai.entities.uri.AAIUriFactory;
44
45 @RunWith(MockitoJUnitRunner.class)
46 public class AAICreateResourcesTest {
47
48     private AAICreateResources aaiCreateResources;
49
50     private String projectName;
51     private String serviceInstanceId;
52     private String owningEntityId;
53     private String owningEntityName;
54     private String platformName;
55     private String vnfId;
56     private String lineOfBusiness;
57     private String globalCustomerId;
58     private String serviceType;
59
60     @Spy
61     private AAIResourcesClient aaiResourcesClient;
62
63     @Before
64     public void before() {
65
66
67         aaiCreateResources = new AAICreateResources();
68         aaiCreateResources.setAaiClient(aaiResourcesClient);
69
70         projectName = "projectName";
71         serviceInstanceId = "serviceInstanceId";
72         owningEntityId = "owningEntityId";
73         owningEntityName = "owningEntityName";
74         platformName = "platformName";
75         vnfId = "vnfId";
76         lineOfBusiness = "lineOfBusiness";
77         globalCustomerId = "globalCustomerId";
78         serviceType = "serviceType";
79     }
80
81     @Test
82     public void createAAIProjectTest() {
83         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
84                 isA(Optional.class));
85         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
86
87
88         aaiCreateResources.createAAIProject(projectName, serviceInstanceId);
89
90         AAIResourceUri projectURI = AAIUriFactory.createResourceUri(AAIObjectType.PROJECT, projectName);
91
92         verify(aaiResourcesClient, times(1)).createIfNotExists(projectURI, Optional.empty());
93         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
94     }
95
96     @Test
97     public void createAAIOwningEntityTest() {
98         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
99                 isA(Optional.class));
100         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
101
102         aaiCreateResources.createAAIOwningEntity(owningEntityId, owningEntityName, serviceInstanceId);
103
104         HashMap<String, String> owningEntityMap = new HashMap<>();
105         owningEntityMap.put("owning-entity-name", owningEntityName);
106         AAIResourceUri owningEntityURI = AAIUriFactory.createResourceUri(AAIObjectType.OWNING_ENTITY, owningEntityId);
107
108         verify(aaiResourcesClient, times(1)).createIfNotExists(owningEntityURI, Optional.of(owningEntityMap));
109         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
110     }
111
112     @Test
113     public void existsOwningEntityTest() {
114         doReturn(true).when(aaiResourcesClient).exists(isA(AAIResourceUri.class));
115
116         boolean expectedBoolean = aaiCreateResources.existsOwningEntity(owningEntityId);
117
118         AAIResourceUri owningEntityURI = AAIUriFactory.createResourceUri(AAIObjectType.OWNING_ENTITY, owningEntityId);
119
120         verify(aaiResourcesClient, times(1)).exists(owningEntityURI);
121         assertTrue(expectedBoolean);
122     }
123
124     @Test
125     public void connectOwningEntityandServiceInstanceTest() {
126         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
127
128         aaiCreateResources.connectOwningEntityandServiceInstance(owningEntityId, serviceInstanceId);
129
130         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
131     }
132
133     @Test
134     public void createAAIPlatformTest() {
135         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
136                 isA(Optional.class));
137         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
138
139         aaiCreateResources.createAAIPlatform(platformName, vnfId);
140
141         AAIResourceUri platformURI = AAIUriFactory.createResourceUri(AAIObjectType.PLATFORM, platformName);
142
143         verify(aaiResourcesClient, times(1)).createIfNotExists(platformURI, Optional.empty());
144         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
145     }
146
147     @Test
148     public void createAAILineOfBusinessTest() {
149         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
150                 isA(Optional.class));
151         doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
152
153         aaiCreateResources.createAAILineOfBusiness(lineOfBusiness, vnfId);
154
155         AAIResourceUri lineOfBusinessURI =
156                 AAIUriFactory.createResourceUri(AAIObjectType.LINE_OF_BUSINESS, lineOfBusiness);
157
158         verify(aaiResourcesClient, times(1)).createIfNotExists(lineOfBusinessURI, Optional.empty());
159         verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
160     }
161
162     @Test
163     public void createAAIServiceInstanceTest() {
164         doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class),
165                 isA(Optional.class));
166
167         aaiCreateResources.createAAIServiceInstance(globalCustomerId, serviceType, serviceInstanceId);
168
169         AAIResourceUri serviceInstanceURI = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE,
170                 globalCustomerId, serviceType, serviceInstanceId);
171
172         verify(aaiResourcesClient, times(1)).createIfNotExists(serviceInstanceURI, Optional.empty());
173     }
174
175     @Test
176     public void getVnfInstanceTest() {
177         AAIResultWrapper aaiResultWrapper = new AAIResultWrapper("vnfUriAaiResponse");
178
179         doReturn(aaiResultWrapper).when(aaiResourcesClient).get(isA(AAIResourceUri.class));
180
181         Optional<GenericVnf> actualVnf = aaiCreateResources.getVnfInstance(vnfId);
182
183         AAIResourceUri vnfURI = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
184
185         verify(aaiResourcesClient, times(1)).get(vnfURI);
186         assertEquals(actualVnf, aaiResultWrapper.asBean(GenericVnf.class));
187     }
188
189     @Test
190     public void getVnfInstanceExceptionTest() {
191         doThrow(RuntimeException.class).when(aaiResourcesClient).get(isA(AAIResourceUri.class));
192
193         Optional<GenericVnf> actualVnf = aaiCreateResources.getVnfInstance(vnfId);
194
195         AAIResourceUri vnfURI = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
196
197         verify(aaiResourcesClient, times(1)).get(vnfURI);
198         assertEquals(actualVnf, Optional.empty());
199     }
200 }