- List<Element> actualElems = aActual.elements();
- TestCase.assertEquals(aMsg + "/#elements", expectedElems.size(), actualElems.size());
- for (int i = 0; i < expectedElems.size(); i++) {
- String msg = aMsg + "/element(" + i + ")";
+ List<Element> actualElems = aActual.elements();
+ TestCase.assertEquals("count(" + aMsg + "/*)", expectedElems.size(),
+ actualElems.size());
+ // determine the how-manyth element of the given name we are at.
+ // Maps element name to the last used index (or null if not yet used)
+ Map<String, Integer> elementIndex = new TreeMap<String, Integer>();
+ for (int i = 0; i < expectedElems.size(); i++) {
+ String elemName = expectedElems.get(i).getName();
+ Integer index = elementIndex.get(elemName);
+ if (index == null) {
+ index = 1;
+ } else {
+ index++;
+ }
+ elementIndex.put(elemName, index);
+ String msg = aMsg + "/" + expectedElems.get(i).getName() + "["
+ + index + "]";
+