View Javadoc

1   /*
2    * $Id: InlineXsltTransformerTestCase.java 22377 2011-07-11 12:41:42Z 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  import org.junit.Test;
23  
24  import static org.junit.Assert.assertNotNull;
25  import static org.junit.Assert.assertTrue;
26  
27  public class InlineXsltTransformerTestCase extends AbstractXmlTransformerTestCase
28  {
29  
30      private String srcData;
31      private String resultData;
32  
33      @Override
34      protected void doSetUp() throws Exception
35      {
36          srcData = IOUtils.getResourceAsString("simple.xml", getClass());
37          resultData = IOUtils.getResourceAsString("simple-out.xml", getClass());
38      }
39  
40      @Override
41      public Transformer getTransformer() throws Exception
42      {
43          XsltTransformer transformer = new XsltTransformer();
44          transformer.setXslt("<?xml version='1.0'?>\n"
45                              + "<xsl:stylesheet version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>\n"
46                              + "<xsl:output method='xml'/>\n" + "<xsl:template match='/'>\n"
47                              + "  <some-xml>\n" + "    <xsl:copy-of select='.'/>\n" + "  </some-xml>\n"
48                              + "</xsl:template>\n" + "</xsl:stylesheet>");
49          transformer.setReturnDataType(DataTypeFactory.STRING);
50          transformer.setMuleContext(muleContext);
51          transformer.initialise();
52          return transformer;
53      }
54  
55      @Override
56      public Transformer getRoundTripTransformer() throws Exception
57      {
58          return null;
59      }
60  
61      @Override
62      public void testRoundtripTransform() throws Exception
63      {
64          // disable this test
65      }
66  
67      @Override
68      public Object getTestData()
69      {
70          return srcData;
71      }
72  
73      @Override
74      public Object getResultData()
75      {
76          return resultData;
77      }
78  
79      @Test
80      public void testAllXmlMessageTypes() throws Exception
81      {
82          List list = XMLTestUtils.getXmlMessageVariants("simple.xml");
83          Iterator it = list.iterator();
84          
85          Object expectedResult = getResultData();
86          assertNotNull(expectedResult);
87          
88          Object msg, result;
89          while (it.hasNext())
90          {
91              msg = it.next();
92              // TODO Not working for XMLStreamReader
93              if (!(msg instanceof javax.xml.stream.XMLStreamReader))
94              {
95                  result = getTransformer().transform(msg);
96                  assertNotNull(result);
97                  assertTrue("Test failed for message type: " + msg.getClass(), compareResults(expectedResult, result));
98              }
99          }
100     }
101 }