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.transformer.simple;
8   
9   import org.mule.api.endpoint.EndpointBuilder;
10  import org.mule.api.endpoint.ImmutableEndpoint;
11  import org.mule.api.transformer.Transformer;
12  import org.mule.config.i18n.LocaleMessageHandler;
13  import org.mule.endpoint.EndpointURIEndpointBuilder;
14  import org.mule.transformer.AbstractTransformerTestCase;
15  import org.mule.transformer.types.DataTypeFactory;
16  
17  import java.io.UnsupportedEncodingException;
18  import java.util.Locale;
19  
20  import org.junit.Ignore;
21  import org.junit.Test;
22  
23  public class StringToObjectArrayTestCase extends AbstractTransformerTestCase
24  {
25  
26  	private String encoding = "Windows-31J";
27  
28  	@Override
29  	public Object getResultData()
30  	{
31  		return new String[]{ getMessage("char0"), getMessage("char1"), getMessage("char2") };
32  	}
33  
34  	@Override
35  	public Object getTestData()
36  	{
37  	    try
38  	    {
39  		    return getMessage("message").getBytes(encoding);
40  	    }
41  	    catch (UnsupportedEncodingException e)
42  	    {
43  	    	throw new RuntimeException(e);
44  	    }
45  	}
46  
47      @Ignore
48      @Test
49      @Override
50      public void testTransform() throws Exception
51      {
52        // Overriden just to ignore it
53      }
54  
55      @Ignore
56      @Test
57      @Override
58      public void testRoundtripTransform() throws Exception
59      {
60          // Overriden just to ignore it
61      }
62  
63      @Override
64  	public Transformer getTransformer() throws Exception
65  	{
66          Transformer trans = createObject(StringToObjectArray.class);
67          trans.setReturnDataType(DataTypeFactory.create(Object[].class));
68  
69          EndpointBuilder builder = new EndpointURIEndpointBuilder("test://test", muleContext);
70          builder.setEncoding(encoding);
71          ImmutableEndpoint endpoint = muleContext.getEndpointFactory().getInboundEndpoint(
72              builder);
73          trans.setEndpoint(endpoint);
74  
75          return trans;
76  	}
77  
78  	@Override
79  	public Transformer getRoundTripTransformer() throws Exception
80  	{
81  		return new ObjectArrayToString();
82  	}
83  
84  	@Override
85  	public boolean compareResults(Object expected, Object result)
86  	{
87          return super.compareResults(expected, result);
88  	}
89  
90  	@Override
91      public boolean compareRoundtripResults(Object expected, Object result)
92  	{
93          try
94          {
95          	return super.compareRoundtripResults(expected, ((String)result).getBytes(encoding));
96          }
97          catch (UnsupportedEncodingException e)
98          {
99              throw new RuntimeException(e);
100         }
101     }
102 
103     private String getMessage(String key)
104     {
105         return LocaleMessageHandler.getString("test-data", Locale.JAPAN, "StringToObjectArrayTestCase." + key, new Object[] {});
106     }
107 
108 }