1
2
3
4
5
6
7
8
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 }