dims        2002/06/29 12:19:17

  Modified:    java/test/saaj PackageTests.java
               java/src/org/apache/axis/message PrefixedQName.java
  Added:       java/test/saaj TestEnvelope.java
  Log:
  Cleanup PrefixedQName's equals method and added a test case.
  
  Revision  Changes    Path
  1.3       +1 -0      xml-axis/java/test/saaj/PackageTests.java
  
  Index: PackageTests.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/test/saaj/PackageTests.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PackageTests.java 24 Jun 2002 10:43:40 -0000      1.2
  +++ PackageTests.java 29 Jun 2002 19:19:16 -0000      1.3
  @@ -17,6 +17,7 @@
                   suite.addTestSuite(test.saaj.TestAttachment.class);
             }
           }catch( Throwable t){;}
  +        suite.addTestSuite(test.saaj.TestEnvelope.class);
           return suite;
       }
   }
  
  
  
  1.1                  xml-axis/java/test/saaj/TestEnvelope.java
  
  Index: TestEnvelope.java
  ===================================================================
  package test.saaj;
  
  import javax.xml.soap.MessageFactory;
  import javax.xml.soap.Name;
  import javax.xml.soap.SOAPBody;
  import javax.xml.soap.SOAPConnection;
  import javax.xml.soap.SOAPConnectionFactory;
  import javax.xml.soap.SOAPEnvelope;
  import javax.xml.soap.SOAPMessage;
  
  public class TestEnvelope extends junit.framework.TestCase {
  
      public TestEnvelope(String name) {
          super(name);
      }
  
      public void testAttributes() throws Exception {
          SOAPConnectionFactory scFactory = SOAPConnectionFactory.newInstance();
          SOAPConnection con = scFactory.createConnection();
  
          MessageFactory factory = MessageFactory.newInstance();
          SOAPMessage message = factory.createMessage();
          SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
          SOAPBody body = envelope.getBody();
  
          Name name1 = envelope.createName("MyAttr1");
          String value1 = "MyValue1";
          Name name2 = envelope.createName("MyAttr2");
          String value2 = "MyValue2";
          Name name3 = envelope.createName("MyAttr3");
          String value3 = "MyValue3";
          body.addAttribute(name1, value1);
          body.addAttribute(name2, value2);
          body.addAttribute(name3, value3);
          java.util.Iterator iterator = body.getAllAttributes();
          assertTrue(getIteratorCount(iterator) == 3);
          iterator = body.getAllAttributes();
          boolean foundName1 = false;
          boolean foundName2 = false;
          boolean foundName3 = false;
          while (iterator.hasNext()) {
              Name name = (Name) iterator.next();
              if (name.equals(name1))
                  foundName1 = true;
              else if (name.equals(name2))
                  foundName2 = true;
              else if (name.equals(name3))
                  foundName3 = true;
          }
          assertTrue(foundName1 && foundName2 && foundName3);
      }
  
      private int getIteratorCount(java.util.Iterator i) {
          int count = 0;
          while (i.hasNext()) {
              count++;
              i.next();
          }
          return count;
      }
  
      public static void main(String[] args) throws Exception {
          test.saaj.TestEnvelope tester = new test.saaj.TestEnvelope("TestEnvelope");
          tester.testAttributes();
      }
  }
  
  
  
  1.4       +7 -3      xml-axis/java/src/org/apache/axis/message/PrefixedQName.java
  
  Index: PrefixedQName.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/PrefixedQName.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PrefixedQName.java        11 Jun 2002 14:53:58 -0000      1.3
  +++ PrefixedQName.java        29 Jun 2002 19:19:17 -0000      1.4
  @@ -60,12 +60,17 @@
   import javax.xml.namespace.QName;
   
   public class PrefixedQName implements Name {
  +    /** comment/shared empty string */
  +    private static final String emptyString = "".intern();
  +    
       private String prefix;
       private QName qName;
       
       public PrefixedQName(String uri, String localName, String pre) {
           qName = new QName(uri, localName);
  -        prefix = pre;
  +        prefix = (pre == null)
  +                            ? emptyString
  +                            : pre.intern();
       }
       
       public String getLocalName() {
  @@ -93,8 +98,7 @@
           if (!qName.equals(((PrefixedQName)obj).qName)) {
               return false;
           }
  -        if ((prefix == null && ((PrefixedQName) obj).prefix == null) ||
  -            prefix.equals(((PrefixedQName)obj).prefix)) {
  +        if (prefix == ((PrefixedQName) obj).prefix) {
               return true;
           }
           return false;
  
  
  


Reply via email to