You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by yo...@apache.org on 2013/07/10 21:34:56 UTC
svn commit: r1501933 - in /lucene/dev/trunk/solr:
core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java
test-framework/src/java/org/apache/solr/JSONTestUtil.java
Author: yonik
Date: Wed Jul 10 19:34:56 2013
New Revision: 1501933
URL: http://svn.apache.org/r1501933
Log:
tests: add regex capability to JSON test format
Modified:
lucene/dev/trunk/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java
lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java?rev=1501933&r1=1501932&r2=1501933&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/rest/schema/TestManagedSchemaFieldResource.java Wed Jul 10 19:34:56 2013
@@ -66,8 +66,7 @@ public class TestManagedSchemaFieldResou
public void testAddFieldMismatchedName() throws Exception {
assertJPut("/schema/fields/newfield",
json( "{'name':'something_else','type':'text','stored':'false'}" ),
- "/error/msg==\"Field name in the request body \\'something_else\\'"
- + " doesn\\'t match field name in the request URL \\'newfield\\'\"");
+ "/error/msg=='///regex:newfield///'");
}
@Test
Modified: lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java?rev=1501933&r1=1501932&r2=1501933&view=diff
==============================================================================
--- lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java (original)
+++ lucene/dev/trunk/solr/test-framework/src/java/org/apache/solr/JSONTestUtil.java Wed Jul 10 19:34:56 2013
@@ -21,6 +21,8 @@ import org.noggit.ObjectBuilder;
import org.apache.solr.common.util.StrUtils;
import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
public class JSONTestUtil {
@@ -179,6 +181,13 @@ class CollectionTester {
// generic fallback
if (!expected.equals(val)) {
+ if (expected instanceof String) {
+ String str = (String)expected;
+ if (str.length() > 6 && str.startsWith("///") && str.endsWith("///")) {
+ return handleSpecialString(str);
+ }
+ }
+
// make an exception for some numerics
if ((expected instanceof Integer && val instanceof Long || expected instanceof Long && val instanceof Integer)
&& ((Number)expected).longValue() == ((Number)val).longValue()) {
@@ -197,6 +206,29 @@ class CollectionTester {
return true;
}
+ private boolean handleSpecialString(String str) {
+ String code = str.substring(3,str.length()-3);
+ if ("ignore".equals(code)) {
+ return true;
+ } else if (code.startsWith("regex:")) {
+ String regex = code.substring("regex:".length());
+ if (!(val instanceof String)) {
+ setErr("mismatch: '" + expected + "'!='" + val + "', value is not a string");
+ return false;
+ }
+ Pattern pattern = Pattern.compile(regex);
+ Matcher matcher = pattern.matcher((String)val);
+ if (matcher.find()) {
+ return true;
+ }
+ setErr("mismatch: '" + expected + "'!='" + val + "', regex does not match");
+ return false;
+ }
+
+ setErr("mismatch: '" + expected + "'!='" + val + "'");
+ return false;
+ }
+
boolean matchList() {
List expectedList = (List)expected;
List v = asList();