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 + "'"); } }