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/06/10 04:46:53 UTC

svn commit: r783184 - in /servicemix/components/engines/servicemix-saxon/trunk: ./ src/test/java/org/apache/servicemix/saxon/ src/test/java/org/apache/servicemix/saxon/packaging/ src/test/java/org/apache/servicemix/saxon/support/ src/test/resources/

Author: ffang
Date: Wed Jun 10 02:46:53 2009
New Revision: 783184

URL: http://svn.apache.org/viewvc?rev=783184&view=rev
Log:
[SMXCOMP-552]Improve test coverage - ServiceMix :: Saxon

Added:
    servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/packaging/
    servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/packaging/SaxonServiceUnitAnalyzerTest.java   (with props)
    servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/support/
    servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/support/ExchangeTargetTest.java   (with props)
    servicemix/components/engines/servicemix-saxon/trunk/src/test/resources/parameter-test-query.xq
Modified:
    servicemix/components/engines/servicemix-saxon/trunk/pom.xml
    servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/SaxonComponentTest.java
    servicemix/components/engines/servicemix-saxon/trunk/src/test/resources/spring.xml

Modified: servicemix/components/engines/servicemix-saxon/trunk/pom.xml
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-saxon/trunk/pom.xml?rev=783184&r1=783183&r2=783184&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-saxon/trunk/pom.xml (original)
+++ servicemix/components/engines/servicemix-saxon/trunk/pom.xml Wed Jun 10 02:46:53 2009
@@ -101,6 +101,11 @@
     </dependency>
     <!-- for unit/integration testing -->
     <dependency>
+      <groupId>org.easymock</groupId>
+      <artifactId>easymock</artifactId>
+      <scope>test</scope>
+    </dependency>
+    <dependency>
       <groupId>org.apache.servicemix</groupId>
       <artifactId>servicemix-core</artifactId>
       <version>${servicemix-version}</version>
@@ -140,6 +145,18 @@
           </execution>
         </executions>
       </plugin>
+      <!-- exclude generated DefaultBootstrap class from Cobertura reports -->
+      <plugin>
+        <groupId>org.codehaus.mojo</groupId>
+        <artifactId>cobertura-maven-plugin</artifactId>
+        <configuration>
+          <instrumentation>
+            <excludes>
+              <exclude>org/apache/servicemix/common/DefaultBootstrap.class</exclude>
+            </excludes>
+          </instrumentation>
+        </configuration>
+      </plugin>
     </plugins>
   </build>
   <repositories>

Modified: servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/SaxonComponentTest.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/SaxonComponentTest.java?rev=783184&r1=783183&r2=783184&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/SaxonComponentTest.java (original)
+++ servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/SaxonComponentTest.java Wed Jun 10 02:46:53 2009
@@ -59,6 +59,27 @@
         assertEquals("2005", textValueOfXPath(el, "/transformed/bookstore/book[1]/year"));
         client.done(me);
     }
+    
+    public void testXsltString() throws Exception {
+        DefaultServiceMixClient client = new DefaultServiceMixClient(jbi);
+        InOut me = client.createInOutExchange();
+        me.setService(new QName("urn:test", "xslt-string"));
+        me.getInMessage().setContent(new StreamSource(getClass().getResourceAsStream("/books.xml")));
+        client.sendSync(me);
+        if (me.getStatus() == ExchangeStatus.ERROR) {
+            if (me.getError() != null) {
+                throw me.getError();
+            } else {
+                fail("Received ERROR status");
+            }
+        } else if (me.getFault() != null) {
+            fail("Received fault: " + new SourceTransformer().toString(me.getFault().getContent()));
+        }
+        log.info(transformer.toString(me.getOutMessage().getContent()));
+        Element el = transformer.toDOMElement(me.getOutMessage());
+        assertEquals("2005", textValueOfXPath(el, "/transformed/bookstore/book[1]/year"));
+        client.done(me);
+    }
 
     public void testXsltWithElement() throws Exception {
         DefaultServiceMixClient client = new DefaultServiceMixClient(jbi);
@@ -129,6 +150,26 @@
         assertEquals("cheeseyCheese", textValueOfXPath(el, "//param"));
         assertEquals("4002", textValueOfXPath(el, "//integer"));
     }
