1 package org.openecomp.sdc.vendorsoftwareproduct.services;
3 import org.openecomp.sdc.common.errors.CoreException;
4 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity;
5 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.NetworkEntity;
6 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspQuestionnaireEntity;
7 import org.openecomp.sdc.vendorsoftwareproduct.types.CompositionEntityValidationData;
8 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityId;
9 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityType;
10 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.Network;
11 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.NetworkCompositionSchemaInput;
12 import org.openecomp.sdc.vendorsoftwareproduct.types.schemagenerator.SchemaTemplateContext;
13 import org.openecomp.sdc.versioning.dao.types.Version;
14 import org.apache.commons.collections.CollectionUtils;
15 import org.testng.Assert;
16 import org.testng.annotations.Test;
18 import java.util.Collection;
21 public class CompositionEntityDataManagerTest {
23 public static final String VSP1 = "vsp1";
24 public static final String COMPONENT1 = "component1";
25 public static final String NIC1 = "nic1";
26 private static CompositionEntityDataManager compositionEntityDataManager =
27 new CompositionEntityDataManager();
28 private static Map<CompositionEntityId, Collection<String>> errorsById;
30 private static void assertValidationData(CompositionEntityValidationData validationData,
31 String id, CompositionEntityType type,
33 Assert.assertNotNull(validationData);
34 Assert.assertEquals(validationData.getEntityId(), id);
35 Assert.assertEquals(validationData.getEntityType(), type);
36 Assert.assertTrue(CollectionUtils.isNotEmpty(validationData.getErrors()) == hasErrors);
39 @Test(expectedExceptions = CoreException.class)
40 public void testAddNullEntity_negative() {
41 compositionEntityDataManager.addEntity(null, null);
45 public void testAddEntity() {
46 compositionEntityDataManager
47 .addEntity(new VspQuestionnaireEntity(VSP1, new Version(0, 1)), null);
49 String invalidQuestionnaireData = "{\"a\": \"b\"}";
51 ComponentEntity component = new ComponentEntity(VSP1, new Version(0, 1), COMPONENT1);
52 component.setQuestionnaireData(invalidQuestionnaireData);
53 compositionEntityDataManager.addEntity(component, null);
55 org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity
56 nic = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(VSP1, new Version(0, 1), COMPONENT1, NIC1);
57 nic.setQuestionnaireData(invalidQuestionnaireData);
58 compositionEntityDataManager.addEntity(nic, null);
61 @Test(dependsOnMethods = "testAddEntity")
62 public void testValidateEntitiesQuestionnaire() {
63 errorsById = compositionEntityDataManager.validateEntitiesQuestionnaire();
64 Assert.assertNotNull(errorsById);
65 Assert.assertEquals(errorsById.size(), 2); // both component and nic data don't mach schemas
66 CompositionEntityId nicId =
67 new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(VSP1, new Version(0, 1), COMPONENT1, NIC1).getCompositionEntityId();
68 Assert.assertTrue(errorsById.containsKey(nicId));
69 Assert.assertTrue(errorsById.containsKey(nicId.getParentId()));
72 @Test(dependsOnMethods = "testAddEntity")
73 public void testBuildTrees() {
74 compositionEntityDataManager.buildTrees();
77 @Test(dependsOnMethods = "testBuildTrees")
78 public void testAddErrorsToTrees() {
79 compositionEntityDataManager.addErrorsToTrees(errorsById);
82 @Test(dependsOnMethods = "testAddErrorsToTrees")
83 public void testGetTrees() {
84 Collection<CompositionEntityValidationData> trees = compositionEntityDataManager.getTrees();
85 Assert.assertNotNull(trees);
86 Assert.assertEquals(trees.size(), 1);
88 CompositionEntityValidationData vspValidationData = trees.iterator().next();
89 assertValidationData(vspValidationData, VSP1, CompositionEntityType.vsp, false);
90 Assert.assertEquals(vspValidationData.getSubEntitiesValidationData().size(), 1);
92 CompositionEntityValidationData componentValidationData =
93 vspValidationData.getSubEntitiesValidationData().iterator().next();
94 assertValidationData(componentValidationData, COMPONENT1, CompositionEntityType.component,
96 Assert.assertEquals(componentValidationData.getSubEntitiesValidationData().size(), 1);
98 CompositionEntityValidationData nicValidationData =
99 componentValidationData.getSubEntitiesValidationData().iterator().next();
100 assertValidationData(nicValidationData, NIC1, CompositionEntityType.nic, true);
101 Assert.assertNull(nicValidationData.getSubEntitiesValidationData());
105 public void testValidateValidEntity() {
106 NetworkEntity networkEntity = new NetworkEntity(VSP1, new Version(0, 1), "network1");
107 Network network = new Network();
108 network.setName("network1 name");
109 network.setDhcp(true);
110 networkEntity.setNetworkCompositionData(network);
112 NetworkCompositionSchemaInput schemaTemplateInput = new NetworkCompositionSchemaInput();
113 schemaTemplateInput.setManual(false);
114 schemaTemplateInput.setNetwork(network);
116 CompositionEntityValidationData validationData = CompositionEntityDataManager
117 .validateEntity(networkEntity, SchemaTemplateContext.composition, schemaTemplateInput);
118 assertValidationData(validationData, "network1", CompositionEntityType.network, false);
122 public void testValidateInvalidEntity() {
123 NetworkEntity networkEntity = new NetworkEntity(VSP1, new Version(0, 1), "network1");
124 Network network = new Network();
125 network.setName("network1 name changed");
126 network.setDhcp(false);
127 networkEntity.setNetworkCompositionData(network);
129 NetworkCompositionSchemaInput schemaTemplateInput = new NetworkCompositionSchemaInput();
130 schemaTemplateInput.setManual(false);
131 Network origNetwork = new Network();
132 origNetwork.setName("network1 name");
133 origNetwork.setDhcp(true);
134 schemaTemplateInput.setNetwork(origNetwork);
136 CompositionEntityValidationData validationData = CompositionEntityDataManager
137 .validateEntity(networkEntity, SchemaTemplateContext.composition, schemaTemplateInput);
138 assertValidationData(validationData, "network1", CompositionEntityType.network, true);
139 Assert.assertEquals(validationData.getErrors().size(), 2);