Update to r14 of LittleMock.
Change-Id: I94075779786b8a398a8664aa0be8b740ce811780
diff --git a/src/com/google/testing/littlemock/LittleMock.java b/src/com/google/testing/littlemock/LittleMock.java
index 0d93c4f..9946798 100644
--- a/src/com/google/testing/littlemock/LittleMock.java
+++ b/src/com/google/testing/littlemock/LittleMock.java
@@ -898,7 +898,7 @@
}
/** Represents something capable of testing if it matches an argument or not. */
- /*package*/ interface ArgumentMatcher {
+ public interface ArgumentMatcher {
public boolean matches(Object value);
}
@@ -980,6 +980,12 @@
return value;
}
+ /** A custom argument matcher, should be used only for object arguments not primitives. */
+ public static <T> T matches(ArgumentMatcher argument) {
+ sMatchArguments.add(argument);
+ return null;
+ }
+
/** Utility method to throw an AssertionError if an assertion fails. */
private static void expect(boolean result, String message) {
if (!result) {
diff --git a/tests/com/google/testing/littlemock/LittleMockTest.java b/tests/com/google/testing/littlemock/LittleMockTest.java
index fde8c7c..ad12f3e 100644
--- a/tests/com/google/testing/littlemock/LittleMockTest.java
+++ b/tests/com/google/testing/littlemock/LittleMockTest.java
@@ -39,6 +39,7 @@
import static com.google.testing.littlemock.LittleMock.eq;
import static com.google.testing.littlemock.LittleMock.initMocks;
import static com.google.testing.littlemock.LittleMock.isA;
+import static com.google.testing.littlemock.LittleMock.matches;
import static com.google.testing.littlemock.LittleMock.mock;
import static com.google.testing.littlemock.LittleMock.never;
import static com.google.testing.littlemock.LittleMock.reset;
@@ -48,6 +49,8 @@
import static com.google.testing.littlemock.LittleMock.verifyNoMoreInteractions;
import static com.google.testing.littlemock.LittleMock.verifyZeroInteractions;
+import com.google.testing.littlemock.LittleMock.ArgumentMatcher;
+
import junit.framework.TestCase;
import java.io.IOException;
@@ -1413,6 +1416,20 @@
} catch (IllegalStateException expected) {}
}
+ public void testCustomMatcher() {
+ ArgumentMatcher argumentMatcher = new ArgumentMatcher() {
+ @Override
+ public boolean matches(Object value) {
+ return ((String) value).contains("[]");
+ }
+ };
+ mFoo.add("as[]df");
+ mFoo.add("qwer[]asdf");
+ mFoo.add("1234");
+ verify(mFoo, times(3)).add(anyString());
+ verify(mFoo, times(2)).add((String) matches(argumentMatcher));
+ }
+
public static class Jim {
public void bob() {
fail();