+    
+    public void testXQueryWithParam() throws Exception {
+        DefaultServiceMixClient client = new DefaultServiceMixClient(jbi);
+        InOut me = client.createInOutExchange();
+        me.setService(new QName("urn:test", "xquery-params"));
+        me.getInMessage().setContent(new StringSource("<sample id='777888' sent='"
+                + new Date() + "'>hello world!</sample>"));
+        client.sendSync(me);
+        if (me.getStatus() == ExchangeStatus.ERROR) {
+            if (me.getError() != null) {
+                throw me.getError();
+            } else {
+                fail("Received ERROR status");
+            }
+        } else if (me.getFault() != null) {
+            fail("Received fault: " + new SourceTransformer().toString(me.getFault().getContent()));
+        }
+        log.info(transformer.toString(me.getOutMessage().getContent()));
+        client.done(me);
+    }
 
     public void testXsltWithDocCall() throws Exception {
         DefaultServiceMixClient client = new DefaultServiceMixClient(jbi);
@@ -169,6 +210,28 @@
         assertEquals("XQuery Kick Start", textValueOfXPath(el, "/titles/title[1]"));
         client.done(me);
     }
+    
+    public void testXQueryString() throws Exception {
+        DefaultServiceMixClient client = new DefaultServiceMixClient(jbi);
+        InOut me = client.createInOutExchange();
+        me.setService(new QName("urn:test", "xquery-string"));
+        me.getInMessage().setContent(new StreamSource(getClass().getResourceAsStream("/books.xml")));
+        client.sendSync(me);
+        if (me.getStatus() == ExchangeStatus.ERROR) {
+            if (me.getError() != null) {
+                throw me.getError();
+            } else {
+                fail("Received ERROR status");
+            }
+        } else if (me.getFault() != null) {
+            fail("Received fault: " + new SourceTransformer().toString(me.getFault().getContent()));
+        }
+        log.info(transformer.toString(me.getOutMessage().getContent()));
+        Element el = transformer.toDOMElement(me.getOutMessage());
+        assertEquals("XQuery Kick Start", textValueOfXPath(el, "/titles/title[1]"));
+        client.done(me);
+    }
+    
 
     public void testXQueryInline() throws Exception {
         DefaultServiceMixClient client = new DefaultServiceMixClient(jbi);
@@ -238,7 +301,70 @@
         client.done(me);
         assertEquals("skcotSyub", el.getLocalName());
     }
