Adding common changes for all HEAT Validators 67/23567/4
authormojahidi <mojahidul.islam@amdocs.com>
Wed, 15 Nov 2017 09:43:59 +0000 (15:13 +0530)
committerVitaly Emporopulo <Vitaliy.Emporopulo@amdocs.com>
Sun, 19 Nov 2017 12:01:35 +0000 (12:01 +0000)
This commit is about adding common  changes  which will later be used for all validators.

Change-Id: I47cee23364c2f535482c721c25cb0038e9febc02
Issue-ID:SDC-572
Signed-off-by: mojahidi <mojahidul.islam@amdocs.com>
openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/ErrorMessageCode.java [new file with mode: 0644]
openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/errors/ErrorMessagesFormatBuilder.java
openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/types/GlobalValidationContext.java
openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-impl/src/test/java/org/openecomp/sdc/validation/impl/validators/ErrorMessagesTest.java

diff --git a/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/ErrorMessageCode.java b/openecomp-be/lib/openecomp-sdc-validation-lib/openecomp-sdc-validation-api/src/main/java/org/openecomp/core/validation/ErrorMessageCode.java
new file mode 100644 (file)
index 0000000..a958d27
--- /dev/null
@@ -0,0 +1,36 @@
+package org.openecomp.core.validation;
+
+import java.util.Objects;
+
+public final class ErrorMessageCode {
+    private final String messageCode;
+
+    public ErrorMessageCode(String messageCode) {
+
+        this.messageCode = messageCode;
+    }
+
+    public String getMessageCode() {
+        return messageCode;
+    }
+
+    @Override
+    public String toString() {
+        return messageCode;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        ErrorMessageCode that = (ErrorMessageCode) o;
+
+        return Objects.equals(this.messageCode, that.messageCode);
+    }
+
+    @Override
+    public int hashCode() {
+        return Objects.hashCode(this.messageCode);
+    }
+}
index 5f4833a..0656b02 100644 (file)
 package org.openecomp.core.validation.errors;
 
 
+import org.openecomp.core.validation.ErrorMessageCode;
+
 public class ErrorMessagesFormatBuilder {
+  private static final String messagePattern = "[%s]: %s";
+
   public static String getErrorWithParameters(String error, String... params) {
     return String.format(error, params);
   }
+  /**
+   * Formatted message with error code.
+   *
+   * @param messageCode error code.
+   * @param errorMessage error message.
+   * @param params parameters used in formatting message.
+   * @return formatted message string.
+   */
+  public static String getErrorWithParameters(ErrorMessageCode messageCode,
+                                              String errorMessage, String... params) {
+    String message = getErrorWithParameters(errorMessage, params);
 
+    return ( null != messageCode && null != messageCode.getMessageCode() )  ?
+            String.format(messagePattern, messageCode.getMessageCode(), message) : message;
+  }
 
 }
index 1fb31a3..bc401d4 100644 (file)
@@ -21,6 +21,7 @@
 package org.openecomp.core.validation.types;
 
 import org.apache.commons.collections4.CollectionUtils;
+import org.openecomp.core.validation.ErrorMessageCode;
 import org.openecomp.sdc.logging.api.Logger;
 import org.openecomp.sdc.logging.api.LoggerFactory;
 import org.openecomp.sdc.datatypes.error.ErrorLevel;
@@ -41,6 +42,16 @@ public class GlobalValidationContext {
   private static Logger logger = (Logger) LoggerFactory.getLogger(GlobalValidationContext.class);
   private Map<String, FileValidationContext> fileContextMap = new HashMap<>();
   private Map<String, MessageContainer> messageContainerMap = new HashMap<>();
+  private ErrorMessageCode messageCode;
+
+  public ErrorMessageCode getMessageCode() {
+    return messageCode;
+  }
+
+  public void setMessageCode(ErrorMessageCode messageCode) {
+    this.messageCode = messageCode;
+  }
+
 
   /**
    * Add message.
index 345aad3..64b3d2b 100644 (file)
@@ -24,6 +24,7 @@ import org.junit.Test;
 import org.openecomp.core.validation.errors.ErrorMessagesFormatBuilder;
 import org.openecomp.sdc.common.errors.Messages;
 import org.testng.Assert;
+import org.openecomp.core.validation.ErrorMessageCode;
 
 
 public class ErrorMessagesTest {
@@ -43,4 +44,11 @@ public class ErrorMessagesTest {
             "res");
     Assert.assertNotNull(error1);
   }
+  @Test
+  public void testErrorFormatWithErrorCode() {
+    String error = ErrorMessagesFormatBuilder
+            .getErrorWithParameters(new ErrorMessageCode("TestCode"), Messages.MISSING_NOVA_SERVER_METADATA
+                    .getErrorMessage(), "param");
+    Assert.assertEquals("[TestCode]: Missing Nova Server Metadata property, Resource ID [param]", error);
+  }
 }