1 package org.openecomp.sdc.validation.impl.validators;
3 import org.openecomp.core.utilities.file.FileUtils;
4 import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
5 import org.openecomp.core.validation.interfaces.Validator;
6 import org.openecomp.core.validation.types.GlobalValidationContext;
7 import org.openecomp.core.validation.types.MessageContainer;
8 import org.testng.Assert;
11 import java.io.FileInputStream;
12 import java.io.IOException;
14 import java.util.HashMap;
17 public abstract class ValidatorBaseTest {
19 private static GlobalValidationContext createGlobalContextFromPath(String path) {
20 GlobalValidationContext globalValidationContext = new GlobalValidationContext();
21 Map<String, byte[]> contentMap = getContentMapByPath(path);
22 if (contentMap == null) {
25 contentMap.entrySet().stream()
26 .forEach(entry -> globalValidationContext.addFileContext(entry.getKey(), entry.getValue()));
28 return globalValidationContext;
32 // New test base implementation
34 private static Map<String, byte[]> getContentMapByPath(String path) {
35 Map<String, byte[]> contentMap = new HashMap<>();
38 URL url = ValidatorBaseTest.class.getResource(path);
39 File pathFile = new File(url.getFile());
41 if (pathFile.isDirectory()) {
42 files = pathFile.listFiles();
44 files = new File[]{pathFile};
47 if (files == null || files.length == 0) {
51 for (File file : files) {
53 fis = new FileInputStream(file);
54 fileContent = FileUtils.toByteArray(fis);
55 contentMap.put(file.getName(), fileContent);
56 } catch (IOException e) {
63 public abstract Map<String, MessageContainer> runValidation(String path);
65 protected Map<String, MessageContainer> testValidator(Validator validator, String path) {
67 GlobalValidationContext globalValidationContext = createGlobalContextFromPath(path);
68 validator.validate(globalValidationContext);
70 assert globalValidationContext != null;
71 return globalValidationContext.getContextMessageContainers();
76 protected void validateErrorMessage(String actualMessage, String expected, String... params) {
77 Assert.assertEquals(actualMessage.replace("\n", "").replace("\r", ""),
78 ErrorMessagesFormatBuilder.getErrorWithParameters(expected, params).replace("\n", "")