1 package org.openecomp.sdc.be.tosca;
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.HashMap;
9 import org.apache.commons.lang3.tuple.ImmutablePair;
10 import org.apache.commons.lang3.tuple.Triple;
11 import org.junit.Assert;
12 import org.junit.Before;
13 import org.junit.Ignore;
14 import org.junit.Test;
15 import org.mockito.InjectMocks;
16 import org.mockito.Mock;
17 import org.mockito.Mockito;
18 import org.mockito.MockitoAnnotations;
19 import org.openecomp.sdc.be.components.BeConfDependentTest;
20 import org.openecomp.sdc.be.dao.titan.TitanOperationStatus;
21 import org.openecomp.sdc.be.datatypes.elements.ForwardingPathDataDefinition;
22 import org.openecomp.sdc.be.datatypes.elements.ForwardingPathElementDataDefinition;
23 import org.openecomp.sdc.be.datatypes.elements.ListDataDefinition;
24 import org.openecomp.sdc.be.datatypes.elements.RequirementDataDefinition;
25 import org.openecomp.sdc.be.datatypes.enums.ComponentTypeEnum;
26 import org.openecomp.sdc.be.datatypes.enums.OriginTypeEnum;
27 import org.openecomp.sdc.be.model.ArtifactDefinition;
28 import org.openecomp.sdc.be.model.CapabilityDefinition;
29 import org.openecomp.sdc.be.model.CapabilityRequirementRelationship;
30 import org.openecomp.sdc.be.model.Component;
31 import org.openecomp.sdc.be.model.ComponentInstance;
32 import org.openecomp.sdc.be.model.ComponentInstanceInput;
33 import org.openecomp.sdc.be.model.ComponentInstanceProperty;
34 import org.openecomp.sdc.be.model.ComponentParametersView;
35 import org.openecomp.sdc.be.model.DataTypeDefinition;
36 import org.openecomp.sdc.be.model.GroupDefinition;
37 import org.openecomp.sdc.be.model.GroupInstance;
38 import org.openecomp.sdc.be.model.InputDefinition;
39 import org.openecomp.sdc.be.model.InterfaceDefinition;
40 import org.openecomp.sdc.be.model.PropertyDefinition;
41 import org.openecomp.sdc.be.model.RelationshipInfo;
42 import org.openecomp.sdc.be.model.RequirementCapabilityRelDef;
43 import org.openecomp.sdc.be.model.RequirementDefinition;
44 import org.openecomp.sdc.be.model.Resource;
45 import org.openecomp.sdc.be.model.Service;
46 import org.openecomp.sdc.be.model.cache.ApplicationDataTypeCache;
47 import org.openecomp.sdc.be.model.category.CategoryDefinition;
48 import org.openecomp.sdc.be.model.category.SubCategoryDefinition;
49 import org.openecomp.sdc.be.model.jsontitan.operations.ToscaOperationFacade;
50 import org.openecomp.sdc.be.model.operations.api.StorageOperationStatus;
51 import org.openecomp.sdc.be.model.operations.impl.InterfaceLifecycleOperation;
52 import org.openecomp.sdc.be.tosca.model.SubstitutionMapping;
53 import org.openecomp.sdc.be.tosca.model.ToscaCapability;
54 import org.openecomp.sdc.be.tosca.model.ToscaMetadata;
55 import org.openecomp.sdc.be.tosca.model.ToscaNodeTemplate;
56 import org.openecomp.sdc.be.tosca.model.ToscaNodeType;
57 import org.openecomp.sdc.be.tosca.model.ToscaTemplate;
58 import org.openecomp.sdc.be.tosca.model.ToscaTemplateRequirement;
59 import org.openecomp.sdc.be.tosca.model.ToscaTopolgyTemplate;
61 import fj.data.Either;
62 import mockit.Deencapsulation;
63 import org.openecomp.sdc.be.tosca.utils.InputConverter;
65 public class ToscaExportHandlerTest extends BeConfDependentTest {
68 ToscaExportHandler testSubject;
71 ApplicationDataTypeCache dataTypeCache;
74 ToscaOperationFacade toscaOperationFacade;
77 CapabilityRequirementConverter capabiltyRequirementConvertor;
80 InputConverter inputConverter;
83 GroupExportParser groupExportParser;
86 GroupExportParserImpl groupExportParserImpl;
89 InterfaceLifecycleOperation interfaceLifecycleOperation;
92 public void setUpMock() throws Exception {
93 MockitoAnnotations.initMocks(this);
96 private Resource getNewResource() {
97 Resource resource = new Resource();
98 List<CategoryDefinition> categories = new ArrayList<>();
99 CategoryDefinition category = new CategoryDefinition();
100 List<SubCategoryDefinition> subcategories = new ArrayList<>();
101 SubCategoryDefinition subcategory = new SubCategoryDefinition();
103 subcategory.setName("name");
104 subcategories.add(subcategory);
105 category.setName("name");
106 category.setSubcategories(subcategories);
107 categories.add(category);
109 resource.setCategories(categories);
110 resource.setVersion("version");
111 resource.setVendorName("vendorName");
112 resource.setVendorRelease("vendorRelease");
113 resource.setResourceVendorModelNumber("resourceVendorModelNumber");
118 private Service getNewService() {
119 Service service = new Service();
120 List<CategoryDefinition> categories = new ArrayList<>();
121 CategoryDefinition category = new CategoryDefinition();
122 List<SubCategoryDefinition> subcategories = new ArrayList<>();
123 SubCategoryDefinition subcategory = new SubCategoryDefinition();
125 subcategory.setName("name");
126 subcategories.add(subcategory);
127 category.setName("name");
128 category.setSubcategories(subcategories);
129 categories.add(category);
131 service.setCategories(categories);
132 service.setComponentType(ComponentTypeEnum.SERVICE);
133 service.setServiceType("serviceType");
134 service.setServiceRole("serviceRole");
135 service.setEnvironmentContext("environmentContext");
141 public void testExportComponent() throws Exception {
142 Component component = getNewResource();
143 Either<ToscaRepresentation, ToscaError> result;
145 Mockito.when(dataTypeCache.getAll()).thenReturn(Either.left(new HashMap<>()));
146 Mockito.when(capabiltyRequirementConvertor.convertRequirements(Mockito.any(Map.class), Mockito.any(Resource.class),
147 Mockito.any(ToscaNodeType.class))).thenReturn(Either.left(new ToscaNodeType()));
148 Mockito.when(interfaceLifecycleOperation.getAllInterfaceLifecycleTypes())
149 .thenReturn(Either.left(Collections.emptyMap()));
151 // default test when component is Resource
152 result = testSubject.exportComponent(component);
154 component = getNewService();
155 Mockito.when(capabiltyRequirementConvertor.convertRequirements(Mockito.any(Map.class),Mockito.any(Service.class),
156 Mockito.any(ToscaNodeType.class))).thenReturn(Either.left(new ToscaNodeType()));
157 Mockito.when(dataTypeCache.getAll()).thenReturn(Either.right(TitanOperationStatus.NOT_FOUND));
159 // default test when component is Service
160 result = testSubject.exportComponent(component);
164 public void testExportComponentInterface() throws Exception {
165 Component component = getNewResource();
166 Either<ToscaRepresentation, ToscaError> result;
168 ((Resource) component).setInterfaces(new HashMap<>());
170 Mockito.when(dataTypeCache.getAll()).thenReturn(Either.right(TitanOperationStatus.NOT_FOUND));
171 Mockito.when(interfaceLifecycleOperation.getAllInterfaceLifecycleTypes()).thenReturn(Either.left(Collections.emptyMap()));
172 // default test when convertInterfaceNodeType is right
173 result = testSubject.exportComponentInterface(component, false);
175 Mockito.when(dataTypeCache.getAll()).thenReturn(Either.left(new HashMap<>()));
176 Mockito.when(capabiltyRequirementConvertor.convertRequirements(Mockito.any(Map.class),Mockito.any(Resource.class),
177 Mockito.any(ToscaNodeType.class))).thenReturn(Either.left(new ToscaNodeType()));
179 // default test when convertInterfaceNodeType is left
180 result = testSubject.exportComponentInterface(component, false);
185 public void testCreateToscaRepresentation() throws Exception {
186 ToscaTemplate toscaTemplate = new ToscaTemplate("");
187 ToscaRepresentation result;
190 result = testSubject.createToscaRepresentation(toscaTemplate);
194 public void testGetDependencies() throws Exception {
196 Component component = new Resource();
197 Either<ToscaTemplate, ToscaError> result;
200 result = testSubject.getDependencies(component);
204 public void testConvertToscaTemplate() throws Exception {
206 Component component = getNewResource();
207 ToscaTemplate toscaNode = new ToscaTemplate("");
208 Either<ToscaTemplate, ToscaError> result;
209 List<ComponentInstance> resourceInstances = new ArrayList<>();
210 ComponentInstance instance = new ComponentInstance();
212 instance.setOriginType(OriginTypeEnum.SERVICE);
213 instance.setSourceModelUid("targetModelUid");
214 resourceInstances.add(instance);
216 component.setComponentInstances(resourceInstances);
218 Mockito.when(dataTypeCache.getAll()).thenReturn(Either.left(new HashMap<>()));
219 Mockito.when(capabiltyRequirementConvertor.getOriginComponent(Mockito.any(Map.class),
220 Mockito.any(ComponentInstance.class))).thenReturn(Either.right(false));
223 result = Deencapsulation.invoke(testSubject, "convertToscaTemplate", component, toscaNode);
226 @Ignore("need to solve problem with groupExportParser injection")
228 public void testConvertToscaTemplateWhenComponentContainsGroup() {
229 Component component = getNewResource();
230 ToscaTemplate toscaNode = new ToscaTemplate("");
231 Either<ToscaTemplate, ToscaError> result;
232 component.setComponentInstances(new ArrayList<>());
234 List<GroupDefinition> groups = new ArrayList<>();
235 GroupDefinition group = new GroupDefinition();
236 List<String> artifacts = new ArrayList<>();
237 artifacts.add("artifact");
238 group.setType("org.openecomp.groups.VfModule");
239 group.setArtifacts(artifacts);
241 component.setGroups(groups);
243 Map<String, String[]> substitutionMappingMap = new HashMap<>();
244 String[] array = { "value1", "value2" };
245 substitutionMappingMap.put("key", array);
247 Mockito.when(capabiltyRequirementConvertor.convertSubstitutionMappingCapabilities(Mockito.any(Map.class),
248 Mockito.any(Component.class))).thenReturn(Either.left(substitutionMappingMap));
250 Mockito.when(capabiltyRequirementConvertor.convertSubstitutionMappingRequirements(Mockito.any(Map.class),
251 Mockito.any(Component.class), Mockito.any(SubstitutionMapping.class)))
252 .thenReturn(Either.left(new SubstitutionMapping()));
254 Mockito.when(dataTypeCache.getAll()).thenReturn(Either.left(new HashMap<>()));
256 Mockito.when(inputConverter.convertInputs(Mockito.any(List.class),Mockito.any(Map.class)))
257 .thenReturn(new HashMap<>());
259 Mockito.when(groupExportParser.getGroups(component))
262 // test component contains group
263 result = Deencapsulation.invoke(testSubject, "convertToscaTemplate", component, toscaNode);
266 @Ignore("need to solve problem with groupExportParser injection")
268 public void testConvertToscaTemplateWhenComponentIsService() throws Exception {
269 Component component = getNewService();
270 ToscaTemplate toscaNode = new ToscaTemplate("");
271 Either<ToscaTemplate, ToscaError> result;
272 component.setComponentInstances(new ArrayList<>());
274 List<GroupDefinition> groups = new ArrayList<>();
275 GroupDefinition group = new GroupDefinition();
276 List<String> artifacts = new ArrayList<>();
277 artifacts.add("artifact");
278 group.setType("org.openecomp.groups.VfModule");
279 group.setArtifacts(artifacts);
281 component.setGroups(groups);
283 Map<String, String[]> substitutionMappingMap = new HashMap<>();
284 String[] array = { "value1", "value2" };
285 substitutionMappingMap.put("key", array);
287 Mockito.when(capabiltyRequirementConvertor.convertSubstitutionMappingCapabilities(Mockito.any(Map.class),
288 Mockito.any(Component.class))).thenReturn(Either.left(substitutionMappingMap));
290 Mockito.when(capabiltyRequirementConvertor.convertSubstitutionMappingRequirements(Mockito.any(Map.class),
291 Mockito.any(Component.class), Mockito.any(SubstitutionMapping.class)))
292 .thenReturn(Either.left(new SubstitutionMapping()));
294 Mockito.when(dataTypeCache.getAll()).thenReturn(Either.left(new HashMap<>()));
296 Mockito.when(inputConverter.convertInputs(Mockito.any(List.class),Mockito.any(Map.class)))
297 .thenReturn(new HashMap<>());
298 // test component contains group
299 result = Deencapsulation.invoke(testSubject, "convertToscaTemplate", component, toscaNode);
303 public void testConvertMetadata_1() throws Exception {
305 Component component = getNewResource();
306 boolean isInstance = true;
307 ComponentInstance componentInstance = new ComponentInstance();
308 componentInstance.setOriginType(OriginTypeEnum.ServiceProxy);
309 componentInstance.setSourceModelInvariant("targetModelInvariant");
311 ToscaMetadata result;
315 result = Deencapsulation.invoke(testSubject, "convertMetadata", component, isInstance, componentInstance);
319 public void testFillImports() throws Exception {
321 Component component = getNewService();
322 ToscaTemplate toscaTemplate = new ToscaTemplate("");
323 Either<ImmutablePair<ToscaTemplate, Map<String, Component>>, ToscaError> result;
325 ComponentInstance instance = new ComponentInstance();
326 List<ComponentInstance> resourceInstances = new ArrayList<>();
327 instance.setComponentUid("name");
328 resourceInstances.add(instance);
329 component.setComponentInstances(resourceInstances);
330 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
331 ArtifactDefinition artifact = new ArtifactDefinition();
332 artifact.setArtifactName("name.name2");
333 toscaArtifacts.put("assettoscatemplate", artifact);
334 component.setToscaArtifacts(toscaArtifacts);
336 Mockito.when(toscaOperationFacade.getToscaFullElement(Mockito.any(String.class)))
337 .thenReturn(Either.left(component));
340 result = Deencapsulation.invoke(testSubject, "fillImports", component, toscaTemplate);
344 public void testCreateDependency() throws Exception {
346 Map<String, Component> componentCache = new HashMap<>();
347 List<Map<String, Map<String, String>>> imports = new ArrayList<>();
348 List<Triple<String, String, Component>> dependecies = new ArrayList<>();
349 ComponentInstance ci = new ComponentInstance();
350 Component component = getNewResource();
352 Map<String, ArtifactDefinition> toscaArtifacts = new HashMap<>();
353 ArtifactDefinition artifact = new ArtifactDefinition();
354 artifact.setArtifactName("name.name2");
355 toscaArtifacts.put("assettoscatemplate", artifact);
356 component.setToscaArtifacts(toscaArtifacts);
357 ci.setComponentUid("name");
358 ci.setOriginType(OriginTypeEnum.ServiceProxy);
359 ci.setSourceModelUid("modelName");
361 Mockito.when(toscaOperationFacade.getToscaFullElement(Mockito.eq("name"))).thenReturn(Either.left(component));
363 Mockito.when(toscaOperationFacade.getToscaFullElement(Mockito.eq("modelName")))
364 .thenReturn(Either.left(new Service()));
367 Deencapsulation.invoke(testSubject, "createDependency", componentCache, imports, dependecies, ci);
371 public void testGetInterfaceFilename() throws Exception {
372 String artifactName = "artifact.name";
376 result = ToscaExportHandler.getInterfaceFilename(artifactName);
380 public void testConvertNodeType() throws Exception {
381 Component component = new Resource();
382 ToscaTemplate toscaNode = new ToscaTemplate("");
383 Map<String, ToscaNodeType> nodeTypes = new HashMap<>();
384 Either<ToscaTemplate, ToscaError> result;
386 Mockito.when(dataTypeCache.getAll()).thenReturn(Either.right(TitanOperationStatus.ALREADY_EXIST));
387 Mockito.when(interfaceLifecycleOperation.getAllInterfaceLifecycleTypes())
388 .thenReturn(Either.left(Collections.emptyMap()));
390 result = Deencapsulation.invoke(testSubject, "convertNodeType",new HashMap<>(), component, toscaNode, nodeTypes);
394 public void testConvertInterfaceNodeType() throws Exception {
395 Component component = getNewResource();
396 ToscaTemplate toscaNode = new ToscaTemplate("");
397 Map<String, ToscaNodeType> nodeTypes = new HashMap<>();
398 Either<ToscaTemplate, ToscaError> result;
399 List<InputDefinition> inputs = new ArrayList<>();
400 inputs.add(new InputDefinition());
401 component.setInputs(inputs);
403 Mockito.when(dataTypeCache.getAll()).thenReturn(Either.left(new HashMap<>()));
404 Mockito.when(interfaceLifecycleOperation.getAllInterfaceLifecycleTypes()).thenReturn(Either.left(Collections.emptyMap()));
406 Mockito.when(capabiltyRequirementConvertor.convertRequirements(Mockito.any(Map.class), Mockito.any(Resource.class),
407 Mockito.any(ToscaNodeType.class))).thenReturn(Either.left(new ToscaNodeType()));
410 result = Deencapsulation.invoke(testSubject, "convertInterfaceNodeType",new HashMap<>(), component, toscaNode
413 @Ignore("need to fix change in injected class.")
415 public void testConvertReqCapAndTypeName() throws Exception {
416 Component component = new Resource();
417 ToscaTemplate toscaNode = new ToscaTemplate("");
418 Map<String, ToscaNodeType> nodeTypes = new HashMap();
419 ToscaNodeType toscaNodeType = new ToscaNodeType();
420 Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
421 Either<ToscaTemplate, ToscaError> result;
424 capabiltyRequirementConvertor.convertCapabilities(Mockito.any(Map.class),Mockito.any(Resource.class), Mockito.any(Map.class)))
425 .thenReturn(new HashMap<>());
427 Mockito.when(capabiltyRequirementConvertor.convertRequirements(Mockito.any(Map.class),Mockito.any(Resource.class),
428 Mockito.any(ToscaNodeType.class))).thenReturn(Either.left(new ToscaNodeType()));
431 result = Deencapsulation.invoke(testSubject, "convertReqCapAndTypeName",new HashMap<>(), component, toscaNode, nodeTypes,
432 toscaNodeType, dataTypes);
434 component = new Service();
436 Mockito.when(capabiltyRequirementConvertor.convertRequirements(Mockito.any(Map.class),Mockito.any(Service.class),
437 Mockito.any(ToscaNodeType.class))).thenReturn(Either.left(new ToscaNodeType()));
439 // test when component is service
440 result = Deencapsulation.invoke(testSubject, "convertReqCapAndTypeName", component, toscaNode, nodeTypes,
441 toscaNodeType, dataTypes);
446 public void testConvertNodeTemplates() throws Exception {
447 Component component = getNewResource();
448 List<ComponentInstance> componentInstances = new ArrayList<>();
449 Map<String, List<ComponentInstanceProperty>> componentInstancesProperties = new HashMap<>();
450 Map<String, Component> componentCache = new HashMap<>();
451 Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
452 ToscaTopolgyTemplate topologyTemplate = new ToscaTopolgyTemplate();
453 Either<Map<String, ToscaNodeTemplate>, ToscaError> result;
454 Map<String, List<ComponentInstanceInput>> componentInstancesInputs = new HashMap<>();
455 List<ComponentInstanceInput> inputs = new ArrayList<>();
456 inputs.add(new ComponentInstanceInput());
457 componentInstancesInputs.put("key", inputs);
458 List<RequirementCapabilityRelDef> resourceInstancesRelations = new ArrayList<>();
459 RequirementCapabilityRelDef reldef = new RequirementCapabilityRelDef();
460 reldef.setFromNode("node");
461 resourceInstancesRelations.add(reldef);
462 component.setComponentInstancesRelations(resourceInstancesRelations);
464 ComponentInstance instance = new ComponentInstance();
465 instance.setUniqueId("id");
466 instance.setComponentUid("uid");
467 instance.setOriginType(OriginTypeEnum.ServiceProxy);
468 List<GroupInstance> groupInstances = new ArrayList<>();
469 GroupInstance groupInst = new GroupInstance();
470 List<String> artifacts = new ArrayList<>();
471 artifacts.add("artifact");
472 groupInst.setArtifacts(artifacts);
473 groupInst.setType("type");
474 groupInstances.add(groupInst);
475 instance.setGroupInstances(groupInstances);
476 componentInstances.add(instance);
478 component.setComponentInstancesInputs(componentInstancesInputs);
479 component.setInvariantUUID("uuid");
480 component.setUUID("uuid");
481 component.setDescription("desc");
483 componentCache.put("uid", component);
485 componentInstancesProperties.put("id", new ArrayList<>());
486 componentInstancesInputs.put("id", new ArrayList<>());
488 Mockito.when(capabiltyRequirementConvertor.getOriginComponent(Mockito.any(Map.class),
489 Mockito.any(ComponentInstance.class))).thenReturn(Either.left(component));
491 Mockito.when(capabiltyRequirementConvertor.convertComponentInstanceCapabilities(
492 Mockito.any(ComponentInstance.class), Mockito.any(Map.class), Mockito.any(ToscaNodeTemplate.class)))
493 .thenReturn(Either.left(new ToscaNodeTemplate()));
496 result = Deencapsulation.invoke(testSubject, "convertNodeTemplates", component, componentInstances,
497 componentInstancesProperties, componentCache, dataTypes, topologyTemplate);
501 public void testConvertNodeTemplatesWhenComponentIsService() throws Exception {
502 Component component = getNewService();
503 List<ComponentInstance> componentInstances = new ArrayList<>();
504 Map<String, List<ComponentInstanceProperty>> componentInstancesProperties = new HashMap<>();
505 Map<String, List<ComponentInstanceProperty>> componentInstancesInterfaces = new HashMap<>();
506 Map<String, Component> componentCache = new HashMap<>();
507 Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
508 ToscaTopolgyTemplate topologyTemplate = new ToscaTopolgyTemplate();
509 Either<Map<String, ToscaNodeTemplate>, ToscaError> result;
510 Map<String, List<ComponentInstanceInput>> componentInstancesInputs = new HashMap<>();
511 List<ComponentInstanceInput> inputs = new ArrayList<>();
512 inputs.add(new ComponentInstanceInput());
513 componentInstancesInputs.put("key", inputs);
514 List<RequirementCapabilityRelDef> resourceInstancesRelations = new ArrayList<>();
515 RequirementCapabilityRelDef reldef = new RequirementCapabilityRelDef();
516 reldef.setFromNode("node");
517 resourceInstancesRelations.add(reldef);
518 component.setComponentInstancesRelations(resourceInstancesRelations);
520 ComponentInstance instance = new ComponentInstance();
521 instance.setUniqueId("id");
522 instance.setComponentUid("uid");
523 instance.setOriginType(OriginTypeEnum.ServiceProxy);
524 List<GroupInstance> groupInstances = new ArrayList<>();
525 GroupInstance groupInst = new GroupInstance();
526 List<String> artifacts = new ArrayList<>();
527 artifacts.add("artifact");
528 groupInst.setArtifacts(artifacts);
529 groupInst.setType("type");
530 groupInstances.add(groupInst);
531 instance.setGroupInstances(groupInstances);
532 componentInstances.add(instance);
534 component.setComponentInstancesInputs(componentInstancesInputs);
535 component.setInvariantUUID("uuid");
536 component.setUUID("uuid");
537 component.setDescription("desc");
539 Map<String, ForwardingPathDataDefinition> forwardingPaths = new HashMap<>();
540 ForwardingPathDataDefinition path = new ForwardingPathDataDefinition();
541 ListDataDefinition<ForwardingPathElementDataDefinition> list = new ListDataDefinition<>();
542 path.setPathElements(list);
543 forwardingPaths.put("key", path);
545 ((Service) component).setForwardingPaths(forwardingPaths);
547 componentCache.put("uid", component);
549 componentInstancesProperties.put("id", new ArrayList<>());
550 componentInstancesInterfaces.put("id", new ArrayList<>());
551 componentInstancesInputs.put("id", new ArrayList<>());
553 Mockito.when(capabiltyRequirementConvertor.getOriginComponent(Mockito.any(Map.class),
554 Mockito.any(ComponentInstance.class))).thenReturn(Either.left(component));
556 Mockito.when(capabiltyRequirementConvertor.convertComponentInstanceCapabilities(
557 Mockito.any(ComponentInstance.class), Mockito.any(Map.class), Mockito.any(ToscaNodeTemplate.class)))
558 .thenReturn(Either.left(new ToscaNodeTemplate()));
561 result = Deencapsulation.invoke(testSubject, "convertNodeTemplates", component, componentInstances,
562 componentInstancesProperties, componentInstancesInterfaces, componentCache, dataTypes, topologyTemplate);
566 public void testConvertNodeTemplatesWhenConvertComponentInstanceCapabilitiesIsRight() throws Exception {
567 Component component = getNewResource();
568 List<ComponentInstance> componentInstances = new ArrayList<>();
569 Map<String, List<ComponentInstanceProperty>> componentInstancesProperties = new HashMap<>();
570 Map<String, List<ComponentInstanceProperty>> componentInstancesInterfaces = new HashMap<>();
571 Map<String, Component> componentCache = new HashMap<>();
572 Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
573 ToscaTopolgyTemplate topologyTemplate = new ToscaTopolgyTemplate();
574 Either<Map<String, ToscaNodeTemplate>, ToscaError> result;
575 Map<String, List<ComponentInstanceInput>> componentInstancesInputs = new HashMap<>();
576 List<ComponentInstanceInput> inputs = new ArrayList<>();
577 inputs.add(new ComponentInstanceInput());
578 componentInstancesInputs.put("key", inputs);
579 List<RequirementCapabilityRelDef> resourceInstancesRelations = new ArrayList<>();
580 RequirementCapabilityRelDef reldef = new RequirementCapabilityRelDef();
581 reldef.setFromNode("node");
582 resourceInstancesRelations.add(reldef);
583 component.setComponentInstancesRelations(resourceInstancesRelations);
585 ComponentInstance instance = new ComponentInstance();
586 instance.setUniqueId("id");
587 instance.setComponentUid("uid");
588 instance.setOriginType(OriginTypeEnum.ServiceProxy);
589 componentInstances.add(instance);
591 component.setComponentInstancesInputs(componentInstancesInputs);
592 component.setInvariantUUID("uuid");
593 component.setUUID("uuid");
594 component.setDescription("desc");
596 componentCache.put("uid", component);
598 Mockito.when(capabiltyRequirementConvertor.getOriginComponent(Mockito.any(Map.class),
599 Mockito.any(ComponentInstance.class))).thenReturn(Either.left(component));
601 Mockito.when(capabiltyRequirementConvertor.convertComponentInstanceCapabilities(
602 Mockito.any(ComponentInstance.class), Mockito.any(Map.class), Mockito.any(ToscaNodeTemplate.class)))
603 .thenReturn(Either.right(ToscaError.GENERAL_ERROR));
606 result = Deencapsulation.invoke(testSubject, "convertNodeTemplates", component, componentInstances,
607 componentInstancesProperties, componentInstancesInterfaces, componentCache, dataTypes, topologyTemplate);
611 public void testConvetNodeTemplateWhenGetOriginComponentIsRight() throws Exception {
612 Component component = getNewResource();
613 List<ComponentInstance> componentInstances = new ArrayList<>();
614 Map<String, List<ComponentInstanceProperty>> componentInstancesProperties = new HashMap<>();
615 Map<String, List<ComponentInstanceProperty>> componentInstancesInterfaces = new HashMap<>();
616 Map<String, Component> componentCache = new HashMap<>();
617 Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
618 ToscaTopolgyTemplate topologyTemplate = new ToscaTopolgyTemplate();
619 Either<Map<String, ToscaNodeTemplate>, ToscaError> result;
620 Map<String, List<ComponentInstanceInput>> componentInstancesInputs = new HashMap<>();
621 List<ComponentInstanceInput> inputs = new ArrayList<>();
622 inputs.add(new ComponentInstanceInput());
623 componentInstancesInputs.put("key", inputs);
624 List<RequirementCapabilityRelDef> resourceInstancesRelations = new ArrayList<>();
625 RequirementCapabilityRelDef reldef = new RequirementCapabilityRelDef();
626 reldef.setFromNode("id");
627 resourceInstancesRelations.add(reldef);
628 component.setComponentInstancesRelations(resourceInstancesRelations);
630 ComponentInstance instance = new ComponentInstance();
631 instance.setUniqueId("id");
632 instance.setComponentUid("uid");
633 instance.setOriginType(OriginTypeEnum.ServiceProxy);
634 componentInstances.add(instance);
636 component.setComponentInstancesInputs(componentInstancesInputs);
637 component.setInvariantUUID("uuid");
638 component.setUUID("uuid");
639 component.setDescription("desc");
641 componentCache.put("uid", component);
643 Mockito.when(capabiltyRequirementConvertor.getOriginComponent(Mockito.any(Map.class),
644 Mockito.any(ComponentInstance.class))).thenReturn(Either.right(false));
647 result = Deencapsulation.invoke(testSubject, "convertNodeTemplates", component, componentInstances,
648 componentInstancesProperties, componentInstancesInterfaces, componentCache, dataTypes, topologyTemplate);
652 public void testConvertNodeTemplatesWhenConvertComponentInstanceRequirmentsIsRight() {
653 Component component = new Resource();
654 List<ComponentInstance> componentInstances = new ArrayList<>();
655 Map<String, List<ComponentInstanceProperty>> componentInstancesProperties = new HashMap<>();
656 Map<String, List<ComponentInstanceProperty>> componentInstancesInterfaces = new HashMap<>();
657 Map<String, Component> componentCache = new HashMap<>();
658 Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
659 ToscaTopolgyTemplate topologyTemplate = new ToscaTopolgyTemplate();
660 Either<Map<String, ToscaNodeTemplate>, ToscaError> result;
661 Map<String, List<ComponentInstanceInput>> componentInstancesInputs = new HashMap<>();
662 List<ComponentInstanceInput> inputs = new ArrayList<>();
663 inputs.add(new ComponentInstanceInput());
664 componentInstancesInputs.put("key", inputs);
665 List<RequirementCapabilityRelDef> resourceInstancesRelations = new ArrayList<>();
666 RequirementCapabilityRelDef reldef = new RequirementCapabilityRelDef();
667 reldef.setFromNode("id");
668 reldef.setToNode("node");
669 List<CapabilityRequirementRelationship> relationships = new ArrayList<>();
670 CapabilityRequirementRelationship relationship = new CapabilityRequirementRelationship();
671 relationship.setRelation(new RelationshipInfo());
672 relationships.add(relationship);
673 reldef.setRelationships(relationships);
674 resourceInstancesRelations.add(reldef);
675 component.setComponentInstancesRelations(resourceInstancesRelations);
677 ComponentInstance instance = new ComponentInstance();
678 instance.setUniqueId("id");
679 componentInstances.add(instance);
681 component.setComponentInstancesInputs(componentInstancesInputs);
682 component.setComponentInstances(componentInstances);
684 Mockito.when(capabiltyRequirementConvertor.getOriginComponent(Mockito.any(Map.class),
685 Mockito.any(ComponentInstance.class))).thenReturn(Either.left(component));
688 result = Deencapsulation.invoke(testSubject, "convertNodeTemplates", component, componentInstances,
689 componentInstancesProperties, componentInstancesInterfaces, componentCache, dataTypes, topologyTemplate);
693 public void testAddComponentInstanceInputs() throws Exception {
695 Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
696 Map<String, List<ComponentInstanceInput>> componentInstancesInputs = new HashMap<>();
697 ComponentInstance componentInstance = new ComponentInstance();
698 String instanceUniqueId = "id";
699 Map<String, Object> props = new HashMap<>();
701 List<ComponentInstanceInput> componentInstanceInputs = new ArrayList<>();
702 componentInstanceInputs.add(new ComponentInstanceInput());
704 componentInstancesInputs.put(instanceUniqueId, componentInstanceInputs);
707 Deencapsulation.invoke(testSubject, "addComponentInstanceInputs", dataTypes, componentInstancesInputs,
708 instanceUniqueId, props);
712 public void testAddPropertiesOfComponentInstance() throws Exception {
713 Map<String, List<ComponentInstanceProperty>> componentInstancesProperties = new HashMap<>();
714 Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
715 ComponentInstance componentInstance = new ComponentInstance();
716 String instanceUniqueId = "id";
717 Map<String, Object> props = new HashMap<>();
719 ComponentInstanceProperty cip = new ComponentInstanceProperty();
720 cip.setInstanceUniqueId("id");
722 List<ComponentInstanceProperty> list = new ArrayList<>();
725 componentInstancesProperties.put("id", list);
728 Deencapsulation.invoke(testSubject, "addPropertiesOfComponentInstance", componentInstancesProperties, dataTypes,
729 instanceUniqueId, props);
733 public void testAddPropertiesOfParentComponent() throws Exception {
734 Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
735 ComponentInstance componentInstance = new ComponentInstance();
736 Component componentOfInstance = new Resource();
737 Map<String, Object> props = new HashMap<>();
739 List<PropertyDefinition> properties = new ArrayList<>();
740 properties.add(new PropertyDefinition());
742 ((Resource) componentOfInstance).setProperties(properties);
745 Deencapsulation.invoke(testSubject, "addPropertiesOfParentComponent", dataTypes,
746 componentOfInstance, props);
751 public void testCreateNodeType() throws Exception {
753 Component component = new Resource();
754 List<String> array = new ArrayList<>();
756 ((Resource) component).setDerivedFrom(array);
757 ToscaNodeType result;
759 // test when component is resource
760 result = Deencapsulation.invoke(testSubject, "createNodeType", component);
762 component = new Service();
763 // test when component is service
764 result = Deencapsulation.invoke(testSubject, "createNodeType", component);
768 public void testCreateProxyInterfaceTypesComponentNotFound() throws Exception {
769 Component container = new Service();
770 Either<Map<String, ToscaNodeType>, ToscaError> result;
771 List<ComponentInstance> componentInstances = new ArrayList<>();
772 ComponentInstance instance = new ComponentInstance();
773 instance.setOriginType(OriginTypeEnum.ServiceProxy);
774 instance.setSourceModelUid("targetModelUid");
775 instance.setToscaComponentName("toscaComponentName");
777 componentInstances.add(instance);
778 container.setComponentInstances(componentInstances);
779 Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class),
780 Mockito.any(ComponentParametersView.class)))
781 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
782 result = Deencapsulation.invoke(testSubject, "createProxyInterfaceTypes", container);
783 Assert.assertTrue(result.isRight());
788 public void testCreateProxyInterfaceTypesWhenInterfaceLifecycleFetchFailed() {
789 Component container = new Service();
790 Either<Map<String, ToscaNodeType>, ToscaError> result;
791 List<ComponentInstance> componentInstances = new ArrayList<>();
792 ComponentInstance instance = new ComponentInstance();
793 instance.setOriginType(OriginTypeEnum.ServiceProxy);
794 instance.setSourceModelUid("targetModelUid");
795 instance.setToscaComponentName("toscaComponentName");
796 componentInstances.add(instance);
797 container.setComponentInstances(componentInstances);
799 Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class),
800 Mockito.any(ComponentParametersView.class)))
801 .thenReturn(Either.left(new Resource()));
802 Mockito.when(interfaceLifecycleOperation.getAllInterfaceLifecycleTypes())
803 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
804 result = Deencapsulation.invoke(testSubject, "createProxyInterfaceTypes", container);
805 Assert.assertTrue(result.isRight());
809 public void testCreateProxyInterfaceTypesPositive() {
810 Component container = new Service();
811 Either<Map<String, ToscaNodeType>, ToscaError> result;
812 List<ComponentInstance> componentInstances = new ArrayList<>();
813 ComponentInstance instance = new ComponentInstance();
814 instance.setOriginType(OriginTypeEnum.ServiceProxy);
815 instance.setSourceModelUid("targetModelUid");
816 instance.setToscaComponentName("toscaComponentName");
817 componentInstances.add(instance);
818 container.setComponentInstances(componentInstances);
820 Mockito.when(interfaceLifecycleOperation.getAllInterfaceLifecycleTypes())
821 .thenReturn(Either.left(Collections.emptyMap()));
823 Component proxyResource = new Resource();
824 Map<String, InterfaceDefinition> proxyInterfaces = new HashMap<>();
825 proxyInterfaces.put("Local", new InterfaceDefinition("Local", "desc", new HashMap<>()));
826 proxyResource.setInterfaces(proxyInterfaces);
827 Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class),
828 Mockito.any(ComponentParametersView.class)))
829 .thenReturn(Either.left(proxyResource));
831 result = Deencapsulation.invoke(testSubject, "createProxyInterfaceTypes", container);
832 Assert.assertTrue(result.isLeft());
833 Assert.assertEquals(1, result.left().value().size());
837 public void testCreateProxyNodeTypes() throws Exception {
838 Map<String, Component> componentCache = new HashMap<>();
839 Component container = new Resource();
840 Either<Map<String, ToscaNodeType>, ToscaError> result;
841 List<ComponentInstance> componentInstances = new ArrayList<>();
842 ComponentInstance instance = new ComponentInstance();
843 instance.setOriginType(OriginTypeEnum.ServiceProxy);
844 instance.setSourceModelUid("targetModelUid");
846 componentInstances.add(instance);
847 container.setComponentInstances(componentInstances);
849 Mockito.when(toscaOperationFacade.getLatestByName("serviceProxy"))
850 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
852 // test when getLatestByName return is right
853 result = Deencapsulation.invoke(testSubject, "createProxyNodeTypes", componentCache, container);
858 public void testCreateProxyNodeTypesWhenGetLatestByNameReturnValue() {
859 Map<String, Component> componentCache = new HashMap<>();
860 Component container = new Resource();
861 Either<Map<String, ToscaNodeType>, ToscaError> result;
862 List<ComponentInstance> componentInstances = new ArrayList<>();
863 ComponentInstance instance = new ComponentInstance();
864 instance.setOriginType(OriginTypeEnum.ServiceProxy);
865 instance.setSourceModelUid("targetModelUid");
867 componentInstances.add(instance);
868 container.setComponentInstances(componentInstances);
870 Mockito.when(toscaOperationFacade.getLatestByName("serviceProxy")).thenReturn(Either.left(new Resource()));
872 ComponentParametersView parameterView = new ComponentParametersView();
873 parameterView.disableAll();
874 parameterView.setIgnoreCategories(false);
876 Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class),
877 Mockito.any(ComponentParametersView.class)))
878 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
880 Mockito.when(dataTypeCache.getAll()).thenReturn(Either.left(new HashMap<>()));
882 // test when getLatestByName is left
883 result = Deencapsulation.invoke(testSubject, "createProxyNodeTypes", componentCache, container);
887 public void testCreateProxyNodeType() throws Exception {
888 Map<String, Component> componentCache = new HashMap<>();
889 Component origComponent = new Resource();
890 Component proxyComponent = new Resource();
891 ComponentInstance instance = new ComponentInstance();
892 ToscaNodeType result;
894 Mockito.when(dataTypeCache.getAll()).thenReturn(Either.left(new HashMap<>()));
897 result = Deencapsulation.invoke(testSubject, "createProxyNodeType", componentCache, origComponent,
898 proxyComponent, instance);
902 public void testConvertComponentInstanceRequirements() throws Exception {
903 Component component = new Resource();
904 ComponentInstance componentInstance = new ComponentInstance();
905 List<RequirementCapabilityRelDef> relations = new ArrayList<>();
906 ToscaNodeTemplate nodeTypeTemplate = new ToscaNodeTemplate();
907 Component originComponent = new Resource();
908 Map<String, Component> componentCache = new HashMap<>();
909 Either<ToscaNodeTemplate, ToscaError> result;
912 result = Deencapsulation.invoke(testSubject, "convertComponentInstanceRequirements", component,
913 componentInstance, relations, nodeTypeTemplate, originComponent, componentCache);
915 RequirementCapabilityRelDef reldef = new RequirementCapabilityRelDef();
916 reldef.setFromNode("name");
917 reldef.setToNode("name1");
918 List<CapabilityRequirementRelationship> relationships = new ArrayList<>();
919 CapabilityRequirementRelationship cap = new CapabilityRequirementRelationship();
920 cap.setRelation(new RelationshipInfo());
921 relationships.add(cap);
922 reldef.setRelationships(relationships);
923 relations.add(reldef);
924 componentInstance.setUniqueId("name");
926 List<ComponentInstance> instances = new ArrayList<>();
927 instances.add(componentInstance);
928 component.setComponentInstances(instances);
930 // test when filteredRElations ins't empty
931 result = Deencapsulation.invoke(testSubject, "convertComponentInstanceRequirements", component,
932 componentInstance, relations, nodeTypeTemplate, originComponent, componentCache);
936 public void testAddRequirement() throws Exception {
937 ComponentInstance fromInstance = new ComponentInstance();
938 Component fromOriginComponent = new Resource();
939 List<ComponentInstance> instancesList = new ArrayList<>();
940 RequirementCapabilityRelDef rel = new RequirementCapabilityRelDef();
941 List<Map<String, ToscaTemplateRequirement>> toscaRequirements = new ArrayList<>();
942 Map<String, Component> componentCache = new HashMap<>();
945 List<CapabilityRequirementRelationship> relationships = new ArrayList<>();
946 CapabilityRequirementRelationship cap = new CapabilityRequirementRelationship();
947 cap.setRequirement(new RequirementDataDefinition());
948 RelationshipInfo relation = new RelationshipInfo();
949 relation.setRequirementUid("Uid");
950 relation.setRequirement("requirment");
951 relation.setCapability("cap");
952 relation.setCapabilityOwnerId("id1");
953 cap.setRelation(relation);
954 relationships.add(cap);
955 rel.setRelationships(relationships);
956 rel.setToNode("name");
957 fromInstance.setUniqueId("name");
958 fromInstance.setComponentUid("string");
959 instancesList.add(fromInstance);
960 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
961 fromOriginComponent.setRequirements(requirements);
964 result = Deencapsulation.invoke(testSubject, "addRequirement", fromInstance, fromOriginComponent, instancesList,
965 rel, toscaRequirements, componentCache);
970 public void testAddRequirmentsWhenFindRequirmentsReturnsValue() {
972 ComponentInstance fromInstance = new ComponentInstance();
973 Component fromOriginComponent = new Resource();
974 List<ComponentInstance> instancesList = new ArrayList<>();
975 RequirementCapabilityRelDef rel = new RequirementCapabilityRelDef();
976 List<Map<String, ToscaTemplateRequirement>> toscaRequirements = new ArrayList<>();
977 Map<String, Component> componentCache = new HashMap<>();
980 List<CapabilityRequirementRelationship> relationships = new ArrayList<>();
981 CapabilityRequirementRelationship cap = new CapabilityRequirementRelationship();
982 cap.setRequirement(new RequirementDataDefinition());
983 RelationshipInfo relation = new RelationshipInfo();
984 relation.setRequirementUid("Uid");
985 relation.setRequirement("requirment");
986 relation.setCapability("cap");
987 relation.setCapabilityOwnerId("id1");
988 cap.setRelation(relation);
989 relationships.add(cap);
990 rel.setRelationships(relationships);
991 rel.setToNode("name");
992 fromInstance.setUniqueId("name");
993 fromInstance.setComponentUid("string");
994 instancesList.add(fromInstance);
995 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
997 List<RequirementDefinition> defs = new ArrayList<>();
998 RequirementDefinition def = new RequirementDefinition();
999 def.setName("requirment");
1000 def.setCapability("cap");
1002 requirements.put("key", defs);
1003 fromOriginComponent.setRequirements(requirements);
1005 Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class),
1006 Mockito.any(ComponentParametersView.class)))
1007 .thenReturn(Either.right(StorageOperationStatus.BAD_REQUEST));
1010 result = Deencapsulation.invoke(testSubject, "addRequirement", fromInstance, fromOriginComponent, instancesList,
1011 rel, toscaRequirements, componentCache);
1015 public void testAddRequirmentsWhenCapabilityBelongsToRelation() {
1016 ComponentInstance fromInstance = new ComponentInstance();
1017 Component fromOriginComponent = new Resource();
1018 List<ComponentInstance> instancesList = new ArrayList<>();
1019 RequirementCapabilityRelDef rel = new RequirementCapabilityRelDef();
1020 List<Map<String, ToscaTemplateRequirement>> toscaRequirements = new ArrayList<>();
1021 Map<String, Component> componentCache = new HashMap<>();
1024 List<CapabilityRequirementRelationship> relationships = new ArrayList<>();
1025 CapabilityRequirementRelationship cap = new CapabilityRequirementRelationship();
1026 cap.setRequirement(new RequirementDataDefinition());
1027 RelationshipInfo relation = new RelationshipInfo();
1028 relation.setRequirementUid("Uid");
1029 relation.setRequirement("requirment");
1030 relation.setCapability("cap");
1031 relation.setCapabilityOwnerId("id1");
1032 cap.setRelation(relation);
1033 relationships.add(cap);
1034 rel.setRelationships(relationships);
1035 rel.setToNode("name");
1036 fromInstance.setUniqueId("name");
1037 fromInstance.setComponentUid("string");
1038 instancesList.add(fromInstance);
1039 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
1041 List<RequirementDefinition> defs = new ArrayList<>();
1042 RequirementDefinition def = new RequirementDefinition();
1043 def.setName("requirment");
1044 def.setCapability("cap");
1046 requirements.put("key", defs);
1047 fromOriginComponent.setRequirements(requirements);
1049 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
1050 List<CapabilityDefinition> caps = new ArrayList<>();
1051 CapabilityDefinition capdef = new CapabilityDefinition();
1052 capdef.setOwnerId("id");
1053 capdef.setName("name");
1054 capdef.setType("type");
1056 capabilities.put("cap", caps);
1058 fromOriginComponent.setCapabilities(capabilities);
1060 Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class),
1061 Mockito.any(ComponentParametersView.class))).thenReturn(Either.left(fromOriginComponent));
1064 result = Deencapsulation.invoke(testSubject, "addRequirement", fromInstance, fromOriginComponent, instancesList,
1065 rel, toscaRequirements, componentCache);
1067 @Ignore("need to fix change in injected class.")
1069 public void testAddRequirmentsWithBuildAndAddRequirements() {
1070 ComponentInstance fromInstance = new ComponentInstance();
1071 Component fromOriginComponent = new Resource();
1072 List<ComponentInstance> instancesList = new ArrayList<>();
1073 RequirementCapabilityRelDef rel = new RequirementCapabilityRelDef();
1074 List<Map<String, ToscaTemplateRequirement>> toscaRequirements = new ArrayList<>();
1075 Map<String, Component> componentCache = new HashMap<>();
1078 List<CapabilityRequirementRelationship> relationships = new ArrayList<>();
1079 CapabilityRequirementRelationship cap = new CapabilityRequirementRelationship();
1080 cap.setRequirement(new RequirementDataDefinition());
1081 RelationshipInfo relation = new RelationshipInfo();
1082 relation.setRequirementUid("Uid");
1083 relation.setRequirement("requirment");
1084 relation.setCapability("cap");
1085 relation.setCapabilityOwnerId("id");
1086 cap.setRelation(relation);
1087 relationships.add(cap);
1088 rel.setRelationships(relationships);
1089 rel.setToNode("name");
1090 fromInstance.setUniqueId("name");
1091 fromInstance.setComponentUid("string");
1092 instancesList.add(fromInstance);
1093 Map<String, List<RequirementDefinition>> requirements = new HashMap<>();
1095 List<RequirementDefinition> defs = new ArrayList<>();
1096 RequirementDefinition def = new RequirementDefinition();
1097 def.setName("requirment");
1098 def.setCapability("cap");
1100 requirements.put("key", defs);
1101 fromOriginComponent.setRequirements(requirements);
1103 Map<String, List<CapabilityDefinition>> capabilities = new HashMap<>();
1104 List<CapabilityDefinition> caps = new ArrayList<>();
1105 CapabilityDefinition capdef = new CapabilityDefinition();
1106 capdef.setOwnerId("id");
1107 capdef.setName("cap");
1108 capdef.setType("type");
1110 capabilities.put("cap", caps);
1111 fromOriginComponent.setCapabilities(capabilities);
1113 Mockito.when(toscaOperationFacade.getToscaElement(Mockito.any(String.class),
1114 Mockito.any(ComponentParametersView.class))).thenReturn(Either.left(fromOriginComponent));
1116 Mockito.when(capabiltyRequirementConvertor.buildSubstitutedName(Mockito.any(Map.class),
1117 Mockito.any(Component.class), Mockito.any(List.class), Mockito.anyString(),Mockito.anyString()))
1118 .thenReturn(Either.right(false));
1121 result = Deencapsulation.invoke(testSubject, "addRequirement", fromInstance, fromOriginComponent, instancesList,
1122 rel, toscaRequirements, componentCache);
1124 @Ignore("need to fix change in injected class.")
1126 public void testBuildAndAddRequirement() throws Exception {
1127 List<Map<String, ToscaTemplateRequirement>> toscaRequirements = new ArrayList<>();
1128 Component fromOriginComponent = new Resource();
1129 Component toOriginComponent = new Resource();
1130 CapabilityDefinition capability = new CapabilityDefinition();
1131 RequirementDefinition requirement = new RequirementDefinition();
1132 RelationshipInfo reqAndRelationshipPair = new RelationshipInfo();
1133 ComponentInstance toInstance = new ComponentInstance();
1134 Map<String, Component> componentCache = new HashMap<>();
1136 capability.setPath(new ArrayList<>());
1137 reqAndRelationshipPair.setCapability("cap");
1138 requirement.setPath(new ArrayList<>());
1139 reqAndRelationshipPair.setRequirement("req");
1141 Mockito.when(capabiltyRequirementConvertor.buildSubstitutedName(new HashMap<>(), toOriginComponent,
1142 new ArrayList<>(),Mockito.anyString(), "cap")).thenReturn(Either.left("buildCapNameRes"));
1144 Mockito.when(capabiltyRequirementConvertor.buildSubstitutedName(new HashMap<>(), fromOriginComponent,
1145 new ArrayList<>(),Mockito.anyString(), "req")).thenReturn(Either.right(false));
1148 result = Deencapsulation.invoke(testSubject, "buildAndAddRequirement", toscaRequirements, fromOriginComponent,
1149 toOriginComponent, capability, requirement, reqAndRelationshipPair, toInstance, componentCache);
1152 @Ignore("need to fix change in injected class.")
1154 public void testBuildAndAddRequirementBuildSubtitutedNameReturnsValueTwice() {
1155 List<Map<String, ToscaTemplateRequirement>> toscaRequirements = new ArrayList<>();
1156 Component fromOriginComponent = new Resource();
1157 Component toOriginComponent = new Resource();
1158 CapabilityDefinition capability = new CapabilityDefinition();
1159 RequirementDefinition requirement = new RequirementDefinition();
1160 RelationshipInfo reqAndRelationshipPair = new RelationshipInfo();
1161 ComponentInstance toInstance = new ComponentInstance();
1162 Map<String, Component> componentCache = new HashMap<>();
1164 capability.setPath(new ArrayList<>());
1165 reqAndRelationshipPair.setCapability("cap");
1166 requirement.setPath(new ArrayList<>());
1167 reqAndRelationshipPair.setRequirement("req");
1169 Mockito.when(capabiltyRequirementConvertor.buildSubstitutedName(Mockito.anyMap(), Mockito.any(Resource.class),
1170 Mockito.anyList(), Mockito.anyString(),Mockito.anyString())).thenReturn(Either.left("buildCapNameRes"));
1173 result = Deencapsulation.invoke(testSubject, "buildAndAddRequirement", toscaRequirements, fromOriginComponent,
1174 toOriginComponent, capability, requirement, reqAndRelationshipPair, toInstance, componentCache);
1178 public void testIsRequirementBelongToRelation() throws Exception {
1180 Component originComponent = new Resource();
1181 RelationshipInfo reqAndRelationshipPair = new RelationshipInfo();
1182 RequirementDefinition requirement = new RequirementDefinition();
1183 String fromInstanceId = "";
1186 requirement.setName("name");
1187 reqAndRelationshipPair.setRequirement("name1");
1189 // test return false
1190 result = Deencapsulation.invoke(testSubject, "isRequirementBelongToRelation", originComponent,
1191 reqAndRelationshipPair, requirement, fromInstanceId);
1195 public void testIsRequirementBelongToRelationWithNonAtomicComponent() {
1197 Component originComponent = new Service();
1198 RelationshipInfo reqAndRelationshipPair = new RelationshipInfo();
1199 RequirementDefinition requirement = new RequirementDefinition();
1200 String fromInstanceId = "";
1203 // default test return true
1204 result = Deencapsulation.invoke(testSubject, "isRequirementBelongToRelation", originComponent,
1205 reqAndRelationshipPair, requirement, fromInstanceId);
1209 public void testIsRequirementBelongToOwner() throws Exception {
1211 RelationshipInfo reqAndRelationshipPair = new RelationshipInfo();
1212 RequirementDefinition requirement = new RequirementDefinition();
1213 String fromInstanceId = "";
1214 Component originComponent = new Resource();
1217 requirement.setOwnerId("owner1");
1218 reqAndRelationshipPair.setRequirementOwnerId("owner");
1221 result = Deencapsulation.invoke(testSubject, "isRequirementBelongToOwner", reqAndRelationshipPair, requirement,
1222 fromInstanceId, originComponent);
1226 public void testIsCvfc() throws Exception {
1228 Component component = new Resource();
1231 component = new Service();
1233 result = Deencapsulation.invoke(testSubject, "isCvfc", component);
1237 public void testConvertCapabilities() throws Exception {
1238 Component component = new Resource();
1239 SubstitutionMapping substitutionMappings = new SubstitutionMapping();
1240 Map<String, Component> componentCache = new HashMap<>();
1241 Either<SubstitutionMapping, ToscaError> result;
1243 Mockito.when(capabiltyRequirementConvertor.convertSubstitutionMappingCapabilities(componentCache, component))
1244 .thenReturn(Either.right(ToscaError.NODE_TYPE_CAPABILITY_ERROR));
1246 // default test return isRight
1247 result = Deencapsulation.invoke(testSubject, "convertCapabilities", component, substitutionMappings,
1250 @Ignore("need to fix change in injected class.")
1252 public void testConvertCapabilities_1() throws Exception {
1253 Component component = new Resource();
1254 ToscaNodeType nodeType = new ToscaNodeType();
1255 Map<String, DataTypeDefinition> dataTypes = new HashMap<>();
1256 Either<ToscaNodeType, ToscaError> result;
1258 Map<String, ToscaCapability> capabilities = new HashMap<>();
1259 capabilities.put("key", new ToscaCapability());
1261 Mockito.when(capabiltyRequirementConvertor.convertCapabilities(Mockito.any(Map.class), component, dataTypes)).thenReturn(capabilities);
1264 result = Deencapsulation.invoke(testSubject, "convertCapabilities", component, nodeType, dataTypes);