View Javadoc

1   /*
2    * $Id: InlineXsltTransformerTestCase.java 19250 2010-08-30 16:53:14Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.transformers.xml;
12  
13  import org.mule.api.transformer.Transformer;
14  import org.mule.module.xml.transformer.XsltTransformer;
15  import org.mule.module.xml.util.XMLTestUtils;
16  import org.mule.transformer.types.DataTypeFactory;
17  import org.mule.util.IOUtils;
18  
19  import java.util.Iterator;
20  import java.util.List;
21  
22  public class InlineXsltTransformerTestCase extends AbstractXmlTransformerTestCase
23  {
24  
25      private String srcData;
26      private String resultData;
27  
28      @Override
29      protected void doSetUp() throws Exception
30      {
31          srcData = IOUtils.getResourceAsString("simple.xml", getClass());
32          resultData = IOUtils.getResourceAsString("simple-out.xml", getClass());
33      }
34  
35      @Override
36      public Transformer getTransformer() throws Exception
37      {
38          XsltTransformer transformer = new XsltTransformer();
39          transformer.setXslt("<?xml version='1.0'?>\n"
40                              + "<xsl:stylesheet version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>\n"
41                              + "<xsl:output method='xml'/>\n" + "<xsl:template match='/'>\n"
42                              + "  <some-xml>\n" + "    <xsl:copy-of select='.'/>\n" + "  </some-xml>\n"
43                              + "</xsl:template>\n" + "</xsl:stylesheet>");
44          transformer.setReturnDataType(DataTypeFactory.STRING);
45          transformer.setMuleContext(muleContext);
46          transformer.initialise();
47          return transformer;
48      }
49  
50      @Override
51      public Transformer getRoundTripTransformer() throws Exception
52      {
53          return null;
54      }
55  
56      @Override
57      public void testRoundtripTransform() throws Exception
58      {
59          // disable this test
60      }
61  
62      @Override
63      public Object getTestData()
64      {
65          return srcData;
66      }
67  
68      @Override
69      public Object getResultData()
70      {
71          return resultData;
72      }
73  
74      public void testAllXmlMessageTypes() throws Exception
75      {
76          List list = XMLTestUtils.getXmlMessageVariants("simple.xml");
77          Iterator it = list.iterator();
78          
79          Object expectedResult = getResultData();
80          assertNotNull(expectedResult);
81          
82          Object msg, result;
83          while (it.hasNext())
84          {
85              msg = it.next();
86              // TODO Not working for XMLStreamReader
87              if (!(msg instanceof javax.xml.stream.XMLStreamReader))
88              {
89                  result = getTransformer().transform(msg);
90                  assertNotNull(result);
91                  assertTrue("Test failed for message type: " + msg.getClass(), compareResults(expectedResult, result));
92              }
93          }
94      }
95  }