-
+    
+    public void testProxyString() throws Exception {
+        DefaultServiceMixClient client = new DefaultServiceMixClient(jbi);
+        InOut me = client.createInOutExchange();
+        me.setService(new QName("urn:test", "proxy-string"));
+        me.getInMessage().setContent(new StreamSource(getClass().getResourceAsStream("/order.xml")));
+        client.sendSync(me);
+        if (me.getStatus() == ExchangeStatus.ERROR) {
+            if (me.getError() != null) {
+                throw me.getError();
+            } else {
+                fail("Received ERROR status");
+            }
+        } else if (me.getFault() != null) {
+            fail("Received fault: " + new SourceTransformer().toString(me.getFault().getContent()));
+        }
+        log.info(transformer.toString(me.getOutMessage().getContent()));
+        Element el = transformer.toDOMElement(me.getOutMessage());
+        client.done(me);
+        assertEquals("buyStocks", el.getLocalName());
+    }
+    
+    public void testProxyBytes() throws Exception {
+        DefaultServiceMixClient client = new DefaultServiceMixClient(jbi);
+        InOut me = client.createInOutExchange();
+        me.setService(new QName("urn:test", "proxy-bytes"));
+        me.getInMessage().setContent(new StreamSource(getClass().getResourceAsStream("/order.xml")));
+        client.sendSync(me);
+        if (me.getStatus() == ExchangeStatus.ERROR) {
+            if (me.getError() != null) {
+                throw me.getError();
+            } else {
+                fail("Received ERROR status");
+            }
+        } else if (me.getFault() != null) {
+            fail("Received fault: " + new SourceTransformer().toString(me.getFault().getContent()));
+        }
+        log.info(transformer.toString(me.getOutMessage().getContent()));
+        Element el = transformer.toDOMElement(me.getOutMessage());
+        client.done(me);
+        assertEquals("buyStocks", el.getLocalName());
+    }
+    
+    public void testProxyParams() throws Exception {
+        DefaultServiceMixClient client = new DefaultServiceMixClient(jbi);
+        InOut me = client.createInOutExchange();
+        me.setService(new QName("urn:test", "xslt-proxy-params"));
+        me.getInMessage().setContent(new StreamSource(getClass().getResourceAsStream("/order.xml")));
+        client.sendSync(me);
+        if (me.getStatus() == ExchangeStatus.ERROR) {
+            if (me.getError() != null) {
+                throw me.getError();
+            } else {
+                fail("Received ERROR status");
+            }
+        } else if (me.getFault() != null) {
+            fail("Received fault: " + new SourceTransformer().toString(me.getFault().getContent()));
+        }
+        log.info(transformer.toString(me.getOutMessage().getContent()));
+        Element el = transformer.toDOMElement(me.getOutMessage());
+        client.done(me);
+        assertEquals("buyStocks", el.getLocalName());
+    }
+    
     protected AbstractXmlApplicationContext createBeanFactory() {
         return new ClassPathXmlApplicationContext("spring.xml");
     }

