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