View Javadoc

1   /*
2    * $Id: TransformerCachingTestCase.java 20321 2010-11-24 15:21:24Z 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.registry;
11  
12  import org.mule.api.transformer.DiscoverableTransformer;
13  import org.mule.api.transformer.Transformer;
14  import org.mule.api.transformer.TransformerException;
15  import org.mule.tck.AbstractMuleTestCase;
16  import org.mule.transformer.AbstractTransformer;
17  import org.mule.transformer.simple.ObjectToByteArray;
18  import org.mule.transformer.types.DataTypeFactory;
19  import org.mule.transformer.types.SimpleDataType;
20  
21  import java.io.FilterInputStream;
22  
23  public class TransformerCachingTestCase extends AbstractMuleTestCase
24  {
25      public void testCacheUpdate() throws Exception
26      {
27          Transformer trans = muleContext.getRegistry().lookupTransformer(new SimpleDataType(FilterInputStream.class), DataTypeFactory.BYTE_ARRAY);
28          assertNotNull(trans);
29          assertTrue(trans instanceof ObjectToByteArray);
30  
31          Transformer trans2 = new FilterInputStreamToByteArray();
32          muleContext.getRegistry().registerTransformer(trans2);
33  
34          trans = muleContext.getRegistry().lookupTransformer(new SimpleDataType(FilterInputStream.class), DataTypeFactory.BYTE_ARRAY);
35          assertNotNull(trans);
36          assertTrue(trans instanceof FilterInputStreamToByteArray);
37  
38          trans = muleContext.getRegistry().lookupTransformer(DataTypeFactory.INPUT_STREAM, DataTypeFactory.BYTE_ARRAY);
39          assertNotNull(trans);
40          assertTrue(trans instanceof ObjectToByteArray);
41  
42          muleContext.getRegistry().unregisterTransformer(trans2.getName());
43  
44          trans = muleContext.getRegistry().lookupTransformer(new SimpleDataType(FilterInputStream.class), DataTypeFactory.BYTE_ARRAY);
45          assertNotNull(trans);
46          assertTrue(trans instanceof ObjectToByteArray);
47  
48      }
49  
50      public static class FilterInputStreamToByteArray extends AbstractTransformer implements DiscoverableTransformer
51      {
52          public FilterInputStreamToByteArray()
53          {
54              registerSourceType(DataTypeFactory.create(FilterInputStream.class));
55              setReturnDataType(DataTypeFactory.BYTE_ARRAY);
56          }
57  
58          @Override
59          protected Object doTransform(Object src, String outputEncoding) throws TransformerException
60          {
61              throw new UnsupportedOperationException("This is a transformer only to be used for testing");
62          }
63  
64          public int getPriorityWeighting()
65          {
66              return 0;
67          }
68  
69          public void setPriorityWeighting(int weighting)
70          {
71              //no-op
72          }
73      }
74  }