Author: kwin
Date: Wed Feb  3 15:37:01 2016
New Revision: 1728333

URL: http://svn.apache.org/viewvc?rev=1728333&view=rev
Log:
SLING-5481 improve mismatch failure message for Sling Hamcrest matchers

Modified:
    
sling/trunk/testing/hamcrest/src/main/java/org/apache/sling/hamcrest/matchers/ResourceChildrenMatcher.java
    
sling/trunk/testing/hamcrest/src/main/java/org/apache/sling/hamcrest/matchers/ResourceMatcher.java

Modified: 
sling/trunk/testing/hamcrest/src/main/java/org/apache/sling/hamcrest/matchers/ResourceChildrenMatcher.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/hamcrest/src/main/java/org/apache/sling/hamcrest/matchers/ResourceChildrenMatcher.java?rev=1728333&r1=1728332&r2=1728333&view=diff
==============================================================================
--- 
sling/trunk/testing/hamcrest/src/main/java/org/apache/sling/hamcrest/matchers/ResourceChildrenMatcher.java
 (original)
+++ 
sling/trunk/testing/hamcrest/src/main/java/org/apache/sling/hamcrest/matchers/ResourceChildrenMatcher.java
 Wed Feb  3 15:37:01 2016
@@ -16,6 +16,7 @@
  */
 package org.apache.sling.hamcrest.matchers;
 
+import java.util.ArrayList;
 import java.util.List;
 
 import org.apache.sling.api.resource.Resource;
@@ -48,5 +49,14 @@ public class ResourceChildrenMatcher ext
         }
         return true;
     }
-    
+
+    @Override
+    protected void describeMismatchSafely(Resource item, Description 
mismatchDescription) {
+        List<String> actualChildNames = new ArrayList<String>();
+        for (Resource child : item.getChildren()) {
+            actualChildNames.add(child.getName());
+        }
+        mismatchDescription.appendText("was Resource with children 
").appendValueList("[", ",", "]", actualChildNames).appendText(" (resource: 
").appendValue(item).appendText(")");
+    }
+
 }
\ No newline at end of file

Modified: 
sling/trunk/testing/hamcrest/src/main/java/org/apache/sling/hamcrest/matchers/ResourceMatcher.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/testing/hamcrest/src/main/java/org/apache/sling/hamcrest/matchers/ResourceMatcher.java?rev=1728333&r1=1728332&r2=1728333&view=diff
==============================================================================
--- 
sling/trunk/testing/hamcrest/src/main/java/org/apache/sling/hamcrest/matchers/ResourceMatcher.java
 (original)
+++ 
sling/trunk/testing/hamcrest/src/main/java/org/apache/sling/hamcrest/matchers/ResourceMatcher.java
 Wed Feb  3 15:37:01 2016
@@ -16,6 +16,9 @@
  */
 package org.apache.sling.hamcrest.matchers;
 
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.sling.api.resource.Resource;
@@ -54,4 +57,14 @@ public class ResourceMatcher extends Typ
         return true;
     }
 
+    @Override
+    protected void describeMismatchSafely(Resource item, Description 
mismatchDescription) {
+        Map<String, Object> actualProperties = item.adaptTo(ValueMap.class);
+        if (actualProperties == null) {
+            mismatchDescription.appendText("was Resource which does not expose 
a value map via adaptTo");
+            return;
+        }
+        mismatchDescription.appendText("was Resource with properties 
").appendValueList("[", ",", "]", actualProperties.entrySet()).appendText(" 
(resource: ").appendValue(item).appendText(")");
+    }
+
 }
\ No newline at end of file


Reply via email to