View Javadoc

1   /*
2    * $Id: StringToObjectArrayTestCase.java 21943 2011-05-18 14:23:26Z aperepel $
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  }