View Javadoc

1   /*
2    * $Id: StringToObjectArrayTestCase.java 20385 2010-11-29 20:25:26Z dfeist $
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  package org.mule.transformer.simple;
11  
12  import org.mule.api.endpoint.EndpointBuilder;
13  import org.mule.api.endpoint.ImmutableEndpoint;
14  import org.mule.api.transformer.Transformer;
15  import org.mule.config.i18n.LocaleMessageHandler;
16  import org.mule.endpoint.EndpointURIEndpointBuilder;
17  import org.mule.transformer.AbstractTransformerTestCase;
18  import org.mule.transformer.types.DataTypeFactory;
19  
20  import java.io.UnsupportedEncodingException;
21  import java.util.Locale;
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  	@Override
48  	public Transformer getTransformer() throws Exception
49  	{
50          Transformer trans = createObject(StringToObjectArray.class);
51          trans.setReturnDataType(DataTypeFactory.create(Object[].class));
52  
53          EndpointBuilder builder = new EndpointURIEndpointBuilder("test://test", muleContext);
54          builder.setEncoding(encoding);
55          ImmutableEndpoint endpoint = muleContext.getEndpointFactory().getInboundEndpoint(
56              builder);
57          trans.setEndpoint(endpoint);
58  
59          return trans;
60  	}
61  
62  	@Override
63  	public Transformer getRoundTripTransformer() throws Exception
64  	{
65  		return new ObjectArrayToString();
66  	}
67  
68  	@Override
69  	public boolean compareResults(Object expected, Object result)
70  	{
71          return super.compareResults(expected, result);
72  	}
73  
74  	@Override
75      public boolean compareRoundtripResults(Object expected, Object result)
76  	{
77          try
78          {
79          	return super.compareRoundtripResults(expected, ((String)result).getBytes(encoding));
80          }
81          catch (UnsupportedEncodingException e)
82          {
83              throw new RuntimeException(e);
84          }
85      }
86  
87      private String getMessage(String key)
88      {
89          return LocaleMessageHandler.getString("test-data", Locale.JAPAN, "StringToObjectArrayTestCase." + key, new Object[] {});
90      }
91  
92  }