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();