Added: servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/packaging/SaxonServiceUnitAnalyzerTest.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/packaging/SaxonServiceUnitAnalyzerTest.java?rev=783184&view=auto
==============================================================================
--- servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/packaging/SaxonServiceUnitAnalyzerTest.java (added)
+++ servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/packaging/SaxonServiceUnitAnalyzerTest.java Wed Jun 10 02:46:53 2009
@@ -0,0 +1,52 @@
+/*
+ * 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.saxon.packaging;
+
+import javax.jbi.JBIException;
+
+import junit.framework.TestCase;
+
+import org.apache.servicemix.saxon.XQueryEndpoint;
+import org.apache.servicemix.saxon.XsltEndpoint;
+import org.apache.servicemix.saxon.XsltProxyEndpoint;
+
+public class SaxonServiceUnitAnalyzerTest extends TestCase {
+
+	private SaxonServiceUnitAnalyzer analyzer;
+
+	@Override
+	protected void setUp() throws Exception {
+		super.setUp();
+		analyzer = new SaxonServiceUnitAnalyzer();
+	}
+
+	public void testGetConsumes() throws JBIException {
+		assertNotNull("Collection should not be null", analyzer.getConsumes(new XsltEndpoint()));
+		assertTrue("Collection should be empty", analyzer.getConsumes().isEmpty());
+	}
+
+	public void testGetXBeanFile() throws Exception {
+		assertEquals("xbean.xml", analyzer.getXBeanFile());
+	}
+
+	public void testIsValidEndpoint() throws Exception {
+		assertTrue(analyzer.isValidEndpoint(new XsltEndpoint()));
+        assertTrue(analyzer.isValidEndpoint(new XQueryEndpoint()));
+		assertTrue(analyzer.isValidEndpoint(new XsltProxyEndpoint()));
+
+	}
+}

Propchange: servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/packaging/SaxonServiceUnitAnalyzerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/packaging/SaxonServiceUnitAnalyzerTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/support/ExchangeTargetTest.java
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/support/ExchangeTargetTest.java?rev=783184&view=auto
==============================================================================
--- servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/support/ExchangeTargetTest.java (added)
+++ servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/support/ExchangeTargetTest.java Wed Jun 10 02:46:53 2009
@@ -0,0 +1,89 @@
+/*
+ * 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.saxon.support;
+
+import javax.jbi.component.ComponentContext;
+import javax.jbi.messaging.MessageExchange;
+import javax.jbi.messaging.MessagingException;
+import javax.jbi.servicedesc.ServiceEndpoint;
+import javax.xml.namespace.QName;
+
+import junit.framework.TestCase;
+
+import org.apache.servicemix.tck.mock.MockMessageExchange;
+import org.easymock.EasyMock;
+
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+
+public class ExchangeTargetTest extends TestCase {
+    
+    private static final String ENDPOINT = "endpoint";
+    private static final QName INTERFACE = new QName("urn:test", "interface");
+    private static final QName OPERATION = new QName("urn:test", "operation");
+    private static final QName SERVICE = new QName("urn:test", "service");
+    
+    private ExchangeTarget target;
+    
+    @Override
+    protected void setUp() throws Exception {
+        super.setUp();
+        target = new ExchangeTarget();
+    }
+  
+    public void testMessagingExceptionWhenNoTargetSet() throws Exception {
+        try {
+            target.afterPropertiesSet();
+            fail("Should have thrown a MessagingException");
+        } catch (MessagingException e) {
+            //this is OK
+        }
+        try {
+            target.configureTarget(null, null);
+            fail("Should have thrown a MessagingException");
+        } catch (MessagingException e) {
+            //this is OK
+        }
+    }
+    
+    public void testInterfaceAndOperation() throws Exception {
+        target.setInterface(INTERFACE);
+        target.setOperation(OPERATION);
+        
+        MessageExchange exchange = new MockMessageExchange();
+        target.configureTarget(exchange, null);
+        assertEquals(INTERFACE, exchange.getInterfaceName());
+        assertEquals(OPERATION, exchange.getOperation());
+    }
+    
+    public void testServiceAndEndpoint() throws Exception {
+        target.setService(SERVICE);
+        target.setEndpoint(ENDPOINT);
+        
+        ComponentContext context = EasyMock.createMock(ComponentContext.class);
+        ServiceEndpoint endpoint = EasyMock.createMock(ServiceEndpoint.class);
+        expect(context.getEndpoint(SERVICE, ENDPOINT)).andReturn(endpoint);
+        replay(context);
+                
+        MessageExchange exchange = new MockMessageExchange();
+        target.configureTarget(exchange, context);
+        assertEquals(SERVICE, exchange.getService());
+        assertEquals(endpoint, exchange.getEndpoint());
+    }
+
+}    
+

Propchange: servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/support/ExchangeTargetTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: servicemix/components/engines/servicemix-saxon/trunk/src/test/java/org/apache/servicemix/saxon/support/ExchangeTargetTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: servicemix/components/engines/servicemix-saxon/trunk/src/test/resources/parameter-test-query.xq
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-saxon/trunk/src/test/resources/parameter-test-query.xq?rev=783184&view=auto
==============================================================================
--- servicemix/components/engines/servicemix-saxon/trunk/src/test/resources/parameter-test-query.xq (added)
+++ servicemix/components/engines/servicemix-saxon/trunk/src/test/resources/parameter-test-query.xq Wed Jun 10 02:46:53 2009
@@ -0,0 +1,26 @@
+(:
+
+    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.
+
+:)
+declare variable $max_price as xs:integer external;
+<titles>
+{
+  for $x in /bookstore/book
+  where $x/price > $max_price
+  return $x/title
+}
+</titles>
\ No newline at end of file

Modified: servicemix/components/engines/servicemix-saxon/trunk/src/test/resources/spring.xml
URL: http://svn.apache.org/viewvc/servicemix/components/engines/servicemix-saxon/trunk/src/test/resources/spring.xml?rev=783184&r1=783183&r2=783184&view=diff
==============================================================================
--- servicemix/components/engines/servicemix-saxon/trunk/src/test/resources/spring.xml (original)
+++ servicemix/components/engines/servicemix-saxon/trunk/src/test/resources/spring.xml Wed Jun 10 02:46:53 2009
@@ -29,6 +29,12 @@
       <saxon:xslt service="test:xslt" endpoint="endpoint"
                   resource="classpath:transform.xsl" />
       <!-- END SNIPPET: xslt -->
+      
+      <!-- START SNIPPET: xslt-string -->
+      <saxon:xslt service="test:xslt-string" endpoint="endpoint"
+                  resource="classpath:transform.xsl" result="string" />
+      <!-- END SNIPPET: xslt-string -->
+ 
       	      
       <!-- START SNIPPET: xslt-params -->
       <saxon:xslt service="test:xslt-params" endpoint="endpoint"
@@ -67,6 +73,27 @@
       <saxon:xquery service="test:xquery" endpoint="endpoint"
                     resource="classpath:query.xq" />
       <!-- END SNIPPET: xquery -->
+      
+      <!-- START SNIPPET: xquery-string -->
+      <saxon:xquery service="test:xquery-string" endpoint="endpoint"
+                    resource="classpath:query.xq" result="string" />
+      <!-- END SNIPPET: xquery-string -->
+      
+      <!-- START SNIPPET: xquery-params -->
+      <saxon:xquery service="test:xquery-params" endpoint="endpoint"
+                  resource="classpath:parameter-test-query.xq" result="bytes">
+        <property name="parameters">
+          <map>
+            <entry key="max_price">
+              <bean class="java.lang.Integer">
+                <constructor-arg index="0" value="30"/>
+              </bean>
+            </entry>
+          </map>
+        </property>
+      </saxon:xquery>
+      <!-- END SNIPPET: xquery-params -->
+   
       	      
       <!-- START SNIPPET: xquery-inline -->
       <saxon:xquery service="test:xquery-inline" endpoint="endpoint" reload="true">
@@ -105,7 +132,50 @@
         </saxon:target>
       </saxon:proxy>
       <!-- END SNIPPET: xslt-proxy -->
-
+      
+      <!--  START SNIPPET: xslt-proxy-string -->
+      <saxon:proxy service="test:proxy-string" endpoint="endpoint"
+                   useDomSourceForXslt="false"
+                   useDomSourceForContent="false"
+                   result="string"
+                   resource="classpath:transform-in.xsl" >
+        <saxon:target>
+          <saxon:exchange-target service="test:echo" />
+        </saxon:target>
+      </saxon:proxy>
+      <!-- END SNIPPET: xslt-proxy-string -->
+      
+      <!--  START SNIPPET: xslt-proxy-bytes -->
+      <saxon:proxy service="test:proxy-bytes" endpoint="endpoint"
+                   useDomSourceForXslt="true"
+                   useDomSourceForContent="true"
+                   result="bytes"
+                   resource="classpath:transform-in.xsl" >
+        <saxon:target>
+          <saxon:exchange-target service="test:echo" />
+        </saxon:target>
+      </saxon:proxy>
+      <!-- END SNIPPET: xslt-proxy-bytes -->
+      
+      <!-- START SNIPPET: xslt-proxy-params -->
+      <saxon:proxy service="test:xslt-proxy-params" endpoint="endpoint"
+                  resource="classpath:transform-in.xsl">
+        <property name="parameters">
+          <map>
+            <entry key="symbol" value="IBM"/>
+            <entry key="volume">
+              <bean class="java.lang.Integer">
+                <constructor-arg index="0" value="10"/>
+              </bean>
+            </entry>
+          </map>
+        </property>
+        <saxon:target>
+          <saxon:exchange-target service="test:echo" />
+        </saxon:target>
+      </saxon:proxy>
+      <!-- END SNIPPET: xslt-proxy-params -->
+      
     </sm:endpoints>
     <sm:activationSpecs>
         <sm:activationSpec service="test:echo" endpoint="endpoint">