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]>

Reply via email to