dims        2002/06/23 15:08:11

  Modified:    java/src/org/apache/axis/attachments AttachmentPart.java
                        AttachmentsImpl.java
  Added:       java/test/saaj PackageTests.java TestAttachment.java
  Log:
  Added a testcase for attachments (SAAJ style).
  
  Revision  Changes    Path
  1.10      +27 -2     
xml-axis/java/src/org/apache/axis/attachments/AttachmentPart.java
  
  Index: AttachmentPart.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/attachments/AttachmentPart.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- AttachmentPart.java       23 Jun 2002 17:39:19 -0000      1.9
  +++ AttachmentPart.java       23 Jun 2002 22:08:10 -0000      1.10
  @@ -310,7 +310,20 @@
        *     was a data transformation error
        */
       public Object getContent() throws SOAPException {
  -        //TODO: Implement this.
  +        javax.activation.DataSource ds = datahandler.getDataSource();
  +        if(ds instanceof ManagedMemoryDataSource){
  +            ManagedMemoryDataSource mds = (ManagedMemoryDataSource)ds;
  +            if(ds.getContentType().equals("text/plain")){
  +                try {
  +                    java.io.InputStream is = ds.getInputStream();
  +                    byte[] bytes = new byte[is.available()];
  +                    is.read(bytes);
  +                    return new String(bytes);
  +                } catch (java.io.IOException io){
  +                    log.error(JavaUtils.getMessage("javaIOException00"), io);
  +                }
  +            }
  +        }
           return null;
       }
   
  @@ -333,7 +346,19 @@
        * @see #getContent() getContent()
        */
       public void setContent(Object object, String contentType) {
  -        //TODO: Implement this.
  +        if(object instanceof String) {
  +            try {
  +                String s = (String)object;
  +                java.io.ByteArrayInputStream bais = new 
java.io.ByteArrayInputStream(s.getBytes());
  +                datahandler = new DataHandler(new ManagedMemoryDataSource(bais, 
1024, contentType, true));
  +                return;
  +            } catch (java.io.IOException io){
  +                log.error(JavaUtils.getMessage("javaIOException00"), io);
  +                throw new 
java.lang.IllegalArgumentException(JavaUtils.getMessage("illegalAccessException00"));
  +            }
  +        } else {
  +            throw new 
java.lang.IllegalArgumentException(JavaUtils.getMessage("illegalAccessException00"));
  +        }
       }
   
       /**
  
  
  
  1.16      +1 -2      
xml-axis/java/src/org/apache/axis/attachments/AttachmentsImpl.java
  
  Index: AttachmentsImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-axis/java/src/org/apache/axis/attachments/AttachmentsImpl.java,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- AttachmentsImpl.java      23 Jun 2002 20:20:19 -0000      1.15
  +++ AttachmentsImpl.java      23 Jun 2002 22:08:10 -0000      1.16
  @@ -393,7 +393,6 @@
        * Will actually, and always, return an AttachmentPart.
        */
       public Part createAttachmentPart() throws org.apache.axis.AxisFault {
  -        //TODO: Flesh it out.
  -        return null;
  +        return new AttachmentPart();
       }
   }
  
  
  
  1.1                  xml-axis/java/test/saaj/PackageTests.java
  
  Index: PackageTests.java
  ===================================================================
  package test.saaj;
  
  /**
   * SAAJ PackageTests tests
   */
  public class PackageTests extends junit.framework.TestCase {
      public PackageTests(String name) {
          super(name);
      }
  
      public static junit.framework.Test suite() throws Exception {
          junit.framework.TestSuite suite = new junit.framework.TestSuite();
          suite.addTestSuite(test.saaj.TestAttachment.class);
          return suite;
      }
  }
  
  
  
  
  1.1                  xml-axis/java/test/saaj/TestAttachment.java
  
  Index: TestAttachment.java
  ===================================================================
  package test.saaj;
  
  import javax.xml.soap.AttachmentPart;
  import javax.xml.soap.MessageFactory;
  import javax.xml.soap.SOAPConnection;
  import javax.xml.soap.SOAPConnectionFactory;
  import javax.xml.soap.SOAPMessage;
  
  public class TestAttachment extends junit.framework.TestCase {
  
      public TestAttachment(String name) {
          super(name);
      }
  
      public void testStringAttachment() throws Exception {
          SOAPConnectionFactory scFactory = SOAPConnectionFactory.newInstance();
          SOAPConnection con = scFactory.createConnection();
  
          MessageFactory factory = MessageFactory.newInstance();
          SOAPMessage message = factory.createMessage();
          AttachmentPart attachment = message.createAttachmentPart();
          String stringContent = "Update address for Sunny Skies " +
                  "Inc., to 10 Upbeat Street, Pleasant Grove, CA 95439";
  
          attachment.setContent(stringContent, "text/plain");
          attachment.setContentId("update_address");
  
          message.addAttachmentPart(attachment);
          java.util.Iterator it = message.getAttachments();
          while (it.hasNext()) {
              attachment = (AttachmentPart) it.next();
              Object content = attachment.getContent();
              String id = attachment.getContentId();
              System.out.println("Attachment " + id + " contains: " + content);
              assertEquals(content,stringContent);
          }
      }
  
      public static void main(String[] args) throws Exception {
          test.saaj.TestAttachment tester = new test.saaj.TestAttachment("TestSAAJ");
          tester.testStringAttachment();
      }
  }
  
  
  


Reply via email to