You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@servicemix.apache.org by ff...@apache.org on 2009/05/26 07:27:34 UTC

svn commit: r778564 - in /servicemix/components/engines/servicemix-cxf-se/trunk/src/test: java/org/apache/servicemix/cxfse/ resources/org/apache/servicemix/cxfse/

Author: ffang
Date: Tue May 26 05:27:33 2009
New Revision: 778564

URL: http://svn.apache.org/viewvc?rev=778564&view=rev
Log:
[SMXCOMP-523]Improve test coverage - ServiceMix :: CXF Service Engine

Added:
    servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSeMtomTest.java   (with props)
    servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSePayloadTest.java   (with props)
    servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/TestMtomImpl.java   (with props)
    servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/mtom.xml   (with props)
    servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/xbean_without_jbi_wrapper_without_soapenv.xml   (with props)

Added: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSeMtomTest.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSeMtomTest.java?rev=778564&view=auto
==============================================================================
--- servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSeMtomTest.java (added)
+++ servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSeMtomTest.java Tue May 26 05:27:33 2009
@@ -0,0 +1,86 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.servicemix.cxfse;
+
+import java.io.InputStream;
+
+import javax.activation.DataHandler;
+import javax.jbi.messaging.InOut;
+import javax.mail.util.ByteArrayDataSource;
+import javax.xml.namespace.QName;
+
+import org.apache.servicemix.client.DefaultServiceMixClient;
+import org.apache.servicemix.jbi.jaxp.SourceTransformer;
+import org.apache.servicemix.jbi.jaxp.StringSource;
+import org.apache.servicemix.jbi.messaging.NormalizedMessageImpl;
+import org.apache.servicemix.tck.SpringTestSupport;
+import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+
+public class CxfSeMtomTest extends SpringTestSupport {
+
+    private DefaultServiceMixClient client;
+    private InOut io;
+    
+    protected void setUp() throws Exception {
+        super.setUp();
+        client = new DefaultServiceMixClient(jbi);
+        
+    }
+    
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+    
+    public void testMtom() throws Exception {
+        io = client.createInOutExchange();
+        io.setService(new QName("http://cxf.apache.org/mime", "TestMtomService"));
+        io.setOperation(new QName("http://cxf.apache.org/mime", "testXop"));
+        DataHandler dh = new DataHandler(new ByteArrayDataSource("foobar".getBytes(), 
+            "application/octet-stream"));
+        io.getInMessage().setContent(new StringSource(
+                  "<message xmlns=\"http://java.sun.com/xml/ns/jbi/wsdl-11-wrapper\">"
+                + "  <part>"
+                + "<testXop xmlns=\"http://cxf.apache.org/mime/types\">" 
+                        + "<name>call detail</name>" 
+                        + "<attachinfo><xop:Include xmlns:xop=\"http://www.w3.org/2004/08/xop/include\" " 
+                        + "href=\"cid:3f348f6c-aa77-406d-991c-4854786afb7b-1@cxf.apache.org\"/></attachinfo>" 
+                        + "</testXop>"
+                + "  </part>"
+                + "</message>"));
+        io.getInMessage().addAttachment("3f348f6c-aa77-406d-991c-4854786afb7b-1@cxf.apache.org", dh);
+        client.sendSync(io);
+             
+        assertTrue(new SourceTransformer().contentToString(
+                io.getOutMessage()).indexOf("call detailfoobar") >= 0);
+        assertEquals(io.getOutMessage().getAttachmentNames().size(), 1);
+        NormalizedMessageImpl out = (NormalizedMessageImpl) io.getOutMessage();
+        dh = out.getAttachment((String) out.getAttachmentNames().iterator().next());
+        InputStream bis = dh.getDataSource().getInputStream();
+        byte b[] = new byte[10];
+        bis.read(b, 0, 10);
+        String attachContent = new String(b);
+        assertEquals(attachContent, "testfoobar");
+        client.done(io);
+    }
+    
+    @Override
+    protected AbstractXmlApplicationContext createBeanFactory() {
+        return new ClassPathXmlApplicationContext("org/apache/servicemix/cxfse/mtom.xml");
+    }
+
+}

Propchange: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSeMtomTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSeMtomTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSePayloadTest.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSePayloadTest.java?rev=778564&view=auto
==============================================================================
--- servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSePayloadTest.java (added)
+++ servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSePayloadTest.java Tue May 26 05:27:33 2009
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.servicemix.cxfse;
+
+import javax.jbi.messaging.InOut;
+import javax.xml.namespace.QName;
+
+import org.apache.servicemix.client.DefaultServiceMixClient;
+import org.apache.servicemix.jbi.jaxp.SourceTransformer;
+import org.apache.servicemix.jbi.jaxp.StringSource;
+import org.apache.servicemix.tck.SpringTestSupport;
+import org.apache.xbean.spring.context.ClassPathXmlApplicationContext;
+import org.springframework.context.support.AbstractXmlApplicationContext;
+
+public class CxfSePayloadTest extends SpringTestSupport {
+
+    private DefaultServiceMixClient client;
+    private InOut io;
+    
+    protected void setUp() throws Exception {
+        super.setUp();
+        client = new DefaultServiceMixClient(jbi);
+        
+    }
+    
+    protected void tearDown() throws Exception {
+        super.tearDown();
+    }
+    
+    public void testMtom() throws Exception {
+        io = client.createInOutExchange();
+        io.setService(new QName("http://apache.org/cxf/calculator", "CalculatorService"));
+        
+        io.getInMessage().setContent(new StringSource("<add xmlns=\"http://apache.org/cxf/calculator/types\">" 
+                + "<arg0>1</arg0><arg1>2</arg1></add>"));
+        client.sendSync(io);
+             
+        assertTrue(new SourceTransformer().contentToString(
+                io.getOutMessage()).indexOf("<return>3</return>") >= 0);
+        client.done(io);
+    }
+    
+    @Override
+    protected AbstractXmlApplicationContext createBeanFactory() {
+        return new ClassPathXmlApplicationContext("org/apache/servicemix/cxfse/xbean_without_jbi_wrapper_without_soapenv.xml");
+    }
+
+}

