descriptive messages now returned by validator 20/75720/1
authorBenjamin, Max (mb388a) <mb388a@us.att.com>
Sat, 12 Jan 2019 03:24:32 +0000 (22:24 -0500)
committerBenjamin, Max (mb388a) <mb388a@us.att.com>
Sat, 12 Jan 2019 03:24:46 +0000 (22:24 -0500)
descriptive messages now returned by validator

Change-Id: I49db843fbdfe20979fba6991744c62aa1f745d5f
Issue-ID: SO-1388
Signed-off-by: Benjamin, Max (mb388a) <mb388a@us.att.com>
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/FlowValidator.java
bpmn/MSOCommonBPMN/src/main/java/org/onap/so/bpmn/common/validation/FlowValidatorRunner.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/BuildingBlockValidatorRunnerTest.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorFour.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorOne.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorThree.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/MyPreValidatorTwo.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorOne.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowPreValidatorTwo.java
bpmn/MSOCommonBPMN/src/test/java/org/onap/so/bpmn/common/validation/WorkflowValidatorRunnerTest.java

index 9995b95..96322c3 100644 (file)
@@ -1,5 +1,6 @@
 package org.onap.so.bpmn.common.validation;
 
+import java.util.Optional;
 import java.util.Set;
 
 import org.onap.so.bpmn.common.BuildingBlockExecution;
@@ -14,10 +15,11 @@ public interface FlowValidator {
        
        /**
         * Determines whether or not the workflow should be executed
+
         * 
         * @param execution
         * @return
         */
-       public boolean validate(BuildingBlockExecution execution);
+       public Optional<String> validate(BuildingBlockExecution execution);
        
 }
index c2e7d1f..9e6ea53 100644 (file)
@@ -99,24 +99,24 @@ public abstract class FlowValidatorRunner<S extends FlowValidator, E extends Flo
        }
        
        protected boolean validate(List<? extends FlowValidator> validators, String bbName, BuildingBlockExecution execution) {
-               List<Pair<String, Boolean>> results = runValidations(validators, bbName, execution);
+               List<Pair<String, Optional<String>>> results = runValidations(validators, bbName, execution);
                
                if (!results.isEmpty()) {
                        exceptionBuilder.buildAndThrowWorkflowException(execution, 7000,
-                                       "Failed Validations:\n" + results.stream().map(item -> item.getValue0()).collect(Collectors.joining("\n")));
+                                       "Failed Validations:\n" + results.stream().map(item -> String.format("%s: %s", item.getValue0(), item.getValue1().get())).collect(Collectors.joining("\n")));
                }
                
                return true;
                
        }
