1 package org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar.validation;
3 import org.junit.Before;
5 import org.openecomp.core.utilities.file.FileContentHandler;
6 import org.openecomp.sdc.common.utils.SdcCommon;
7 import org.openecomp.sdc.datatypes.error.ErrorLevel;
8 import org.openecomp.sdc.datatypes.error.ErrorMessage;
9 import java.io.IOException;
10 import java.nio.charset.StandardCharsets;
11 import java.util.ArrayList;
12 import java.util.Collections;
13 import java.util.List;
16 import static org.junit.Assert.assertTrue;
17 import static org.openecomp.sdc.vendorsoftwareproduct.impl.orchestration.csar.validation.TestConstants.*;
19 public class SOL004MetaDirectoryValidatorTest {
21 private SOL004MetaDirectoryValidator sol004MetaDirectoryValidator;
22 private FileContentHandler handler;
23 private String metaFile;
27 sol004MetaDirectoryValidator = new SOL004MetaDirectoryValidator();
28 handler = new FileContentHandler();
30 "TOSCA-Meta-File-Version: 1.0\n"+
31 "CSAR-Version: 1.1\n"+
32 "Created-by: Vendor\n"+
33 "Entry-Definitions: Definitions/MainServiceTemplate.yaml\n"+
34 "Entry-Manifest: Definitions/MainServiceTemplate.mf\n"+
35 "Entry-Change-Log: Artifacts/changeLog.text\n";
39 public void testGivenTOSCAMetaFile_whenEntryHasNoValue_thenErrorIsReturned() throws IOException{
41 String metaFileWithInvalidEntry = "TOSCA-Meta-File-Version: \n" +
42 "Entry-Definitions: Definitions/MainServiceTemplate.yaml";
44 handler.addFile(TOSCA_METADATA_FILEPATH, metaFileWithInvalidEntry.getBytes(StandardCharsets.UTF_8));
45 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(TestConstants.SAMPLE_DEFINITION_FILE_PATH));
47 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
48 List<ErrorMessage> errorMessages = errors.get(SdcCommon.UPLOAD_FILE);
49 assertTrue(errors.size() == 1 && errorMessages.size() == 1);
53 public void testGivenTOSCAMeta_withAllSupportedEntries_thenNoErrorsReturned() throws IOException{
55 String entryTestFilePath = "Files/Tests";
56 String entryLicenseFilePath = "Files/Licenses";
58 List<String> folderList = new ArrayList<>();
59 folderList.add("Files/Tests/");
60 folderList.add("Files/Licenses/");
63 "Entry-Tests: "+ entryTestFilePath + "\n" +
64 "Entry-Licenses: "+ entryLicenseFilePath +"\n";
66 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
67 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
68 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes(StandardCharsets.UTF_8));
69 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_MANIFEST_FILE_PATH));
70 handler.addFile(SAMPLE_SOURCE, "".getBytes());
71 handler.addFile(SAMPLE_DEFINITION_IMPORT_FILE_PATH, "".getBytes());
72 handler.addFile(entryTestFilePath, "".getBytes());
73 handler.addFile(entryLicenseFilePath, "".getBytes());
75 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, folderList);
76 assertTrue(errors.size() == 0);
80 public void testGivenTOSCAMeta_withUnsupportedEntry_thenWarningIsReturned(){
82 metaFile = "Entry-Events: Definitions/events.log";
84 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
85 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
86 List<ErrorMessage> errorMessages = errors.get(SdcCommon.UPLOAD_FILE);
87 assertTrue(errors.size() == 1 && errorMessages.size() == 1);
88 assertTrue(errorMessages.get(0).getLevel() == ErrorLevel.ERROR);
93 public void testGivenTOSCAMetaFile_withInvalidTOSCAMetaFileVersionAndCSARVersion_thenErrorIsReturned() throws IOException{
96 "TOSCA-Meta-File-Version: " + Integer.MAX_VALUE +
97 "\nCSAR-Version: " + Integer.MAX_VALUE +
98 "\nCreated-by: Bilal Iqbal" +
99 "\nEntry-Definitions: Definitions/MainServiceTemplate.yaml" +
100 "\nEntry-Manifest: Definitions/MainServiceTemplate.mf"+
101 "\nEntry-Change-Log: Artifacts/changeLog.text";
103 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
104 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(TestConstants.SAMPLE_DEFINITION_FILE_PATH));
105 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes(StandardCharsets.UTF_8));
106 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_MANIFEST_FILE_PATH));
108 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
109 List<ErrorMessage> errorMessages = errors.get(SdcCommon.UPLOAD_FILE);
110 assertTrue(errors.size() == 1 && errorMessages.size() == 2);
114 public void testGivenTOSCAMetaFile_withNonExistentFileReferenced_thenErrorsReturned(){
116 metaFile = metaFile +
117 "Entry-Tests: Files/Tests\n" +
118 "Entry-License: Files/Licenses\n";
120 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
122 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
123 List<ErrorMessage> errorMessages = errors.get(SdcCommon.UPLOAD_FILE);
124 assertTrue(errors.size() == 1 && errorMessages.size() == 5);
129 public void testGivenDefinitionFile_whenValidImportStatementExist_thenNoErrorsReturned() throws IOException{
131 String definitionFileWithValidImports = "/validation.files/definition/definitionFileWithValidImports.yaml";
134 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
135 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes(StandardCharsets.UTF_8));
136 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_MANIFEST_FILE_PATH));
137 handler.addFile(SAMPLE_SOURCE, "".getBytes());
138 handler.addFile("Definitions/etsi_nfv_sol001_pnfd_2_5_1_types.yaml", ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
139 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(definitionFileWithValidImports));
141 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
142 assertTrue(errors.size() == 0);
146 public void testGivenDefinitionFile_whenMultipleDefinitionsImportStatementExist_thenNoErrorsReturned() throws IOException{
148 byte [] sampleDefinitionFile1 = ValidatorUtil.getFileResource("/validation.files/definition/sampleDefinitionFile1.yaml");
149 byte [] sampleDefinitionFile2 = ValidatorUtil.getFileResource("/validation.files/definition/sampleDefinitionFile2.yaml");
150 byte [] sampleDefinitionFile3 = ValidatorUtil.getFileResource("/validation.files/definition/sampleDefinitionFile3.yaml");
152 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
153 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes(StandardCharsets.UTF_8));
154 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_MANIFEST_FILE_PATH));
155 handler.addFile(SAMPLE_SOURCE, "".getBytes());
156 handler.addFile(TOSCA_DEFINITION_FILEPATH, sampleDefinitionFile1);
157 handler.addFile("Definitions/etsi_nfv_sol001_pnfd_2_5_1_types.yaml", sampleDefinitionFile2);
158 handler.addFile("Definitions/etsi_nfv_sol001_pnfd_2_5_2_types.yaml", sampleDefinitionFile3);
160 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
161 assertTrue(errors.size() == 0);
165 public void testGivenDefinitionFile_whenInvalidImportStatementExist_thenErrorIsReturned() throws IOException{
167 String definitionFileWithInvalidImports = "/validation.files/definition/definitionFileWithInvalidImport.yaml";
169 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
170 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes(StandardCharsets.UTF_8));
171 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_MANIFEST_FILE_PATH));
172 handler.addFile(SAMPLE_SOURCE, "".getBytes());
173 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(definitionFileWithInvalidImports));
175 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
176 List<ErrorMessage> errorMessages = errors.get(SdcCommon.UPLOAD_FILE);
177 assertTrue(errors.size() == 1 && errorMessages.size() == 1);
181 public void testGivenDefinitionFile_whenReferencedImportDoesNotExist_thenErrorIsReturned() throws IOException{
183 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
184 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes(StandardCharsets.UTF_8));
185 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_MANIFEST_FILE_PATH));
186 handler.addFile(SAMPLE_SOURCE, "".getBytes());
187 handler.addFile("Definitions/etsi_nfv_sol001_pnfd_2_5_1_types.yaml", "".getBytes());
188 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource("/validation.files/definition/sampleDefinitionFile2.yaml"));
190 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
191 List<ErrorMessage> errorMessages = errors.get(SdcCommon.UPLOAD_FILE);
192 assertTrue(errors.size() == 1 && errorMessages.size() == 1);
197 public void testGivenDefinitionFile_withInvalidYAML_thenErrorIsReturned() throws IOException{
199 String definitionFileWithInvalidYAML = "/validation.files/definition/invalidDefinitionFile.yaml";
201 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
202 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes(StandardCharsets.UTF_8));
203 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_MANIFEST_FILE_PATH));
204 handler.addFile(SAMPLE_SOURCE, "".getBytes());
206 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(definitionFileWithInvalidYAML));
208 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
209 List<ErrorMessage> errorMessages = errors.get(SdcCommon.UPLOAD_FILE);
210 assertTrue(errors.size() == 1 && errorMessages.size() == 1);
214 public void testGivenManifestFile_withValidSourceAndNonManoSources_thenNoErrorIsReturned() throws IOException{
216 String nonManoSource = "Artifacts/Deployment/Measurements/PM_Dictionary.yaml";
218 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
219 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource("/validation.files/manifest/validManifest.mf"));
220 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
221 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
222 handler.addFile(SAMPLE_SOURCE, "".getBytes());
223 handler.addFile(SAMPLE_DEFINITION_IMPORT_FILE_PATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
224 handler.addFile(nonManoSource, "".getBytes());
226 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
227 assertTrue(errors.size() == 0);
231 public void testGivenManifestFile_withNonExistentSourceFile_thenErrorIsReturned() throws IOException{
232 String nonManoSource = "Artifacts/Deployment/Measurements/PM_Dictionary.yaml";
234 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
235 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource("/validation.files/manifest/validManifest.mf"));
236 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
237 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
238 handler.addFile(SAMPLE_DEFINITION_IMPORT_FILE_PATH, "".getBytes());
239 handler.addFile(nonManoSource, "".getBytes());
241 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
242 List<ErrorMessage> errorMessages = errors.get(SdcCommon.UPLOAD_FILE);
243 assertTrue(errors.size() == 1 && errorMessages.size() == 1);
247 public void testGivenManifestFile_withInvalidData_thenErrorIsReturned() throws IOException{
249 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
250 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource("/validation.files/manifest/invalidManifest.mf"));
251 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
252 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
253 handler.addFile(SAMPLE_DEFINITION_IMPORT_FILE_PATH, "".getBytes());
255 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
256 List<ErrorMessage> errorMessages = errors.get(SdcCommon.UPLOAD_FILE);
257 assertTrue(errors.size() == 1 && errorMessages.size() == 1);
261 public void testGivenManifestAndDefinitionFile_withSameNames_thenNoErrorReturned() throws IOException {
263 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
264 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource("/validation.files/manifest/sampleManifest.mf"));
265 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
266 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
267 handler.addFile(SAMPLE_DEFINITION_IMPORT_FILE_PATH, "".getBytes());
269 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
270 assertTrue(errors.size() == 0);
274 public void testGivenManifestAndMainDefinitionFile_withDifferentNames_thenErrorIsReturned() throws IOException {
276 "TOSCA-Meta-File-Version: 1.0\n"+
277 "CSAR-Version: 1.1\n"+
278 "Created-by: Vendor\n"+
279 "Entry-Definitions: Definitions/MainServiceTemplate.yaml\n"+
280 "Entry-Manifest: Definitions/MainServiceTemplate2.mf\n"+
281 "Entry-Change-Log: Artifacts/changeLog.text\n";
283 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
284 handler.addFile("Definitions/MainServiceTemplate2.mf", ValidatorUtil.getFileResource("/validation.files/manifest/sampleManifest.mf"));
285 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
286 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
287 handler.addFile(SAMPLE_DEFINITION_IMPORT_FILE_PATH, "".getBytes());
289 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
290 assertExpectedErrors("Main TOSCA definitions file and Manifest file with different name should return error",
295 public void testGivenManifestFile_withDifferentExtension_thenErrorIsReturned() throws IOException {
297 "TOSCA-Meta-File-Version: 1.0\n"+
298 "CSAR-Version: 1.1\n"+
299 "Created-by: Vendor\n"+
300 "Entry-Definitions: Definitions/MainServiceTemplate.yaml\n"+
301 "Entry-Manifest: Definitions/MainServiceTemplate.txt\n"+
302 "Entry-Change-Log: Artifacts/changeLog.text\n";
304 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
305 handler.addFile("Definitions/MainServiceTemplate.txt", ValidatorUtil.getFileResource("/validation.files/manifest/sampleManifest.mf"));
306 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
307 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
308 handler.addFile(SAMPLE_DEFINITION_IMPORT_FILE_PATH, "".getBytes());
310 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
311 assertExpectedErrors("Manifest file with different extension than .mf should return error",
316 public void testGivenManifestFile_withValidVnfMetadata_thenNoErrorsReturned() throws IOException{
317 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
318 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource("/validation.files/manifest/sampleManifest.mf"));
319 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
320 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
322 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
323 assertExpectedErrors("Manifest with valid vnf mandatory values should not return any errors", errors, 0);
327 public void testGivenManifestFile_withValidPnfMetadata_thenNoErrorsReturned() throws IOException {
328 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
329 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource("/validation.files/manifest/sampleManifest2.mf"));
330 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
331 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
333 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
334 assertExpectedErrors("Manifest with valid pnf mandatory values should not return any errors", errors, 0);
338 public void testGivenManifestFile_withMetadataContainingMixedPnfVnfMetadata_thenErrorIsReturned() throws IOException {
340 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
341 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource("/validation.files/manifest/manifestInvalidMetadata.mf"));
342 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
343 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
345 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
346 assertExpectedErrors("Manifest with mixed metadata should return error", errors, 1);
351 public void testGivenManifestFile_withMetadataMissingPnfOrVnfMandatoryEntries_thenErrorIsReturned() throws IOException{
353 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
354 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource("/validation.files/manifest/manifestInvalidMetadata2.mf"));
355 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
356 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
358 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
359 assertExpectedErrors("Manifest with missing vnf or pnf mandatory entries should return error", errors, 1);
363 public void testGivenManifestFile_withMetadataMissingMandatoryPnfEntries_thenErrorIsReturned() throws IOException{
364 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
365 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource("/validation.files/manifest/manifestInvalidMetadata4.mf"));
366 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
367 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
369 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
370 assertExpectedErrors("Manifest with metadata missing pnf mandatory entries should return error", errors, 3);
375 public void testGivenManifestFile_withMetadataMissingMandatoryVnfEntries_thenErrorIsReturned() throws IOException{
376 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
377 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource("/validation.files/manifest/manifestInvalidMetadata5.mf"));
378 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
379 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
381 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
382 assertExpectedErrors("Manifest with metadata missing vnf mandatory entries should return error", errors, 4);
387 public void testGivenManifestFile_withMetadataEntriesExceedingTheLimit_thenErrorIsReturned() throws IOException{
388 handler.addFile(TOSCA_METADATA_FILEPATH, metaFile.getBytes(StandardCharsets.UTF_8));
389 handler.addFile(TOSCA_MANIFEST_FILEPATH, ValidatorUtil.getFileResource("/validation.files/manifest/manifestInvalidMetadata3.mf"));
390 handler.addFile(TOSCA_CHANGELOG_FILEPATH, "".getBytes());
391 handler.addFile(TOSCA_DEFINITION_FILEPATH, ValidatorUtil.getFileResource(SAMPLE_DEFINITION_FILE_PATH));
393 Map<String, List<ErrorMessage>> errors = sol004MetaDirectoryValidator.validateContent(handler, Collections.emptyList());
394 assertExpectedErrors("Manifest with more than 4 metadata entries should return error", errors, 2);
397 private void assertExpectedErrors( String testCase, Map<String, List<ErrorMessage>> errors, int expectedErrors){
398 if(expectedErrors > 0){
399 List<ErrorMessage> errorMessages = errors.get(SdcCommon.UPLOAD_FILE);
400 assertTrue(testCase, errorMessages.size() == expectedErrors);
402 assertTrue(testCase,errors.size() == expectedErrors);