juergen 2002/08/01 06:32:17
Modified:
testsuite/testsuite/junit/src/org/apache/slide/testsuite/testtools/tprocessor
XMLResponseBodyAssert.java
Log:
BUG: in some case t-processor reported an xml size error, but did not count the test
case in error.
Revision Changes Path
1.11 +51 -34
jakarta-slide/testsuite/testsuite/junit/src/org/apache/slide/testsuite/testtools/tprocessor/XMLResponseBodyAssert.java
Index: XMLResponseBodyAssert.java
===================================================================
RCS file:
/home/cvs/jakarta-slide/testsuite/testsuite/junit/src/org/apache/slide/testsuite/testtools/tprocessor/XMLResponseBodyAssert.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XMLResponseBodyAssert.java 30 Jul 2002 10:01:55 -0000 1.10
+++ XMLResponseBodyAssert.java 1 Aug 2002 13:32:17 -0000 1.11
@@ -140,6 +140,14 @@
public boolean compareTrees(Element element1, Element element2) {
+// System.out.println("#########################");
+// System.out.println("####### method = " + method.getName());
+// System.out.println("####### expected ########");
+// System.out.println(TProcessors.getElementString(element1));
+// System.out.println("####### received ########");
+// System.out.println(TProcessors.getElementString(element2));
+// System.out.println("#########################");
+// System.out.println();
return compareTrees("", element1, element2);
}
@@ -147,8 +155,6 @@
private boolean compareTrees(String pathName, Element element1, Element
element2) {
boolean result = true;
- List children1 = new ArrayList(element1.getChildren());
- List children2 = new ArrayList(element2.getChildren());
Comparator nameCompare = new Comparator() {
public int compare(Object o1, Object o2) {
@@ -158,8 +164,8 @@
}
};
- Collections.sort(children1, nameCompare);
- Collections.sort(children2, nameCompare);
+// System.out.println("########## comparing now " + element1 + " with " +
element2);
+
// check the name of the element
if (!element1.getName().equals(element2.getName())){
@@ -176,11 +182,19 @@
result = false;
}
+
+ // now check the children
+ List children1 = new ArrayList(element1.getChildren());
+ List children2 = new ArrayList(element2.getChildren());
+ Collections.sort(children1, nameCompare);
+ Collections.sort(children2, nameCompare);
+
// check the count of children
- if (element1.getChildren().size() != element2.getChildren().size()){
- reportDifferentSizeError(element1, element2, pathName,
element1.getName());
- children1 = repairElementList(element1, element2, getPathName(pathName,
element1.getName()));
- children2 = repairElementList(element2, element1, getPathName(pathName,
element2.getName()));
+ if (children1.size() != children2.size()){
+ reportDifferentSizeError(children1, children2, pathName,
element1.getName());
+ List children1Result = repairElementList(children1, children2,
getPathName(pathName, element1.getName()));
+ children2 = repairElementList(children2, children1,
getPathName(pathName, element2.getName()));
+ children1 = children1Result;
//result = false;
}
@@ -206,27 +220,27 @@
return result;
}
- private void reportDifferentSizeError(Element element1, Element element2,
String path, String name) {
+ private void reportDifferentSizeError(List expected, List received, String
path, String name) {
String pathName = getPathName(path, name);
- List expectedAndNotReceived = getChildNames(element1, pathName);
- List receivedAndNotExpected = getChildNames(element2, pathName);
- expectedAndNotReceived.removeAll(getChildNames(element2, pathName));
- receivedAndNotExpected.removeAll(getChildNames(element1, pathName));
+ List expectedAndNotReceived = getChildNames(expected, pathName);
+ List receivedAndNotExpected = getChildNames(received, pathName);
+ expectedAndNotReceived.removeAll(getChildNames(received, pathName));
+ receivedAndNotExpected.removeAll(getChildNames(expected, pathName));
List illegalElements = new ArrayList(expectedAndNotReceived);
illegalElements.addAll(receivedAndNotExpected);
illegalElements = removeLegalNamesFromList(pathName, illegalElements);
if (illegalElements.size() > 0 ||
- repairElementList(element1, element2, getPathName(pathName,
element1.getName())).size() !=
- repairElementList(element2, element1, getPathName(pathName,
element2.getName())).size()) {
+ repairElementList(expected, received, getPathName(pathName,
name)).size() !=
+ repairElementList(received, expected, getPathName(pathName,
name)).size()) {
xmlresult.writeElementStart("XMLSizeError");
xmlresult.writeElement("path", pathName);
- xmlresult.writeElement("expectedSize", element1.getChildren().size());
- xmlresult.writeElement("receivedSize", element2.getChildren().size());
- xmlresult.writeElement("expectedElements", getChildNames(element1,
pathName).toString());
- xmlresult.writeElement("receivedElements", getChildNames(element2,
pathName).toString());
+ xmlresult.writeElement("expectedSize", expected.size());
+ xmlresult.writeElement("receivedSize", received.size());
+ xmlresult.writeElement("expectedElements", getChildNames(expected,
pathName).toString());
+ xmlresult.writeElement("receivedElements", getChildNames(received,
pathName).toString());
expectedAndNotReceived = removeLegalNamesFromList(pathName,
expectedAndNotReceived);
if (expectedAndNotReceived.size() > 0){
xmlresult.writeElement("expectedAndNotReceived",
expectedAndNotReceived.toString());
@@ -240,19 +254,22 @@
}
- private List repairElementList(Element element1, Element element2, String
pathName) {
- List result = element1.getChildren();
+ private List repairElementList(List list1, List list2, String pathName) {
+ List result = list1;
+
+ List elementNamesToBeRemoved = getChildNames(list2, pathName);
+ elementNamesToBeRemoved.removeAll(getChildNames(list1, pathName));
- List elementNamesToBeRemoved = getChildNames(element1, pathName);
- elementNamesToBeRemoved.removeAll(getChildNames(element2, pathName));
- List res = getChildNames(element1, pathName);
- res.removeAll(elementNamesToBeRemoved);
-
- // System.out.println("############# Set1 " +
getChildNames(element1, pathName));
- // System.out.println("############# Set2 " +
getChildNames(element2, pathName));
- // System.out.println("############# to remove " +
elementNamesToBeRemoved);
- // System.out.println("############# expected " + res);
+//System.out.println("############# list1 " + list1);
+//System.out.println("############# list2 " + list2);
+//System.out.println("############# Set1 " + getChildNames(list1, pathName));
+//System.out.println("############# Set2 " + getChildNames(list2, pathName));
+//System.out.println("############# to remove " + elementNamesToBeRemoved);
+//List res = getChildNames(list1, pathName);
+//res.removeAll(elementNamesToBeRemoved);
+//System.out.println("############# expected " + res);
+//System.out.println("############# result " + result);
Iterator iter = elementNamesToBeRemoved.iterator();
while (iter.hasNext()){
@@ -262,7 +279,7 @@
result = sort(result, pathName);
- // System.out.println("#### sorted remaining = " +
getChildNames(result, pathName));
+//System.out.println("#### repaired list = " + getChildNames(result, pathName));
return result;
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>