391eb633ac9fccf5bbcb29ca6586aa9c46540c3e
[sdc.git] /
1 /*-
2  * ============LICENSE_START=======================================================
3  * SDC
4  * ================================================================================
5  * Copyright (C) 2017 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.openecomp.sdc.validation.impl.validators;
22
23
24 import org.openecomp.core.validation.types.MessageContainer;
25 import org.openecomp.sdc.common.errors.Messages;
26 import org.openecomp.sdc.common.utils.SdcCommon;
27 import org.openecomp.sdc.validation.util.ValidationTestUtil;
28 import org.testng.Assert;
29 import org.testng.annotations.Test;
30
31 import java.util.Map;
32
33
34 public class ManifestValidatorTest {
35
36
37   private static final String RESOURCE_PATH = "/org/openecomp/validation/validators/manifestValidator";
38   private ManifestValidator validator = new ManifestValidator();
39
40   @Test
41   public void testValidManifest() {
42
43     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(validator,
44         RESOURCE_PATH + "/validFiles");
45     Assert.assertNotNull(messages);
46     Assert.assertNotNull(messages);
47     Assert.assertEquals(messages.size(), 0);
48   }
49
50   @Test
51   public void testManifestMissingFileInZip() {
52     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(new ManifestValidator(),
53         RESOURCE_PATH + "/missingFileInZip");
54     Assert.assertNotNull(messages);
55     Assert.assertEquals(messages.size(), 1);
56     Assert.assertTrue(messages.containsKey("singleVol.yaml"));
57     ValidationTestUtil.validateErrorMessage(messages.get("singleVol.yaml").getErrorMessageList()
58             .get(0).getMessage(),
59         "ERROR: " + "[MNF4]: " + Messages.MISSING_FILE_IN_ZIP.getErrorMessage());
60   }
61
62   @Test
63   public void testInvalidManifest() {
64     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(new ManifestValidator(),
65         RESOURCE_PATH + "/invalidManifest");
66     Assert.assertNotNull(messages);
67     Assert.assertNotNull(messages);
68     Assert.assertEquals(messages.size(), 1);
69     Assert.assertTrue(messages.containsKey(SdcCommon.MANIFEST_NAME));
70     ValidationTestUtil.validateErrorMessage(
71         messages.get(SdcCommon.MANIFEST_NAME).getErrorMessageList().get(0).getMessage(),
72         "ERROR: " +"[MNF6]: " + Messages.INVALID_MANIFEST_FILE.getErrorMessage());
73
74   }
75
76   @Test
77   public void testMissingFileInManifest() {
78     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(new ManifestValidator(),
79         RESOURCE_PATH + "/missingFileInManifest");
80     Assert.assertNotNull(messages);
81     Assert.assertEquals(messages.size(), 1);
82     Assert.assertTrue(messages.containsKey("extraFile.env"));
83     ValidationTestUtil.validateErrorMessage(messages.get("extraFile.env").getErrorMessageList()
84             .get(0).getMessage(),
85         "WARNING: " + "[MNF5]: " + Messages.MISSING_FILE_IN_MANIFEST.getErrorMessage());
86
87   }
88   @Test
89   public void testMissingFileTypeInManifest() {
90     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(new ManifestValidator(),
91         RESOURCE_PATH + "/missingFileTypeInManifest");
92     ValidationTestUtil.validateErrorMessage(
93         messages.get("MANIFEST.json").getErrorMessageList().get(0).getMessage(),
94         "ERROR: " + "[MNF7]: Missing file name in manifest");
95   }
96
97   @Test
98   public void testInvalidFileTypeInManifest() {
99     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(new ManifestValidator(),
100         RESOURCE_PATH + "/invalidFileTypeInManifest");
101     Assert.assertNotNull(messages);
102     Assert.assertEquals(messages.size(), 4);
103     Assert.assertTrue(messages.containsKey("single.env.illegalSuffix"));
104     Assert.assertTrue(messages.containsKey("illegalTypeFile.yaml"));
105     Assert.assertTrue(messages.containsKey("single.yaml.illegalSuffix"));
106     Assert.assertTrue(messages.containsKey("singleVol.yaml.illegalSuffix"));
107     ValidationTestUtil.validateErrorMessage(
108         messages.get("single.env.illegalSuffix").getErrorMessageList().get(0).getMessage(),
109         "ERROR: "+"[MNF3]: " + Messages.WRONG_ENV_FILE_EXTENSION.getErrorMessage(),
110         "single.env.illegalSuffix");
111     ValidationTestUtil.validateErrorMessage(
112         messages.get("illegalTypeFile.yaml").getErrorMessageList().get(0).getMessage(),
113         "ERROR: "+"[MNF8]: " + Messages.INVALID_FILE_TYPE.getErrorMessage(),
114         "illegalTypeFile.yaml");
115     ValidationTestUtil.validateErrorMessage(
116         messages.get("single.yaml.illegalSuffix").getErrorMessageList().get(0).getMessage(),
117         "ERROR: "+"[MNF2]: " + Messages.WRONG_HEAT_FILE_EXTENSION.getErrorMessage(),
118         "single.yaml.illegalSuffix");
119     ValidationTestUtil.validateErrorMessage(
120         messages.get("singleVol.yaml.illegalSuffix").getErrorMessageList().get(0).getMessage(),
121         "ERROR: "+"[MNF2]: " + Messages.WRONG_HEAT_FILE_EXTENSION.getErrorMessage(),
122         "singleVol.yaml.illegalSuffix");
123
124   }
125
126
127   @Test
128   public void testMissingFileInManifestAndInZip() {
129
130     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(new ManifestValidator(),
131         RESOURCE_PATH + "/missingFileInManifestAndInZip");
132     Assert.assertNotNull(messages);
133     Assert.assertEquals(messages.size(), 2);
134     Assert.assertTrue(messages.containsKey("extraFile.env"));
135     Assert.assertTrue(messages.containsKey("singleVol.yaml"));
136     ValidationTestUtil.validateErrorMessage(messages.get("extraFile.env").getErrorMessageList()
137             .get(0).getMessage(), "WARNING: " + "[MNF5]: "+ Messages.MISSING_FILE_IN_MANIFEST
138         .getErrorMessage());
139     ValidationTestUtil.validateErrorMessage(messages.get("singleVol.yaml").getErrorMessageList()
140             .get(0).getMessage(), "ERROR: " + "[MNF4]: " + Messages.MISSING_FILE_IN_ZIP
141         .getErrorMessage());
142
143   }
144
145   @Test
146   public void testEnvInRoot() {
147     Map<String, MessageContainer> messages = ValidationTestUtil.testValidator(new ManifestValidator(),
148         RESOURCE_PATH + "/envInRoot");
149     Assert.assertNotNull(messages);
150     Assert.assertEquals(messages.size(), 1);
151     Assert.assertTrue(messages.containsKey("second.env"));
152     ValidationTestUtil.validateErrorMessage(messages.get("second.env").getErrorMessageList()
153             .get(0).getMessage(),
154         "ERROR: [MNF1]: ENV file must be associated to a HEAT file");
155   }
156 }