View Javadoc

1   /*
2    * $Id: ObjectToInputStreamTestCase.java 22377 2011-07-11 12:41:42Z dirk.olmes $
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  
11  package org.mule.transformer.simple;
12  
13  import org.mule.api.transformer.TransformerException;
14  import org.mule.tck.junit4.AbstractMuleContextTestCase;
15  import org.mule.tck.testmodels.fruit.Apple;
16  import org.mule.util.IOUtils;
17  
18  import java.io.ByteArrayInputStream;
19  import java.io.IOException;
20  import java.io.InputStream;
21  import java.util.Arrays;
22  
23  import org.apache.commons.lang.SerializationUtils;
24  import org.junit.Test;
25  
26  import static org.junit.Assert.assertEquals;
27  import static org.junit.Assert.assertTrue;
28  
29  public class ObjectToInputStreamTestCase extends AbstractMuleContextTestCase
30  {
31  
32      private ObjectToInputStream transformer = new ObjectToInputStream();
33  
34      @Test
35      public void testTransformString() throws TransformerException, IOException
36      {
37          assertTrue(InputStream.class.isAssignableFrom(transformer.transform(TEST_MESSAGE).getClass()));
38          assertTrue(compare(new ByteArrayInputStream(TEST_MESSAGE.getBytes()),
39                             (InputStream) transformer.transform(TEST_MESSAGE)));
40      }
41  
42      @Test
43      public void testTransformByteArray() throws TransformerException, IOException
44      {
45          assertTrue(InputStream.class.isAssignableFrom(transformer.transform(
46                  TEST_MESSAGE.getBytes()).getClass()));
47          assertTrue(compare(new ByteArrayInputStream(TEST_MESSAGE.getBytes()),
48                             (InputStream) transformer.transform(TEST_MESSAGE)));
49      }
50  
51      @Test
52      public void testTransformInputStream()
53      {
54          InputStream inputStream = new ByteArrayInputStream(TEST_MESSAGE.getBytes());
55          try
56          {
57              assertEquals(inputStream, transformer.transform(inputStream));
58          }
59          catch (Exception e)
60          {
61              assertTrue(e instanceof TransformerException);
62              assertTrue(e.getMessage().contains("does not support source type"));
63          }
64      }
65  
66      @Test
67      public void testTransformSerializable()
68      {
69          Apple apple = new Apple();
70          InputStream serializedApple = new ByteArrayInputStream(SerializationUtils.serialize(apple));
71          try
72          {
73              assertTrue(compare(serializedApple, (InputStream) transformer.transform(apple)));
74          }
75          catch (Exception e)
76          {
77              assertTrue(e instanceof TransformerException);
78              assertTrue(e.getMessage().contains("does not support source type"));
79          }
80      }
81  
82      public static boolean compare(InputStream input1, InputStream input2)
83      {
84          byte[] bytes1 = IOUtils.toByteArray(input1);
85          byte[] bytes2 = IOUtils.toByteArray(input2);
86          return Arrays.equals(bytes1, bytes2);
87      }
88  }