summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hudson <hugohudson@google.com>2012-02-02 01:39:33 +0000
committerHugo Hudson <hugohudson@google.com>2012-02-02 01:39:33 +0000
commit2a267dd8513e727846c03395429f69e4ab17f1c6 (patch)
tree4a51b87f2323d0fe84e495eb666eb65cd566236a
parent25ab6b601720d62298a39f1b8bbd1dc99c252725 (diff)
downloadlittlemock-2a267dd8513e727846c03395429f69e4ab17f1c6.tar.gz
Update to r14 of LittleMock.
Change-Id: I94075779786b8a398a8664aa0be8b740ce811780
-rw-r--r--src/com/google/testing/littlemock/LittleMock.java8
-rw-r--r--tests/com/google/testing/littlemock/LittleMockTest.java17
2 files changed, 24 insertions, 1 deletions
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 @@ public class LittleMock {
}
/** 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 @@ public class LittleMock {
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.doThrow;
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.verify;
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 @@ public class LittleMockTest extends TestCase {
} 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();