aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/zwobble/mammoth/tests/ResultMatchers.java
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-03-26 09:27:45 +0000
committerMichael Williamson <mike@zwobble.org>2016-03-26 09:27:45 +0000
commitabbcc3915fa783c648436ef52e15da923a246dd1 (patch)
tree2db501fd1a82dc608217623cc53b8a6b13f71bb5 /src/test/java/org/zwobble/mammoth/tests/ResultMatchers.java
parent55ec6fed7278825bee4b6db24965b69b9c496ed5 (diff)
Lazily combine warnings in results
Diffstat (limited to 'src/test/java/org/zwobble/mammoth/tests/ResultMatchers.java')
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/ResultMatchers.java36
1 files changed, 32 insertions, 4 deletions
diff --git a/src/test/java/org/zwobble/mammoth/tests/ResultMatchers.java b/src/test/java/org/zwobble/mammoth/tests/ResultMatchers.java
index a5b9585..c66fbff 100644
--- a/src/test/java/org/zwobble/mammoth/tests/ResultMatchers.java
+++ b/src/test/java/org/zwobble/mammoth/tests/ResultMatchers.java
@@ -1,21 +1,49 @@
package org.zwobble.mammoth.tests;
-import com.google.common.collect.ImmutableSet;
+import org.hamcrest.FeatureMatcher;
import org.hamcrest.Matcher;
import org.hamcrest.Matchers;
import org.zwobble.mammoth.Result;
+import org.zwobble.mammoth.internal.results.InternalResult;
-import static org.hamcrest.Matchers.hasProperty;
+import static org.hamcrest.Matchers.*;
+import static org.zwobble.mammoth.internal.util.MammothLists.eagerMap;
+import static org.zwobble.mammoth.internal.util.MammothLists.list;
import static org.zwobble.mammoth.tests.DeepReflectionMatcher.deepEquals;
public class ResultMatchers {
+ public static Matcher<InternalResult<?>> isInternalSuccess(Object value) {
+ return isInternalResult(deepEquals(value), list());
+ }
+
+ public static Matcher<InternalResult<?>> isInternalSuccess(Matcher<?> valueMatcher) {
+ return isInternalResult(valueMatcher, list());
+ }
+
+ public static Matcher<InternalResult<?>> isInternalResult(Matcher<?> valueMatcher, Iterable<String> warnings) {
+ return new FeatureMatcher<InternalResult<?>, Result<?>>(isResult(valueMatcher, warnings), "InternalResult as Result", "Result") {
+ @Override
+ protected Result<?> featureValueOf(InternalResult<?> actual) {
+ return actual.toResult();
+ }
+ };
+ }
+
+ public static Matcher<Result<?>> isSuccess(Object value) {
+ return isSuccess(deepEquals(value));
+ }
+
+ public static Matcher<Result<?>> isSuccess(Matcher<?> valueMatcher) {
+ return isResult(valueMatcher, list());
+ }
+
public static Matcher<Result<?>> isResult(Matcher<?> valueMatcher, Iterable<String> warnings) {
return Matchers.allOf(
hasProperty("value", valueMatcher),
hasWarnings(warnings));
}
- public static Matcher<Result<?>> hasWarnings(Iterable<String> warnings) {
- return hasProperty("warnings", deepEquals(ImmutableSet.copyOf(warnings)));
+ public static Matcher<Object> hasWarnings(Iterable<String> warnings) {
+ return hasProperty("warnings", containsInAnyOrder(eagerMap(warnings, Matchers::equalTo)));
}
}