You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2007/03/01 15:49:46 UTC

svn commit: r513354 [2/2] - in /webservices/axis2/trunk/java/modules: saaj-api/src/javax/xml/soap/ saaj/src/org/apache/axis2/saaj/ saaj/test/org/apache/axis2/saaj/

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java?view=diff&rev=513354&r1=513353&r2=513354
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/AttachmentTest.java Thu Mar  1 06:49:44 2007
@@ -22,6 +22,13 @@
 
 import junit.framework.TestCase;
 
+import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
+import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpException;
+import org.apache.commons.httpclient.HttpStatus;
+import org.apache.commons.httpclient.methods.GetMethod;
+import org.apache.commons.httpclient.params.HttpMethodParams;
+
 import com.sun.mail.util.BASE64EncoderStream;
 
 public class AttachmentTest extends TestCase {
@@ -304,36 +311,66 @@
 			SOAPMessage msg = factory.createMessage();
 			AttachmentPart ap = msg.createAttachmentPart();
 
-			URL url = new URL("http://ws.apache.org/images/project-logo.jpg");
-			DataHandler dh = new DataHandler(url);
-			//Create InputStream from DataHandler's InputStream
-			InputStream is = dh.getInputStream();
-
-			//Setting Content via InputStream for image/jpeg mime type
-			ByteArrayOutputStream bos = new ByteArrayOutputStream();
-			OutputStream ret = new BASE64EncoderStream(bos);
-			int count;
-			byte buf[] = new byte[8192];
-			while ((count = is.read(buf, 0, 8192)) != -1) {
-				ret.write(buf, 0, count);
-			}
-			ret.flush();
-			buf = bos.toByteArray();
-			InputStream stream = new ByteArrayInputStream(buf);
-			ap.setBase64Content(stream,"image/jpeg");
-
-			//Getting Content.. should return InputStream object
-			InputStream r = ap.getBase64Content();
-			if(r != null) {
-				if(r instanceof InputStream){
-					//InputStream object was returned (ok)
-				}else {
-					fail("Unexpected object was returned");
+			String urlString = "http://ws.apache.org/images/project-logo.jpg";
+			if(isNetworkedResourceAvailable(urlString)){
+				URL url = new URL(urlString);
+				DataHandler dh = new DataHandler(url);
+				//Create InputStream from DataHandler's InputStream
+				InputStream is = dh.getInputStream();
+
+				//Setting Content via InputStream for image/jpeg mime type
+				ByteArrayOutputStream bos = new ByteArrayOutputStream();
+				OutputStream ret = new BASE64EncoderStream(bos);
+				int count;
+				byte buf[] = new byte[8192];
+				while ((count = is.read(buf, 0, 8192)) != -1) {
+					ret.write(buf, 0, count);
 				}
+				ret.flush();
+				buf = bos.toByteArray();
+				InputStream stream = new ByteArrayInputStream(buf);
+				ap.setBase64Content(stream,"image/jpeg");
+
+				//Getting Content.. should return InputStream object
+				InputStream r = ap.getBase64Content();
+				if(r != null) {
+					if(r instanceof InputStream){
+						//InputStream object was returned (ok)
+					}else {
+						fail("Unexpected object was returned");
+					}
+				}				
 			}
 		} catch(Exception e) {
 			fail("Exception: " + e);
 		}
+	}
+	
+	private boolean isNetworkedResourceAvailable(String url){
+		HttpClient client = new HttpClient();
+		GetMethod method = new GetMethod(url);
+
+		method.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, 
+				new DefaultHttpMethodRetryHandler(3, false));
+
+		try {
+			int statusCode = client.executeMethod(method);
+			if (statusCode != HttpStatus.SC_OK) {
+				//System.err.println("Method failed: " + method.getStatusLine());
+				return false;
+			}
+			byte[] responseBody = method.getResponseBody();
+
+		} catch (HttpException e) {
+			e.printStackTrace();
+			return false;
+		} catch (IOException e) {
+			e.printStackTrace();
+			return false;	      
+		} finally {
+			method.releaseConnection();
+		} 		
+		return true;
 	}
 
 }

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java?view=diff&rev=513354&r1=513353&r2=513354
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPEnvelopeTest.java Thu Mar  1 06:49:44 2007
@@ -124,7 +124,7 @@
         MessageFactory mf = MessageFactory.newInstance();
         final ByteArrayInputStream baIS = new ByteArrayInputStream(XML_STRING.getBytes());
         final MimeHeaders mimeheaders = new MimeHeaders();
