[ https://issues.apache.org/jira/browse/SLING-12833?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Konrad Windszus closed SLING-12833. ----------------------------------- > Better description of mismatch in ResourcePropertiesMatcher > ----------------------------------------------------------- > > Key: SLING-12833 > URL: https://issues.apache.org/jira/browse/SLING-12833 > Project: Sling > Issue Type: Improvement > Components: Testing > Affects Versions: Testing Hamcrest 1.0.2 > Reporter: Konrad Windszus > Assignee: Konrad Windszus > Priority: Major > Fix For: Testing Hamcrest 1.1.0 > > > When using ResourcePropertiesMatcher with lots of properties it is hard to > spot the actual difference from the output message. It should highlight > - the first property name where a difference occurs > - the expected value and type vs the actual value and type for that property > Current example output of 1.0.2 > {code} > java.lang.AssertionError: > Expected: Resource with properties > [<dictionaryPath=/content/dictionaries/fruit/i18n>,<editable=true>,<en=foo>,<escapedKey=test\r\n%&special··test\t·characters>,<key=test > %&special test > characters>,<languages=[en,nl_BE]>,<messageEntryPaths=[/content/dictionaries/fruit/i18n/en/specialkey]>,<validationMessages=[]>] > but: was Resource with properties > [<dictionaryPath=/content/dictionaries/fruit/i18n>,<editable=true>,<en=foo>,<escapedKey=test\r\n%&special··test\t·characters>,<key=test > %&special test > characters>,<languages=[en,nl_BE]>,<messageEntryPaths=[/content/dictionaries/fruit/i18n/en/specialkey]>,<validationMessages=[]>] > (resource: <ValueMapResource, > type=aem-dictionary-translator/components/combining-message-entry, > path=/mnt/dictionary/content/dictionaries/fruit/i18n/test\u000D\u000A\u0025&special > test characters>) > at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20) > at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:8) > at > be.orbinson.aem.dictionarytranslator.services.impl.CombiningMessageEntryResourceProviderTest.syntheticMessageEntryPathShouldReturnProperResource(CombiningMessageEntryResourceProviderTest.java:109) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) > {code} > Proposed improved Output > {code} > java.lang.AssertionError: > Expected: Resource with properties > [<dictionaryPath=/content/dictionaries/fruit/i18n>,<editable=true>,<en=foo>,<escapedKey=test\r\n%&special··test\t·characters>,<key=test > %&special test > characters>,<languages=[en,nl_BE]>,<messageEntryPaths=[/content/dictionaries/fruit/i18n/en/specialkey]>,<validationMessages=[]>] > but: was Resource with properties > [<dictionaryPath=/content/dictionaries/fruit/i18n>,<editable=true>,<en=foo>,<escapedKey=test\r\n%&special··test\t·characters>,<key=test > %&special test > characters>,<languages=[en,nl_BE]>,<messageEntryPaths=[/content/dictionaries/fruit/i18n/en/specialkey]>,<validationMessages=[]>] > (resource: <ValueMapResource, > type=aem-dictionary-translator/components/combining-message-entry, > path=/mnt/dictionary/content/dictionaries/fruit/i18n/test\u000D\u000A\u0025&special > test characters>) > First mismatch in property "validationMessages": expected value [] of > type "[Ljava.lang.String;" but was value <[]> of type "java.util.TreeSet" > at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20) > at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:6) > at > be.orbinson.aem.dictionarytranslator.services.impl.CombiningMessageEntryResourceProviderTest.syntheticMessageEntryPathShouldReturnProperResource(CombiningMessageEntryResourceProviderTest.java:109) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) > at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) > {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)