summaryrefslogtreecommitdiffstats
path: root/testutil/src/main/java/com/yahoo/test/PatternMatcher.java
diff options
context:
space:
mode:
Diffstat (limited to 'testutil/src/main/java/com/yahoo/test/PatternMatcher.java')
-rw-r--r--testutil/src/main/java/com/yahoo/test/PatternMatcher.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/testutil/src/main/java/com/yahoo/test/PatternMatcher.java b/testutil/src/main/java/com/yahoo/test/PatternMatcher.java
new file mode 100644
index 00000000000..84cc94e32a2
--- /dev/null
+++ b/testutil/src/main/java/com/yahoo/test/PatternMatcher.java
@@ -0,0 +1,38 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.test;
+
+import org.hamcrest.BaseMatcher;
+import org.hamcrest.Description;
+import org.hamcrest.Factory;
+import org.hamcrest.Matcher;
+
+/**
+ * Matches a string against an expected regex pattern.
+ *
+ * @author gjoranv
+ * @since 5.1.7
+ */
+public class PatternMatcher extends BaseMatcher<String> {
+
+ private final String pattern;
+
+ public PatternMatcher(String pattern) {
+ this.pattern = pattern;
+ }
+
+ @Override
+ public void describeTo(Description description) {
+ description.appendText("matches expression '" + pattern + "'");
+ }
+
+ @Override
+ public boolean matches(Object o) {
+ return ((String)o).matches(pattern);
+ }
+
+ @Factory
+ public static <T> Matcher<String> matchesPattern(String pattern) {
+ return new PatternMatcher(pattern);
+ }
+
+} \ No newline at end of file