-       protected List<Pair<String, Boolean>> runValidations(List<? extends FlowValidator> validators, String bbName, BuildingBlockExecution execution) {
+       protected List<Pair<String, Optional<String>>> runValidations(List<? extends FlowValidator> validators, String bbName, BuildingBlockExecution execution) {
                
                List<FlowValidator> filtered = filterValidators(validators, bbName);
                
-               List<Pair<String,Boolean>> results = new ArrayList<>();
+               List<Pair<String,Optional<String>>> results = new ArrayList<>();
                filtered.forEach(item -> results.add(new Pair<>(item.getClass().getName(), item.validate(execution))));
                
-               return results.stream().filter(item -> item.getValue1().equals(false)).collect(Collectors.toList());
+               return results.stream().filter(item -> item.getValue1().isPresent()).collect(Collectors.toList());
        }
        
        protected List<FlowValidator> filterValidators(List<? extends FlowValidator> validators, String bbName) {
index 7246af0..617f63f 100644 (file)
@@ -76,7 +76,7 @@ public class BuildingBlockValidatorRunnerTest {
                        fail("exception not thrown");
                } catch (BpmnError e) {
                        WorkflowException workflowException = (WorkflowException)execution.getVariable("WorkflowException");
-                       assertEquals("Failed Validations:\norg.onap.so.bpmn.common.validation.MyPreValidatorTwo\norg.onap.so.bpmn.common.validation.MyPreValidatorOne", workflowException.getErrorMessage());
+                       assertEquals("Failed Validations:\norg.onap.so.bpmn.common.validation.MyPreValidatorTwo: my-error-two\norg.onap.so.bpmn.common.validation.MyPreValidatorOne: my-error-one", workflowException.getErrorMessage());
                }
                runner.preValidate("test2", mock(BuildingBlockExecution.class));
        }
index 7aa4224..fbd709b 100644 (file)
@@ -21,6 +21,7 @@
 package org.onap.so.bpmn.common.validation;
 
 import java.util.Collections;
+import java.util.Optional;
 import java.util.Set;
 
 import org.onap.so.bpmn.common.BuildingBlockExecution;
@@ -35,8 +36,8 @@ public class MyPreValidatorFour implements PreBuildingBlockValidator {
        }
 
        @Override
-       public boolean validate(BuildingBlockExecution exeuction) {
-               return true;
+       public Optional<String> validate(BuildingBlockExecution exeuction) {
+               return Optional.of("my-error-four");
        }
 
 }
index 302bb2b..f642f91 100644 (file)
@@ -21,6 +21,7 @@
 package org.onap.so.bpmn.common.validation;
 
 import java.util.Collections;
+import java.util.Optional;
 import java.util.Set;
 
 import org.onap.so.bpmn.common.BuildingBlockExecution;
@@ -36,8 +37,8 @@ public class MyPreValidatorOne implements PreBuildingBlockValidator {
        }
 
        @Override
-       public boolean validate(BuildingBlockExecution exeuction) {
-               return false;
+       public Optional<String> validate(BuildingBlockExecution exeuction) {
+               return Optional.of("my-error-one");
        }
 
 }
index ca1a959..780fb43 100644 (file)
@@ -21,6 +21,7 @@
 package org.onap.so.bpmn.common.validation;
 
 import java.util.Collections;
+import java.util.Optional;
 import java.util.Set;
 
 import org.onap.so.bpmn.common.BuildingBlockExecution;
@@ -35,8 +36,8 @@ public class MyPreValidatorThree implements PreBuildingBlockValidator {
        }
 
        @Override
-       public boolean validate(BuildingBlockExecution exeuction) {
-               return true;
+       public Optional<String> validate(BuildingBlockExecution exeuction) {
+               return Optional.of("my-error-three");
        }
 
 }
index b74c914..c8ff6ef 100644 (file)
@@ -21,6 +21,7 @@
 package org.onap.so.bpmn.common.validation;
 
 import java.util.Collections;
+import java.util.Optional;
 import java.util.Set;
 
 import javax.annotation.Priority;
@@ -38,8 +39,8 @@ public class MyPreValidatorTwo implements PreBuildingBlockValidator {
        }
 
        @Override
-       public boolean validate(BuildingBlockExecution exeuction) {
-               return false;
+       public Optional<String> validate(BuildingBlockExecution exeuction) {
+               return Optional.of("my-error-two");
        }
 
 }
index 6538fe5..bfe3ec0 100644 (file)
@@ -21,6 +21,7 @@
 package org.onap.so.bpmn.common.validation;
 
 import java.util.Collections;
+import java.util.Optional;
 import java.util.Set;
 
 import org.onap.so.bpmn.common.BuildingBlockExecution;
@@ -36,8 +37,8 @@ public class WorkflowPreValidatorOne implements PreWorkflowValidator {
        }
 
        @Override
-       public boolean validate(BuildingBlockExecution exeuction) {
-               return false;
+       public Optional<String> validate(BuildingBlockExecution exeuction) {
+               return Optional.of("my-error-one");
        }
 
 }
index e20f0f2..ddf5f22 100644 (file)
@@ -21,6 +21,7 @@
 package org.onap.so.bpmn.common.validation;
 
 import java.util.Collections;
+import java.util.Optional;
 import java.util.Set;
 
 import javax.annotation.Priority;
@@ -38,8 +39,8 @@ public class WorkflowPreValidatorTwo implements PreWorkflowValidator {
        }
 
        @Override
-       public boolean validate(BuildingBlockExecution execution) {
-               return false;
+       public Optional<String> validate(BuildingBlockExecution exeuction) {
+               return Optional.of("my-error-two");
        }
 
 }
index 0dd2f41..5629f99 100644 (file)
@@ -75,7 +75,7 @@ public class WorkflowValidatorRunnerTest {
                        fail("exception not thrown");
                } catch (BpmnError e) {
                        WorkflowException workflowException = (WorkflowException) execution.getVariable("WorkflowException");
-                       assertEquals("Failed Validations:\norg.onap.so.bpmn.common.validation.WorkflowPreValidatorTwo\norg.onap.so.bpmn.common.validation.WorkflowPreValidatorOne", workflowException.getErrorMessage());
+                       assertEquals("Failed Validations:\norg.onap.so.bpmn.common.validation.WorkflowPreValidatorTwo: my-error-two\norg.onap.so.bpmn.common.validation.WorkflowPreValidatorOne: my-error-one", workflowException.getErrorMessage());
                }
                runner.preValidate("test2", mock(DelegateExecution.class));
        }