Catalog alignment
[sdc.git] / catalog-be / src / test / java / org / openecomp / sdc / be / components / impl / ResourceBusinessLogicMockitoTest.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2019 Nokia. 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.openecomp.sdc.be.components.impl;
21
22 //import static org.junit.Assert.assertEquals;
23 //import static org.junit.Assert.assertTrue;
24 //
25 //import fj.data.Either;
26 //import java.util.ArrayList;
27 //import java.util.Collections;
28 //import java.util.HashMap;
29 //import java.util.List;
30 //import java.util.Map;
31 //import org.junit.Before;
32 //import org.junit.Test;
33 //import org.junit.runner.RunWith;
34 //import org.mockito.Mock;
35 //import org.mockito.Mockito;
36 //import org.mockito.junit.MockitoJUnitRunner;
37 //import org.openecomp.sdc.be.components.csar.CsarArtifactsAndGroupsBusinessLogic;
38 //import org.openecomp.sdc.be.components.csar.CsarBusinessLogic;
39 //import org.openecomp.sdc.be.components.csar.CsarInfo;
40 //import org.openecomp.sdc.be.components.impl.exceptions.ByActionStatusComponentException;
41 //import org.openecomp.sdc.be.components.impl.exceptions.ByResponseFormatComponentException;
42 //import org.openecomp.sdc.be.components.impl.generic.GenericTypeBusinessLogic;
43 //import org.openecomp.sdc.be.components.lifecycle.LifecycleBusinessLogic;
44 //import org.openecomp.sdc.be.components.merge.resource.ResourceDataMergeBusinessLogic;
45 //import org.openecomp.sdc.be.components.merge.utils.MergeInstanceUtils;
46 //import org.openecomp.sdc.be.components.validation.UserValidations;
47 //import org.openecomp.sdc.be.dao.api.ActionStatus;
48 //import org.openecomp.sdc.be.dao.jsongraph.JanusGraphDao;
49 //import org.openecomp.sdc.be.datamodel.utils.UiComponentDataConverter;
50 //import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
51 //import org.openecomp.sdc.be.datatypes.enums.NodeTypeEnum;
52 //import org.openecomp.sdc.be.datatypes.enums.ResourceTypeEnum;
53 //import org.openecomp.sdc.be.impl.ComponentsUtils;
54 //import org.openecomp.sdc.be.model.NodeTypeInfo;
55 //import org.openecomp.sdc.be.model.ParsedToscaYamlInfo;
56 //import org.openecomp.sdc.be.model.Resource;
57 //import org.openecomp.sdc.be.model.UploadComponentInstanceInfo;
58 //import org.openecomp.sdc.be.model.User;
59 //import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
60 //import org.openecomp.sdc.be.model.category.CategoryDefinition;
61 //import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
62 //import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ArtifactsOperations;
63 //import org.openecomp.sdc.be.model.jsonjanusgraph.operations.InterfaceOperation;
64 //import org.openecomp.sdc.be.model.jsonjanusgraph.operations.ToscaOperationFacade;
65 //import org.openecomp.sdc.be.model.operations.api.ICapabilityTypeOperation;
66 //import org.openecomp.sdc.be.model.operations.api.IElementOperation;
67 //import org.openecomp.sdc.be.model.operations.api.IGraphLockOperation;
68 //import org.openecomp.sdc.be.model.operations.api.IGroupInstanceOperation;
69 //import org.openecomp.sdc.be.model.operations.api.IGroupOperation;
70 //import org.openecomp.sdc.be.model.operations.api.IGroupTypeOperation;
71 //import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
72 //import org.openecomp.sdc.be.model.operations.impl.GroupInstanceOperation;
73 //import org.openecomp.sdc.be.model.operations.impl.GroupOperation;
74 //import org.openecomp.sdc.be.model.operations.impl.GroupTypeOperation;
75 //import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation;
76 //import org.openecomp.sdc.be.resources.data.auditing.AuditingActionEnum;
77 //import org.openecomp.sdc.exception.ResponseFormat;
78
79 //@RunWith(MockitoJUnitRunner.class)
80 public class ResourceBusinessLogicMockitoTest {
81
82 //    private static final String RESOURCE_NAME = "resourceName";
83 //    private static final String USER_ID = "userId";
84 //    private static final String VALIDATE_RESOURCE_NAME_EXISTS = "validate Resource Name Exists";
85 //    private static final String CSAR_UUID = "CsarUUID";
86 //    private static final String PAYLOAD = "PAYLOAD";
87 //    private static final String ANY = "ANY";
88 //
89 //    @Mock
90 //    private IElementOperation elementDao;
91 //    @Mock
92 //    private GroupOperation groupOperation;
93 //    @Mock
94 //    private GroupInstanceOperation groupInstanceOperation;
95 //    @Mock
96 //    private GroupTypeOperation groupTypeOperation;
97 //    @Mock
98 //    private GroupBusinessLogic groupBusinessLogic;
99 //    @Mock
100 //    private InterfaceOperation interfaceOperation;
101 //    @Mock
102 //    private InterfaceLifecycleOperation interfaceLifecycleTypeOperation;
103 //    @Mock
104 //    private ArtifactsBusinessLogic artifactsBusinessLogic;
105 //    @Mock
106 //    private ComponentInstanceBusinessLogic componentInstanceBusinessLogic;
107 //    @Mock
108 //    private ResourceImportManager resourceImportManager;
109 //    @Mock
110 //    private InputsBusinessLogic inputsBusinessLogic;
111 //    @Mock
112 //    private CompositionBusinessLogic compositionBusinessLogic;
113 //    @Mock
114 //    private ResourceDataMergeBusinessLogic resourceDataMergeBusinessLogic;
115 //    @Mock
116 //    private CsarArtifactsAndGroupsBusinessLogic csarArtifactsAndGroupsBusinessLogic;
117 //    @Mock
118 //    private MergeInstanceUtils mergeInstanceUtils;
119 //    @Mock
120 //    private UiComponentDataConverter uiComponentDataConverter;
121 //    @Mock
122 //    private CsarBusinessLogic csarBusinessLogic;
123 //    @Mock
124 //    private ArtifactsOperations artifactToscaOperation;
125 //    @Mock
126 //    private LifecycleBusinessLogic lifecycleManager;
127 //    @Mock
128 //    private ApplicationDataTypeCache applicationDataTypeCache;
129 //    @Mock
130 //    private ComponentsUtils componentUtils;
131 //    @Mock
132 //    private ICapabilityTypeOperation capabilityTypeOperation;
133 //    @Mock
134 //    private UserValidations userValidations;
135 //    @Mock
136 //    private User user;
137 //    @Mock
138 //    private ToscaOperationFacade toscaOperationFacade;
139 //    @Mock
140 //    private JanusGraphDao janusGraphDao;
141 //    @Mock
142 //    private CsarInfo csarInfo;
143 //    @Mock
144 //    private Map<String, NodeTypeInfo> nodeTypeInfo;
145 //    @Mock
146 //    private ParsedToscaYamlInfo parsedToscaYamlInfo;
147 //    @Mock
148 //    private IGraphLockOperation graphLockOperation;
149 //    @Mock
150 //    private GenericTypeBusinessLogic genericTypeBusinessLogic;
151 //
152 //    private ResourceBusinessLogic resourceBusinessLogic;
153 //
154 //    @Before
155 //    public void setUp() throws Exception {
156 //        resourceBusinessLogic = new ResourceBusinessLogic(elementDao,
157 //            groupOperation,
158 //            groupInstanceOperation,
159 //            groupTypeOperation,
160 //            groupBusinessLogic,
161 //            interfaceOperation,
162 //            interfaceLifecycleTypeOperation,
163 //            artifactsBusinessLogic,
164 //            componentInstanceBusinessLogic,
165 //            resourceImportManager,
166 //            inputsBusinessLogic,
167 //            compositionBusinessLogic,
168 //            resourceDataMergeBusinessLogic,
169 //            csarArtifactsAndGroupsBusinessLogic,
170 //            mergeInstanceUtils,
171 //            uiComponentDataConverter,
172 //            csarBusinessLogic,
173 //            artifactToscaOperation);
174 //
175 //        resourceBusinessLogic.setLifecycleManager(lifecycleManager);
176 //        resourceBusinessLogic.setApplicationDataTypeCache(applicationDataTypeCache);
177 //        resourceBusinessLogic.setComponentsUtils(componentUtils);
178 //        resourceBusinessLogic.setCapabilityTypeOperation(capabilityTypeOperation);
179 //        resourceBusinessLogic.setUserValidations(userValidations);
180 //        resourceBusinessLogic.setToscaOperationFacade(toscaOperationFacade);
181 //        resourceBusinessLogic.setJanusGraphDao(janusGraphDao);
182 //        resourceBusinessLogic.setGraphLockOperation(graphLockOperation);
183 //        resourceBusinessLogic.setGenericTypeBusinessLogic(genericTypeBusinessLogic);
184 //    }
185 //
186 //    @Test
187 //    public void testGetters() {
188 //        assertEquals(resourceBusinessLogic.getComponentInstanceBL(), componentInstanceBusinessLogic);
189 //        assertEquals(resourceBusinessLogic.getElementDao(), elementDao);
190 //        assertEquals(resourceBusinessLogic.getLifecycleBusinessLogic(), lifecycleManager);
191 //        assertEquals(resourceBusinessLogic.getApplicationDataTypeCache(), applicationDataTypeCache);
192 //        assertEquals(resourceBusinessLogic.getComponentsUtils(), componentUtils);
193 //        assertEquals(resourceBusinessLogic.getCapabilityTypeOperation(), capabilityTypeOperation);
194 //    }
195 //
196 //    @Test
197 //    public void shouldValidateResourceNameExistsIfDataModelResponseIsRight() {
198 //        Mockito.when(userValidations.validateUserExists(USER_ID, false)).thenReturn(user);
199 //        Mockito.when(toscaOperationFacade.validateComponentNameUniqueness(RESOURCE_NAME, ResourceTypeEnum.ABSTRACT, ComponentTypeEnum.RESOURCE)).thenReturn(Either.right(StorageOperationStatus.DECLARED_INPUT_USED_BY_OPERATION));
200 //        Mockito.when(componentUtils.convertFromStorageResponse(StorageOperationStatus.DECLARED_INPUT_USED_BY_OPERATION)).thenReturn(ActionStatus.DECLARED_INPUT_USED_BY_OPERATION);
201 //        Either<Map<String, Boolean>, ResponseFormat> response = resourceBusinessLogic
202 //            .validateResourceNameExists(RESOURCE_NAME, ResourceTypeEnum.ABSTRACT, USER_ID);
203 //        assertTrue(response.isRight());
204 //    }
205 //
206 //    @Test(expected = ByResponseFormatComponentException.class)
207 //    public void shouldThrowExceptionOnCreateResourceIfCsarUUIDIsNotEmptyIfAlreadyExist() {
208 //        Mockito.when(elementDao
209 //            .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions()));
210 //        Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true));
211 //        Resource resource = getResource();
212 //        Map<String, byte[]> csarUIPayload = Collections.emptyMap();
213 //        Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo);
214 //        Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo);
215 //        Map<String, UploadComponentInstanceInfo> nonEmptyMap = new HashMap<>();
216 //        nonEmptyMap.put(ANY, new UploadComponentInstanceInfo());
217 //        resource.setResourceType(ResourceTypeEnum.ABSTRACT);
218 //        Mockito.when(graphLockOperation.lockComponentByName(Mockito.any(), Mockito.any())).thenReturn(StorageOperationStatus.OK);
219 //        Mockito.when(parsedToscaYamlInfo.getInstances()).thenReturn(nonEmptyMap);
220 //        Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn(
221 //            parsedToscaYamlInfo);
222 //        Mockito.when(toscaOperationFacade.validateComponentNameExists(
223 //            resource.getName(), resource.getResourceType(), resource.getComponentType())).thenReturn(Either.left(true));
224 //        Mockito.when(genericTypeBusinessLogic.fetchDerivedFromGenericType(Mockito.any())).thenReturn(Either.left(resource));
225 //        resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD);
226 //    }
227 //
228 //    @Test(expected = ByResponseFormatComponentException.class)
229 //    public void shouldThrowExceptionOnCreateResourceIfCsarUUIDIsNotEmptyButComponentNameNotExists() {
230 //        Mockito.when(elementDao
231 //            .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions()));
232 //        Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true));
233 //        Resource resource = getResource();
234 //        Map<String, byte[]> csarUIPayload = Collections.emptyMap();
235 //        Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo);
236 //        Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo);
237 //        Map<String, UploadComponentInstanceInfo> nonEmptyMap = new HashMap<>();
238 //        nonEmptyMap.put(ANY, new UploadComponentInstanceInfo());
239 //        resource.setResourceType(ResourceTypeEnum.ABSTRACT);
240 //        Mockito.when(graphLockOperation.lockComponentByName(Mockito.any(), Mockito.any())).thenReturn(StorageOperationStatus.OK);
241 //        Mockito.when(parsedToscaYamlInfo.getInstances()).thenReturn(nonEmptyMap);
242 //        Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn(
243 //            parsedToscaYamlInfo);
244 //        Mockito.when(toscaOperationFacade.validateComponentNameExists(
245 //            resource.getName(), resource.getResourceType(), resource.getComponentType())).thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND));
246 //        Mockito.when(genericTypeBusinessLogic.fetchDerivedFromGenericType(Mockito.any())).thenReturn(Either.left(resource));
247 //        resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD);
248 //    }
249 //
250 //    @Test(expected = ByActionStatusComponentException.class)
251 //    public void shouldThrowExceptionOnCreateResourceIfCsarUUIDIsNotEmptyButEmptyDerivedFromGenericType() {
252 //        Mockito.when(elementDao
253 //            .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions()));
254 //        Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true));
255 //        Resource resource = getResource();
256 //        Map<String, byte[]> csarUIPayload = Collections.emptyMap();
257 //        Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo);
258 //        Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo);
259 //        Map<String, UploadComponentInstanceInfo> nonEmptyMap = new HashMap<>();
260 //        nonEmptyMap.put(ANY, new UploadComponentInstanceInfo());
261 //        resource.setResourceType(ResourceTypeEnum.ABSTRACT);
262 //        Mockito.when(graphLockOperation.lockComponentByName(Mockito.any(), Mockito.any())).thenReturn(StorageOperationStatus.OK);
263 //        Mockito.when(parsedToscaYamlInfo.getInstances()).thenReturn(nonEmptyMap);
264 //        Mockito.when(genericTypeBusinessLogic.fetchDerivedFromGenericType(Mockito.any())).thenReturn(Either.right(new ResponseFormat()));
265 //        Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn(
266 //            parsedToscaYamlInfo);
267 //        resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD);
268 //    }
269 //
270 //    @Test(expected = ByResponseFormatComponentException.class)
271 //    public void shouldThrowExceptionOnCreateResourceIfCsarUUIDIsNotEmptyButInvalidLockResponse() {
272 //        Mockito.when(elementDao
273 //            .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions()));
274 //        Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true));
275 //        Resource resource = getResource();
276 //        Map<String, byte[]> csarUIPayload = Collections.emptyMap();
277 //        Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo);
278 //        Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo);
279 //        Map<String, UploadComponentInstanceInfo> nonEmptyMap = new HashMap<>();
280 //        nonEmptyMap.put(ANY, new UploadComponentInstanceInfo());
281 //        resource.setResourceType(ResourceTypeEnum.ABSTRACT);
282 //        Mockito.when(parsedToscaYamlInfo.getInstances()).thenReturn(nonEmptyMap);
283 //        Mockito.when(graphLockOperation.lockComponentByName(Mockito.any(), Mockito.any())).thenReturn(StorageOperationStatus.BAD_REQUEST);
284 //        Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn(
285 //            parsedToscaYamlInfo);
286 //        resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD);
287 //    }
288 //
289 //
290 //    @Test(expected = ByActionStatusComponentException.class)
291 //    public void shouldThrowExceptionOnNonPnfResource() {
292 //        Mockito.when(elementDao
293 //            .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions()));
294 //        Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.left(true));
295 //        Resource resource = getResource();
296 //        Map<String, byte[]> csarUIPayload = Collections.emptyMap();
297 //        Mockito.when(csarBusinessLogic.getCsarInfo(resource, null, user, csarUIPayload, PAYLOAD)).thenReturn(csarInfo);
298 //        Mockito.when(csarInfo.extractNodeTypesInfo()).thenReturn(nodeTypeInfo);
299 //        Mockito.when(csarBusinessLogic.getParsedToscaYamlInfo(null, null, nodeTypeInfo, csarInfo, null)).thenReturn(
300 //            parsedToscaYamlInfo);
301 //        resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, csarUIPayload, PAYLOAD);
302 //    }
303 //
304 //    @Test(expected = ByActionStatusComponentException.class)
305 //    public void shouldThrowExceptionOnFailedToRetrieveResourceCategoriesFromJanusGraph() {
306 //        Mockito.when(elementDao
307 //            .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.right(ActionStatus.ARTIFACT_NOT_FOUND));
308 //        Resource resource = getResource();
309 //        resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, Collections.emptyMap(), PAYLOAD);
310 //    }
311 //
312 //    @Test(expected = ByActionStatusComponentException.class)
313 //    public void shouldThrowExceptionOnRightDataModelResponse() {
314 //        Mockito.when(elementDao
315 //            .getAllCategories(NodeTypeEnum.ResourceNewCategory, false)).thenReturn(Either.left(getCategoryDefinitions()));
316 //        Mockito.when(toscaOperationFacade.validateToscaResourceNameExists(Mockito.any())).thenReturn(Either.right(StorageOperationStatus.ARTIFACT_NOT_FOUND));
317 //        Resource resource = getResource();
318 //        resourceBusinessLogic.createResource(resource, AuditingActionEnum.ADD_USER, user, Collections.emptyMap(), PAYLOAD);
319 //    }
320 //
321 //    private Resource getResource() {
322 //        Resource resource = new Resource();
323 //        resource.setCsarUUID(CSAR_UUID);
324 //        resource.setName(ANY);
325 //        resource.setDescription(ANY);
326 //        resource.setCategories(getCategoryDefinitions());
327 //        resource.setVendorName(ANY);
328 //        resource.setVendorRelease(ANY);
329 //        List<String> tags = new ArrayList<>();
330 //        tags.add(ANY);
331 //        resource.setTags(tags);
332 //        resource.setContactId(ANY);
333 //        resource.setIcon(ANY);
334 //        List<String> derivedFrom = new ArrayList<>();
335 //        derivedFrom.add(ANY);
336 //        resource.setDerivedFrom(derivedFrom);
337 //        return resource;
338 //    }
339 //
340 //    private List<CategoryDefinition> getCategoryDefinitions() {
341 //        List<CategoryDefinition> categories = new ArrayList<>();
342 //        CategoryDefinition categoryDefinition = new CategoryDefinition();
343 //        categoryDefinition.setName(ANY);
344 //        SubCategoryDefinition subcategory = new SubCategoryDefinition();
345 //        subcategory.setName(ANY);
346 //        categoryDefinition.addSubCategory(subcategory);
347 //        categories.add(categoryDefinition);
348 //        return categories;
349 //    }
350 }