View Javadoc

1   /*
2    * $Id: AnnotatedTransformerTestCase.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.api.annotations.transformer;
11  
12  import org.mule.api.annotations.ContainsTransformerMethods;
13  import org.mule.api.annotations.Transformer;
14  import org.mule.api.transformer.DataType;
15  import org.mule.config.transformer.AnnotatedTransformerProxy;
16  import org.mule.tck.AbstractMuleTestCase;
17  import org.mule.transformer.types.CollectionDataType;
18  import org.mule.transformer.types.DataTypeFactory;
19  
20  import java.io.BufferedInputStream;
21  import java.io.ByteArrayInputStream;
22  import java.io.FileInputStream;
23  import java.io.InputStream;
24  import java.util.ArrayList;
25  
26  import org.junit.Test;
27  
28  
29  @ContainsTransformerMethods
30  public class AnnotatedTransformerTestCase extends AbstractMuleTestCase
31  {
32      @Override
33      protected void doSetUp() throws Exception
34      {
35          muleContext.getRegistry().registerObject("testcase", this);
36      }
37  
38      @Test
39      public void testTransformerRegistration() throws Exception
40      {
41          AnnotatedTransformerProxy trans = (AnnotatedTransformerProxy)muleContext.getRegistry()
42                  .lookupTransformer(getClass().getSimpleName() + ".dummy");
43  
44          assertNotNull(trans);
45          assertEquals(getClass().getSimpleName() + ".dummy", trans.getName());
46          DataType dt = DataTypeFactory.create(ArrayList.class, Object.class, null);
47          assertTrue("should be a CollectionDataType", trans.getReturnDataType() instanceof CollectionDataType);
48          assertEquals(Object.class, ((CollectionDataType)trans.getReturnDataType()).getItemType());
49  
50          assertEquals(dt, trans.getReturnDataType());
51  
52          assertEquals(1, trans.getSourceDataTypes().size());
53          assertEquals(DataTypeFactory.INPUT_STREAM, trans.getSourceDataTypes().get(0));
54          assertEquals(5, trans.getPriorityWeighting());
55      }
56  
57      @Test
58      public void testTransformerRegistration2() throws Exception
59      {
60          AnnotatedTransformerProxy trans = (AnnotatedTransformerProxy)muleContext.getRegistry()
61                  .lookupTransformer(getClass().getSimpleName() + ".dummy2");
62  
63          assertEquals(getClass().getSimpleName() + ".dummy2", trans.getName());
64          assertTrue("should be a CollectionDataType", trans.getReturnDataType() instanceof CollectionDataType);
65          assertEquals(String.class, ((CollectionDataType)trans.getReturnDataType()).getItemType());
66  
67          DataType dt = DataTypeFactory.create(ArrayList.class, String.class, null);
68          assertEquals(dt, trans.getReturnDataType());
69          assertEquals(3, trans.getSourceDataTypes().size());
70          assertTrue(trans.getSourceDataTypes().contains(DataTypeFactory.create(BufferedInputStream.class)));
71          assertTrue(trans.getSourceDataTypes().contains(DataTypeFactory.create(FileInputStream.class)));
72          assertTrue(trans.getSourceDataTypes().contains(DataTypeFactory.create(ByteArrayInputStream.class)));
73          assertEquals(9, trans.getPriorityWeighting());
74      }
75  
76  
77      @Transformer
78      public ArrayList dummy(InputStream in)
79      {
80          return new ArrayList();
81      }
82  
83      @Transformer(sourceTypes = {FileInputStream.class, ByteArrayInputStream.class}, priorityWeighting = 9)
84      public ArrayList<String> dummy2(BufferedInputStream in)
85      {
86          return new ArrayList<String>();
87      }
88  }