-        mimeheaders.addHeader("Content-Type", "multipart/related");
+        mimeheaders.addHeader("Content-Type", "text/xml");
         SOAPMessage smsg =
                 mf.createMessage(mimeheaders, baIS);
 

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPFactoryTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPFactoryTest.java?view=diff&rev=513354&r1=513353&r2=513354
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPFactoryTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPFactoryTest.java Thu Mar  1 06:49:44 2007
@@ -204,8 +204,8 @@
     		assertNotNull(reason);
     		assertTrue(reason.contains("This is the fault reason."));
     		assertTrue(fc.equals(SOAPConstants.SOAP_RECEIVER_FAULT));
-    	} catch(UnsupportedOperationException e) {
-    		//Caught expected UnsupportedOperationException
+    	} catch(SOAPException e) {
+    		//Caught expected SOAPException
     	} catch(Exception e) {
     		fail("Exception: " + e);
     	}

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPMessageTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPMessageTest.java?view=diff&rev=513354&r1=513353&r2=513354
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPMessageTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPMessageTest.java Thu Mar  1 06:49:44 2007
@@ -29,14 +29,17 @@
 import javax.xml.soap.AttachmentPart;
 import javax.xml.soap.MessageFactory;
 import javax.xml.soap.MimeHeaders;
+import javax.xml.soap.Name;
 import javax.xml.soap.SOAPBody;
 import javax.xml.soap.SOAPBodyElement;
+import javax.xml.soap.SOAPConnection;
 import javax.xml.soap.SOAPConstants;
 import javax.xml.soap.SOAPElement;
 import javax.xml.soap.SOAPEnvelope;
 import javax.xml.soap.SOAPFactory;
 import javax.xml.soap.SOAPFault;
 import javax.xml.soap.SOAPHeader;
+import javax.xml.soap.SOAPHeaderElement;
 import javax.xml.soap.SOAPMessage;
 import javax.xml.soap.SOAPPart;
 import javax.xml.transform.stream.StreamSource;
@@ -242,7 +245,7 @@
 			URL url4 = new URL("http://localhost:8080/SOAPMessage/attach.html");
 			URL url5 = new URL("http://localhost:8080/SOAPMessage/attach.jpeg");
 
-			System.out.println("Add various mime type attachments to SOAP message");
+			//Add various mime type attachments to SOAP message
 			AttachmentPart ap1 = msg.createAttachmentPart(new DataHandler(url1));
 			AttachmentPart ap2 = msg.createAttachmentPart(new DataHandler(url2));
 			AttachmentPart ap3 = msg.createAttachmentPart(new DataHandler(url3));
@@ -299,12 +302,11 @@
 	/*
 	 * Do not add this test unless below mentioned resources are accessible
 	 */
