push addional code
[sdc.git] / openecomp-be / backend / openecomp-sdc-vendor-software-product-manager / src / test / java / org / openecomp / sdc / vendorsoftwareproduct / services / QuestionnaireSchemaTest.java
1 package org.openecomp.sdc.vendorsoftwareproduct.services;
2
3 import org.openecomp.sdc.vendorsoftwareproduct.dao.type.VspQuestionnaireEntity;
4 import org.openecomp.sdc.vendorsoftwareproduct.types.composition.CompositionEntityId;
5 import org.openecomp.sdc.versioning.dao.types.Version;
6 import org.openecomp.core.utilities.file.FileUtils;
7
8 import org.testng.Assert;
9 import org.testng.annotations.Test;
10
11 import java.util.Collection;
12 import java.util.List;
13 import java.util.Map;
14
15 public class QuestionnaireSchemaTest {
16
17   public static final String VSP1 = "vsp1";
18   public static final String COMPONENT1 = "component1";
19   public static final String NIC1 = "nic1";
20   private static CompositionEntityDataManager compositionEntityDataManager =
21       new CompositionEntityDataManager();
22   private static Map<CompositionEntityId, Collection<String>> errorsById;
23   private static org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity componentEntity;
24   private static org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity nicEntity;
25
26   private static String loadFileToString(String path) {
27     return new String(FileUtils.toByteArray(FileUtils.loadFileToInputStream(path)));
28   }
29
30   @Test
31   public void testAddEntity() {
32     compositionEntityDataManager
33         .addEntity(new VspQuestionnaireEntity(VSP1, new Version(0, 1)), null);
34
35     componentEntity = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.ComponentEntity(VSP1, new Version(0, 1), COMPONENT1);
36     nicEntity = new org.openecomp.sdc.vendorsoftwareproduct.dao.type.NicEntity(VSP1, new Version(0, 1), COMPONENT1, NIC1);
37     compositionEntityDataManager.addEntity(componentEntity, null);
38
39     componentEntity.setQuestionnaireData(loadFileToString("quesionnaire/validComponent.json"));
40     nicEntity.setQuestionnaireData(loadFileToString("quesionnaire/validNic.json"));
41     compositionEntityDataManager.addEntity(nicEntity, null);
42   }
43
44   @Test(dependsOnMethods = "testAddEntity")
45   public void testNicAndComponentValidQuestionnaire() {
46     errorsById = compositionEntityDataManager.validateEntitiesQuestionnaire();
47     Assert.assertEquals(errorsById.size(), 0);
48   }
49
50   @Test(dependsOnMethods = "testNicAndComponentValidQuestionnaire")
51   public void testComponentInvalidQuestionnaire() {
52     componentEntity.setQuestionnaireData(loadFileToString("quesionnaire/invalidComponent.json"));
53     compositionEntityDataManager.addEntity(componentEntity, null);
54
55     errorsById = compositionEntityDataManager.validateEntitiesQuestionnaire();
56     Assert.assertEquals(errorsById.size(), 1);
57
58     CompositionEntityId component = errorsById.keySet().iterator().next();
59     List<String> errors = (List<String>) errorsById.get(component);
60     Assert.assertEquals(errors.size(), 1);
61     Assert.assertEquals(errors.get(0),
62         "#/general/recovery/pointObjective: 20.0 is not lower or equal to 15");
63   }
64 }