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