This is an automated email from the ASF dual-hosted git repository.

danwatford pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git

commit 9444b6bdf6b4f58c00b415dd193f835abdcdcbe3
Author: Daniel Watford <dan...@watfordconsulting.com>
AuthorDate: Tue Oct 4 09:09:15 2022 +0100

    Improved: Description given by matchers in tests related to 
RenderableFtlFormElementsBuilder.
---
 .../widget/renderer/macro/MacroCallMatcher.java    | 29 ++++++++++++++++------
 .../MacroCallParameterBooleanValueMatcher.java     |  2 +-
 ... => MacroCallParameterIntegerValueMatcher.java} | 10 ++++----
 .../macro/MacroCallParameterMapValueMatcher.java   |  2 +-
 .../renderer/macro/MacroCallParameterMatcher.java  | 14 +++++++++--
 .../MacroCallParameterStringValueMatcher.java      |  4 +--
 6 files changed, 42 insertions(+), 19 deletions(-)

diff --git 
a/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallMatcher.java
 
b/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallMatcher.java
index 647886f225..5212bbc99a 100644
--- 
a/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallMatcher.java
+++ 
b/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallMatcher.java
@@ -25,11 +25,14 @@ import org.hamcrest.TypeSafeMatcher;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 
 public final class MacroCallMatcher extends TypeSafeMatcher<RenderableFtl> {
     private final String macroName;
     private final MacroCallParameterMatcher[] parameterMatchers;
 
+    private boolean nameMatched;
     private final List<MacroCallParameterMatcher> failedParameterMatchers = 
new ArrayList<>();
 
     public MacroCallMatcher(final String macroName, final 
MacroCallParameterMatcher... parameterMatchers) {
@@ -42,7 +45,7 @@ public final class MacroCallMatcher extends 
TypeSafeMatcher<RenderableFtl> {
     @Override
     protected boolean matchesSafely(final RenderableFtl item) {
         final RenderableFtlMacroCall macroCall = (RenderableFtlMacroCall) item;
-        boolean nameMatched = (macroName == null) || 
macroName.equals(macroCall.getName());
+        nameMatched = (macroName == null) || 
macroName.equals(macroCall.getName());
 
         for (final MacroCallParameterMatcher parameterMatcher : 
parameterMatchers) {
             boolean matchForParameterMatcher = macroCall.getParameters()
@@ -59,7 +62,7 @@ public final class MacroCallMatcher extends 
TypeSafeMatcher<RenderableFtl> {
 
     @Override
     public void describeTo(final Description description) {
-        description.appendText("MacroCall has name '" + macroName + "' ");
+        description.appendText("MacroCall named '" + macroName + "' ");
         description.appendText("with Parameters[");
         for (final MacroCallParameterMatcher parameterMatcher : 
parameterMatchers) {
             parameterMatcher.describeTo(description);
@@ -71,17 +74,27 @@ public final class MacroCallMatcher extends 
TypeSafeMatcher<RenderableFtl> {
     protected void describeMismatchSafely(final RenderableFtl item, final 
Description mismatchDescription) {
         final RenderableFtlMacroCall macroCall = (RenderableFtlMacroCall) item;
 
-        mismatchDescription.appendText("MacroCall has name '" + 
macroCall.getName() + "' ");
+        if (!nameMatched) {
+            mismatchDescription.appendText("MacroCall has name '" + 
macroCall.getName() + "' but expected was '" + macroName + "'");
+        }
 
         if (!failedParameterMatchers.isEmpty()) {
-            mismatchDescription.appendText("with Parameters[");
             for (final MacroCallParameterMatcher failedParameterMatcher : 
failedParameterMatchers) {
-                macroCall.getParameters()
+
+                final String failedParameterName = 
failedParameterMatcher.getName();
+                final Optional<Map.Entry<String, Object>> 
matchedParameterByName = macroCall.getParameters()
                         .entrySet()
-                        .forEach(entry ->
-                                failedParameterMatcher.describeMismatch(entry, 
mismatchDescription));
+                        .stream()
+                        .filter(entry -> 
failedParameterName.equals(entry.getKey()))
+                        .findFirst();
+
+                matchedParameterByName.ifPresent(parameterEntry ->
+                        
failedParameterMatcher.describeMismatchSafely(parameterEntry, 
mismatchDescription));
+
+                if (!matchedParameterByName.isPresent()) {
+                    mismatchDescription.appendText("Parameter '" + 
failedParameterName + "' was missing, ");
+                }
             }
-            mismatchDescription.appendText("]");
         }
     }
 
diff --git 
a/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterBooleanValueMatcher.java
 
b/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterBooleanValueMatcher.java
index 2ab2769cc1..c850dc0c61 100644
--- 
a/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterBooleanValueMatcher.java
+++ 
b/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterBooleanValueMatcher.java
@@ -35,7 +35,7 @@ public final class MacroCallParameterBooleanValueMatcher 
extends TypeSafeMatcher
 
     @Override
     public void describeTo(final Description description) {
-        description.appendText("with boolean value '" + value + "'");
+        description.appendText("boolean value '" + value + "'");
     }
 
     @Override
diff --git 
a/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterBooleanValueMatcher.java
 
b/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterIntegerValueMatcher.java
similarity index 82%
copy from 
framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterBooleanValueMatcher.java
copy to 
framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterIntegerValueMatcher.java
index 2ab2769cc1..57e55caaf3 100644
--- 
a/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterBooleanValueMatcher.java
+++ 
b/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterIntegerValueMatcher.java
@@ -21,10 +21,10 @@ package org.apache.ofbiz.widget.renderer.macro;
 import org.hamcrest.Description;
 import org.hamcrest.TypeSafeMatcher;
 
-public final class MacroCallParameterBooleanValueMatcher extends 
TypeSafeMatcher<Object> {
-    private final boolean value;
+public final class MacroCallParameterIntegerValueMatcher extends 
TypeSafeMatcher<Object> {
+    private final int value;
 
-    public MacroCallParameterBooleanValueMatcher(final boolean value) {
+    public MacroCallParameterIntegerValueMatcher(final int value) {
         this.value = value;
     }
 
@@ -35,11 +35,11 @@ public final class MacroCallParameterBooleanValueMatcher 
extends TypeSafeMatcher
 
     @Override
     public void describeTo(final Description description) {
-        description.appendText("with boolean value '" + value + "'");
+        description.appendText("integer value '" + value + "'");
     }
 
     @Override
     protected void describeMismatchSafely(final Object item, final Description 
mismatchDescription) {
-        mismatchDescription.appendText("with boolean value '" + item + "'");
+        mismatchDescription.appendText("with integer value '" + item + "'");
     }
 }
diff --git 
a/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterMapValueMatcher.java
 
b/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterMapValueMatcher.java
index 84e98f97d4..bc2d6a2472 100644
--- 
a/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterMapValueMatcher.java
+++ 
b/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterMapValueMatcher.java
@@ -38,7 +38,7 @@ public final class MacroCallParameterMapValueMatcher extends 
TypeSafeMatcher<Obj
 
     @Override
     public void describeTo(final Description description) {
-        description.appendText("with map value '");
+        description.appendText("map value '");
         matcher.describeTo(description);
         description.appendText("' ");
     }
diff --git 
a/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterMatcher.java
 
b/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterMatcher.java
index d978f4e41b..30c37bee3a 100644
--- 
a/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterMatcher.java
+++ 
b/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterMatcher.java
@@ -36,6 +36,10 @@ public final class MacroCallParameterMatcher extends 
TypeSafeMatcher<Map.Entry<S
         this.valueMatcher = valueMatcher;
     }
 
+    public String getName() {
+        return name;
+    }
+
     @Override
     protected boolean matchesSafely(final Map.Entry<String, Object> item) {
         if (name != null) {
@@ -52,19 +56,21 @@ public final class MacroCallParameterMatcher extends 
TypeSafeMatcher<Map.Entry<S
     @Override
     public void describeTo(final Description description) {
         if (name != null) {
-            description.appendText("has name '" + name + "' ");
+            description.appendText("'" + name + "' ");
         }
 
         if (valueMatcher != null) {
             valueMatcher.describeTo(description);
         }
+
+        description.appendText(", ");
     }
 
     @Override
     protected void describeMismatchSafely(final Map.Entry<String, Object> item,
                                           final Description 
mismatchDescription) {
         if (name != null) {
-            mismatchDescription.appendText("has name '" + item.getKey() + "' 
");
+            mismatchDescription.appendText("Parameter '" + item.getKey() + "' 
");
         }
 
         if (valueMatcher != null) {
@@ -82,6 +88,10 @@ public final class MacroCallParameterMatcher extends 
TypeSafeMatcher<Map.Entry<S
         return new MacroCallParameterMatcher(name, new 
MacroCallParameterStringValueMatcher(value));
     }
 
+    public static MacroCallParameterMatcher hasNameAndIntegerValue(final 
String name, final int value) {
+        return new MacroCallParameterMatcher(name, new 
MacroCallParameterIntegerValueMatcher(value));
+    }
+
     public static MacroCallParameterMatcher hasNameAndBooleanValue(final 
String name, final boolean value) {
         return new MacroCallParameterMatcher(name, new 
MacroCallParameterBooleanValueMatcher(value));
     }
diff --git 
a/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterStringValueMatcher.java
 
b/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterStringValueMatcher.java
index ebe63682e4..b051a733f3 100644
--- 
a/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterStringValueMatcher.java
+++ 
b/framework/widget/src/test/java/org/apache/ofbiz/widget/renderer/macro/MacroCallParameterStringValueMatcher.java
@@ -35,11 +35,11 @@ public final class MacroCallParameterStringValueMatcher 
extends TypeSafeMatcher<
 
     @Override
     public void describeTo(final Description description) {
-        description.appendText("with string value '" + value + "'");
+        description.appendText("string value '" + value + "'");
     }
 
     @Override
     protected void describeMismatchSafely(final Object item, final Description 
mismatchDescription) {
-        mismatchDescription.appendText("with string value '" + item + "'");
+        mismatchDescription.appendText("with value '" + item + "'");
     }
 }

Reply via email to