Springboot 2.0 upgrade
[so.git] / bpmn / so-bpmn-infrastructure-common / src / test / java / org / onap / so / bpmn / infrastructure / aai / AAICreateResourcesTest.java
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
32 import java.util.HashMap;
33 import java.util.Optional;
34
35 import org.junit.Before;
36 import org.junit.Test;
37 import org.junit.runner.RunWith;
38 import org.mockito.Mock;
39 import org.mockito.MockitoAnnotations;
40 import org.mockito.Spy;
41 import org.mockito.junit.MockitoJUnitRunner;
42 import org.onap.so.bpmn.servicedecomposition.bbobjects.GenericVnf;
43 import org.onap.so.client.aai.AAIObjectType;
44 import org.onap.so.client.aai.AAIResourcesClient;
45 import org.onap.so.client.aai.entities.AAIResultWrapper;
46 import org.onap.so.client.aai.entities.uri.AAIResourceUri;
47 import org.onap.so.client.aai.entities.uri.AAIUriFactory;
48
49 @RunWith(MockitoJUnitRunner.class)
50 public class AAICreateResourcesTest {
51         
52         private AAICreateResources aaiCreateResources;
53         
54         private String projectName;
55         private String serviceInstanceId;
56         private String owningEntityId;
57         private String owningEntityName;
58         private String platformName;
59         private String vnfId;
60         private String lineOfBusiness;
61         private String globalCustomerId;
62         private String serviceType;
63         
64         @Spy
65         private AAIResourcesClient aaiResourcesClient;
66         
67         @Before
68         public void before() {
69                 
70                 
71                 aaiCreateResources = new AAICreateResources();
72                 aaiCreateResources.setAaiClient(aaiResourcesClient);
73                 
74                 projectName = "projectName";
75                 serviceInstanceId = "serviceInstanceId";
76                 owningEntityId = "owningEntityId";
77                 owningEntityName = "owningEntityName";
78                 platformName = "platformName";
79                 vnfId = "vnfId";
80                 lineOfBusiness = "lineOfBusiness";
81                 globalCustomerId = "globalCustomerId";
82                 serviceType = "serviceType";
83         }
84         
85         @Test
86         public void createAAIProjectTest() {
87                 doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class), isA(Optional.class));
88                 doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
89                 
90
91                 aaiCreateResources.createAAIProject(projectName, serviceInstanceId);
92                 
93                 AAIResourceUri projectURI = AAIUriFactory.createResourceUri(AAIObjectType.PROJECT, projectName);
94                 
95                 verify(aaiResourcesClient, times(1)).createIfNotExists(projectURI, Optional.empty());
96                 verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
97         }
98         
99         @Test
100         public void createAAIOwningEntityTest() {
101                 doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class), 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), isA(Optional.class));
138                 doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
139
140                 aaiCreateResources.createAAIPlatform(platformName, vnfId);
141                 
142                 AAIResourceUri platformURI = AAIUriFactory.createResourceUri(AAIObjectType.PLATFORM, platformName);
143                 
144                 verify(aaiResourcesClient, times(1)).createIfNotExists(platformURI, Optional.empty());
145                 verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
146         }
147         
148         @Test
149         public void createAAILineOfBusinessTest() {
150                 doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class), isA(Optional.class));
151                 doNothing().when(aaiResourcesClient).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
152
153                 aaiCreateResources.createAAILineOfBusiness(lineOfBusiness, vnfId);
154                 
155                 AAIResourceUri lineOfBusinessURI = AAIUriFactory.createResourceUri(AAIObjectType.LINE_OF_BUSINESS, lineOfBusiness);
156                 
157                 verify(aaiResourcesClient, times(1)).createIfNotExists(lineOfBusinessURI, Optional.empty());
158                 verify(aaiResourcesClient, times(1)).connect(isA(AAIResourceUri.class), isA(AAIResourceUri.class));
159         }
160         
161         @Test
162         public void createAAIServiceInstanceTest() {
163                 doReturn(aaiResourcesClient).when(aaiResourcesClient).createIfNotExists(isA(AAIResourceUri.class), isA(Optional.class));
164                 
165                 aaiCreateResources.createAAIServiceInstance(globalCustomerId, serviceType, serviceInstanceId);
166                 
167                 AAIResourceUri serviceInstanceURI = AAIUriFactory.createResourceUri(AAIObjectType.SERVICE_INSTANCE, globalCustomerId,serviceType,serviceInstanceId);
168                 
169                 verify(aaiResourcesClient, times(1)).createIfNotExists(serviceInstanceURI, Optional.empty());
170         }
171         
172         @Test
173         public void getVnfInstanceTest() {
174                 AAIResultWrapper aaiResultWrapper = new AAIResultWrapper("vnfUriAaiResponse");
175                 
176                 doReturn(aaiResultWrapper).when(aaiResourcesClient).get(isA(AAIResourceUri.class));
177                 
178                 Optional<GenericVnf> actualVnf = aaiCreateResources.getVnfInstance(vnfId);
179                 
180                 AAIResourceUri vnfURI = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
181                 
182                 verify(aaiResourcesClient, times(1)).get(vnfURI);
183                 assertEquals(actualVnf, aaiResultWrapper.asBean(GenericVnf.class));
184         }
185         
186         @Test
187         public void getVnfInstanceExceptionTest() {
188                 doThrow(RuntimeException.class).when(aaiResourcesClient).get(isA(AAIResourceUri.class));
189                 
190                 Optional<GenericVnf> actualVnf = aaiCreateResources.getVnfInstance(vnfId);
191                 
192                 AAIResourceUri vnfURI = AAIUriFactory.createResourceUri(AAIObjectType.GENERIC_VNF, vnfId);
193                 
194                 verify(aaiResourcesClient, times(1)).get(vnfURI);
195                 assertEquals(actualVnf, Optional.empty());
196         }
197 }