-	public void _testGetAttachmentByHREF2(){
+	public void testGetAttachmentByHREF2(){
 		String NS_PREFIX="mypre";
 		String NS_URI="http://myuri.org/";
 
 		try {
-			System.out.println("Create SOAP message from message factory");
 			MessageFactory fac = MessageFactory.newInstance();
 			SOAPMessage msg = fac.createMessage();
 
@@ -394,6 +396,199 @@
 			fail("Exception: " + e);
 		}
 	}
+	
+	public void testMessageCreation(){
+		try {
+			final String NS_PREFIX = "ns-prefix";
+		    final String NS_URI = "ns-uri";
+		    			
+			MessageFactory fac = MessageFactory.newInstance();
+			SOAPMessage msg = fac.createMessage();
+
+		    SOAPPart sp = msg.getSOAPPart();
+		    SOAPEnvelope envelope = sp.getEnvelope();
+            SOAPHeader hdr = envelope.getHeader();
+            SOAPBody bdy = envelope.getBody();
+
+		    SOAPElement se = hdr.addHeaderElement(
+	            	envelope.createName("Header1", NS_PREFIX, NS_URI))
+	            .addTextNode("This is Header1");
+		    SOAPHeaderElement she = (SOAPHeaderElement) se;
+		    she.setMustUnderstand(true);
+
+		    se = hdr.addHeaderElement(
+	            	envelope.createName("Header2", NS_PREFIX, NS_URI))
+	            .addTextNode("This is Header2");
+		    she = (SOAPHeaderElement) se;
+		    she.setMustUnderstand(false);
+
+		    se = hdr.addHeaderElement(
+	            	envelope.createName("Header3", NS_PREFIX, NS_URI))
+	            .addTextNode("This is Header3");
+		    she = (SOAPHeaderElement) se;
+		    she.setMustUnderstand(true);
+
+		    se = hdr.addHeaderElement(
+	            	envelope.createName("Header4", NS_PREFIX, NS_URI))
+	            .addTextNode("This is Header4");
+		    she = (SOAPHeaderElement) se;
+		    she.setMustUnderstand(false);
+	        
+            SOAPBodyElement sbe = bdy.addBodyElement(
+			envelope.createName("Body1", NS_PREFIX, NS_URI));
+	        
+            sbe.addChildElement(envelope.createName(
+			"Child1", NS_PREFIX, NS_URI)).addTextNode("This is Child1");
+            sbe.addChildElement(envelope.createName(
+			"Child2", NS_PREFIX, NS_URI)).addTextNode("This is Child2");
+	        
+
+            URL url1 = new URL("http://localhost:8080/SOAPMessage/attach.xml");	            
+            AttachmentPart ap = msg.createAttachmentPart(new DataHandler(url1));
+            ap.setContentType("text/xml");
+            msg.addAttachmentPart(ap);
+		    msg.saveChanges();
+
+		    // Create a url endpoint for the recipient of the message.
+		    URL urlEndpoint = new URL("http://localhost:8080/ReceivingSOAP11Servlet");
+
+		    // Send the message to the endpoint using the connection.
+		    SOAPConnection con = new SOAPConnectionImpl();
+		    SOAPMessage replymsg = con.call(msg, urlEndpoint);
+
+		    // Check if reply message
+		    if(ValidateReplyMessage(replymsg, 1)) {
+		        //TestUtil.logMsg("Reply message is correct (PASSED)");
+		    } else {
+			    //TestUtil.logErr("Reply message is incorrect (FAILED)");
+		    }
+
+		} catch(Exception e) {
+		    System.err.println("SendSyncReqRespMsgTest2 Exception: " + e);
+	            e.printStackTrace(System.err);
+		}
+	}
+	
+    private boolean ValidateReplyMessage(SOAPMessage msg, int num) 
+    {
+	try {
+	    boolean pass = true;
+	    SOAPEnvelope envelope = msg.getSOAPPart().getEnvelope();
+
+	    boolean foundHeader1 = false;
+	    boolean foundHeader2 = false;
+	    boolean foundHeader3 = false;
+	    boolean foundHeader4 = false;
+	    Iterator i = envelope.getHeader().examineAllHeaderElements();
+	    while(i.hasNext()) {
+		SOAPElement se = (SOAPElement)i.next();
+		Name name = se.getElementName();
+		String value = se.getValue();
+		if(value == null || name == null) 
+		    continue;
+		else if(value.equals("This is Header1") 
+				&& name.getLocalName().equals("Header1"))
+		    foundHeader1 = true;
+		else if(value.equals("This is Header2") 
+				&& name.getLocalName().equals("Header2"))
+		    foundHeader2 = true;
+		else if(value.equals("This is Header3") 
+				&& name.getLocalName().equals("Header3"))
+		    foundHeader3 = true;
+		else if(value.equals("This is Header4") 
+				&& name.getLocalName().equals("Header4"))
+		    foundHeader4 = true;
+	    }
+	    if(!foundHeader1 || !foundHeader2 || 	
+				!foundHeader3 || !foundHeader4) {
+	          //"Did not find expected soap headers in reply message"
+	        pass = false;
+	    } else{
+	          //"Did find expected soap headers in reply message");
+	    }
+	    //TestUtil.logMsg("Verify soap body");
+	    boolean foundBody1 = false;
+	    boolean foundChild1 = false;
+	    boolean foundChild2 = false;
+	    SOAPBody bdy = envelope.getBody();
+	    i = bdy.getChildElements();
+	    while (i.hasNext()) {
+		SOAPBodyElement sbe = (SOAPBodyElement)i.next();
+		Name name = sbe.getElementName();
+		if(name.getLocalName().equals("Body1"))
+		    foundBody1 = true;
+		Iterator c = sbe.getChildElements();
+	        while (c.hasNext()) {
+		    SOAPElement se = (SOAPElement)c.next();
+		    name = se.getElementName();
+		    String value = se.getValue();
+		    if(value.equals("This is Child1") 
+			    && name.getLocalName().equals("Child1"))
+		        foundChild1 = true;
+		    else if(value.equals("This is Child2") 
+			    && name.getLocalName().equals("Child2"))
+		        foundChild2 = true;
+	        }
+	    }
+	    if(!foundBody1) {
+		//TestUtil.logErr("Did not find expected soap body in reply message");
+		pass = false;
+	    } else
+		//TestUtil.logMsg("Did find expected soap body in reply message");
+	    if(!foundChild1 || !foundChild2) {
+		//TestUtil.logErr("Did not find expected soap body " +ild elements in reply message");
+		pass = false;
+	    } else{
+	    	//TestUtil.logMsg("Did find expected soap body child " +
+	    }
+	    //TestUtil.logMsg("Verify attachments");
+	    int count = msg.countAttachments();
+	    if(count == num) {
+		//TestUtil.logMsg("Got expected " + count +" attachments in reply message");
+
+	    	i = msg.getAttachments();
+		boolean gifFound = false;
+		boolean xmlFound = false;
+		boolean textFound = false;
+		boolean htmlFound = false;
+		boolean jpegFound = false;
+		while(i.hasNext()) {
+		    AttachmentPart a = (AttachmentPart)i.next();
+		    String type = a.getContentType();
+		    //TestUtil.logMsg("MIME type of attachment = " + type);
+		    if(type.equals("image/gif"))
+			gifFound = true;
+		    else if(type.equals("text/xml"))
+			xmlFound = true;
+		    else if(type.equals("text/plain"))
+			textFound = true;
+		    else if(type.equals("text/html"))
+			htmlFound = true;
+		    else if(type.equals("image/jpeg"))
+			jpegFound = true;
+		    else {
+			//TestUtil.logErr("Got unexpected MIME type: " + type);
+			pass = false;
+		    }
+		}
+		if(num == 1 && xmlFound) {
+		    //TestUtil.logMsg("Did find expected MIME types in reply message");
+		} else if(num == 3 && xmlFound && jpegFound && textFound) {
+		   // TestUtil.logMsg("Did find expected MIME types in reply message");
+		} else if (num > 0) {
+		    //TestUtil.logErr("Did not find expected MIME types in reply message");
+		    pass = false;
+		}
+		return pass;
+	    } else {
+		//TestUtil.logErr("Got unexpected " + count +" attachments in reply message, expected 5");
+		return false;
+	    }
+	} catch(Exception e) {
+	    return false;
+	}
+    }
+	
 
 }
 