Propchange: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSePayloadTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/CxfSePayloadTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/TestMtomImpl.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/TestMtomImpl.java?rev=778564&view=auto
==============================================================================
--- servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/TestMtomImpl.java (added)
+++ servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/TestMtomImpl.java Tue May 26 05:27:33 2009
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.servicemix.cxfse;
+
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.activation.DataHandler;
+import javax.jws.WebService;
+import javax.mail.util.ByteArrayDataSource;
+import javax.xml.ws.Holder;
+
+import org.apache.cxf.mime.TestMtom;
+
+@WebService(serviceName = "TestMtomService", 
+        portName = "TestMtomPort", 
+        targetNamespace = "http://cxf.apache.org/mime", 
+        endpointInterface = "org.apache.cxf.mime.TestMtom",
+            wsdlLocation = "testutils/mtom_xop.wsdl")
+public class TestMtomImpl implements TestMtom {
+    public void testXop(Holder<String> name, Holder<DataHandler> attachinfo) {
+        
+        try {
+            if ("runtime exception".equals(name.value)) {
+                throw new RuntimeException("throw runtime exception");
+            }
+            InputStream bis = attachinfo.value.getDataSource().getInputStream();
+            byte b[] = new byte[6];
+            bis.read(b, 0, 6);
+            String attachContent = new String(b);
+            name.value = name.value + attachContent;
+            
+            ByteArrayDataSource source = 
+                new ByteArrayDataSource(("test" + attachContent).getBytes(), "application/octet-stream");
+            attachinfo.value = new DataHandler(source);
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        
+    }
+
+    public org.apache.cxf.mime.types.XopStringType testXopString(
+        org.apache.cxf.mime.types.XopStringType data) {
+        return null;
+    }
+
+}

Propchange: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/TestMtomImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/java/org/apache/servicemix/cxfse/TestMtomImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/mtom.xml
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/mtom.xml?rev=778564&view=auto
==============================================================================
--- servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/mtom.xml (added)
+++ servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/mtom.xml Tue May 26 05:27:33 2009
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  
+-->
+<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
+       xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0"
+       xmlns:mtom="http://cxf.apache.org/mime">
+
+  <sm:container id="jbi" embedded="true">
+
+    <sm:endpoints>
+      <cxfse:endpoint mtomEnabled="true">
+        <cxfse:pojo>
+          <bean class="org.apache.servicemix.cxfse.TestMtomImpl" />
+        </cxfse:pojo>
+        <cxfse:inInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+        </cxfse:inInterceptors>
+        <cxfse:outInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+        </cxfse:outInterceptors>
+        <cxfse:inFaultInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+        </cxfse:inFaultInterceptors>
+        <cxfse:outFaultInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+        </cxfse:outFaultInterceptors>
+      </cxfse:endpoint>
+    </sm:endpoints>
+
+  </sm:container>
+
+</beans>

Propchange: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/mtom.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/mtom.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/mtom.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/xbean_without_jbi_wrapper_without_soapenv.xml
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/xbean_without_jbi_wrapper_without_soapenv.xml?rev=778564&view=auto
==============================================================================
--- servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/xbean_without_jbi_wrapper_without_soapenv.xml (added)
+++ servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/xbean_without_jbi_wrapper_without_soapenv.xml Tue May 26 05:27:33 2009
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+  
+  http://www.apache.org/licenses/LICENSE-2.0
+  
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+  
+-->
+<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
+       xmlns:cxfse="http://servicemix.apache.org/cxfse/1.0"
+       xmlns:calculator="http://apache.org/cxf/calculator">
+  
+  <sm:container id="jbi" embedded="true">
+    
+
+    <sm:endpoints>
+      <cxfse:endpoint useJBIWrapper="false" useSOAPEnvelope="false">
+        <cxfse:pojo>
+          <bean class="org.apache.cxf.calculator.CalculatorImpl" />
+        </cxfse:pojo>
+        <cxfse:inInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+        </cxfse:inInterceptors>
+        <cxfse:outInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+        </cxfse:outInterceptors>
+        <cxfse:inFaultInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
+        </cxfse:inFaultInterceptors>
+        <cxfse:outFaultInterceptors>
+          <bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"/>
+        </cxfse:outFaultInterceptors>
+      </cxfse:endpoint>
+    </sm:endpoints>
+    
+  </sm:container>
+  
+</beans>

Propchange: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/xbean_without_jbi_wrapper_without_soapenv.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/xbean_without_jbi_wrapper_without_soapenv.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: servicemix/components/engines/servicemix-cxf-se/trunk/src/test/resources/org/apache/servicemix/cxfse/xbean_without_jbi_wrapper_without_soapenv.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml