1   /*
2    * $Id: TransformerCachingTestCase.java 10489 2008-01-23 17:53:38Z dfeist $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.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  
19  import java.io.FilterInputStream;
20  import java.io.InputStream;
21  
22  public class TransformerCachingTestCase extends AbstractMuleTestCase
23  {
24      public void testCacheUpdate() throws Exception
25      {
26          Transformer trans = muleContext.getRegistry().lookupTransformer(FilterInputStream.class, byte[].class);
27          assertNotNull(trans);
28          assertTrue(trans instanceof ObjectToByteArray);
29  
30          Transformer trans2 = new FilterInputStreamToByteArray();
31          muleContext.getRegistry().registerTransformer(trans2);
32  
33          trans = muleContext.getRegistry().lookupTransformer(FilterInputStream.class, byte[].class);
34          assertNotNull(trans);
35          assertTrue(trans instanceof FilterInputStreamToByteArray);
36  
37          trans = muleContext.getRegistry().lookupTransformer(InputStream.class, byte[].class);
38          assertNotNull(trans);
39          assertTrue(trans instanceof ObjectToByteArray);
40  
41          muleContext.getRegistry().unregisterTransformer(trans2.getName());
42  
43          trans = muleContext.getRegistry().lookupTransformer(FilterInputStream.class, byte[].class);
44          assertNotNull(trans);
45          assertTrue(trans instanceof ObjectToByteArray);
46  
47      }
48  
49      public static class FilterInputStreamToByteArray extends AbstractTransformer implements DiscoverableTransformer
50      {
51          public FilterInputStreamToByteArray()
52          {
53              registerSourceType(FilterInputStream.class);
54              setReturnClass(byte[].class);
55          }
56  
57          protected Object doTransform(Object src, String encoding) throws TransformerException
58          {
59              throw new UnsupportedOperationException("This is a transformer only to be used for testing");
60          }
61  
62          public int getPriorityWeighting()
63          {
64              return 0;
65          }
66  
67          public void setPriorityWeighting(int weighting)
68          {
69              //no-op
70          }
71      }
72  }