Modified: webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPPartTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPPartTest.java?view=diff&rev=513354&r1=513353&r2=513354
==============================================================================
--- webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPPartTest.java (original)
+++ webservices/axis2/trunk/java/modules/saaj/test/org/apache/axis2/saaj/SOAPPartTest.java Thu Mar  1 06:49:44 2007
@@ -16,6 +16,7 @@
 package org.apache.axis2.saaj;
 
 import java.io.File;
+import java.io.FileReader;
 import java.util.Iterator;
 
 import javax.xml.parsers.DocumentBuilder;
@@ -29,10 +30,15 @@
 import javax.xml.soap.SOAPMessage;
 import javax.xml.soap.SOAPPart;
 import javax.xml.soap.Text;
+import javax.xml.stream.XMLInputFactory;
 import javax.xml.transform.dom.DOMSource;
 
 import junit.framework.TestCase;
 
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMDocument;
+import org.apache.axiom.om.impl.builder.StAXOMBuilder;
+import org.apache.axiom.om.impl.llom.factory.OMXMLBuilderFactory;
 import org.w3c.dom.Document;
 import org.w3c.dom.Node;
 
@@ -44,6 +50,15 @@
     public void testAddSource() {
         DOMSource domSource;
         try {
+        	/*
+            FileReader testFile = new FileReader(new File(System.getProperty("basedir",".")+"/test-resources" + File.separator + "soap-part.xml"));
+            StAXOMBuilder stAXOMBuilder =
+                    OMXMLBuilderFactory.createStAXOMBuilder(
+                            OMAbstractFactory.getSOAP11Factory(),
+                            XMLInputFactory.newInstance().createXMLStreamReader(
+                                    testFile));
+            */
+            
             DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder();
             Document document = builder.parse(new File(System.getProperty("basedir",".")+"/test-resources" + File.separator + "soap-part.xml"));
             domSource = new DOMSource(document);



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org