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