1
2
3
4
5
6
7
8
9
10
11 package org.mule.transformer.simple;
12
13 import org.mule.DefaultMuleEvent;
14 import org.mule.DefaultMuleMessage;
15 import org.mule.RequestContext;
16 import org.mule.api.MuleMessage;
17 import org.mule.api.transformer.Transformer;
18 import org.mule.tck.MuleTestUtils;
19 import org.mule.tck.testmodels.fruit.Apple;
20 import org.mule.transformer.AbstractTransformerTestCase;
21
22 import java.io.IOException;
23 import java.io.ObjectOutputStream;
24 import java.util.Arrays;
25 import java.util.HashMap;
26 import java.util.Map;
27
28 import org.apache.commons.io.output.ByteArrayOutputStream;
29
30 public class SerializedUMOMessageTransformersTestCase extends AbstractTransformerTestCase
31 {
32 private MuleMessage testObject = null;
33
34
35 protected void doSetUp() throws Exception
36 {
37 Map props = new HashMap();
38 props.put("object", new Apple());
39 props.put("number", new Integer(1));
40 props.put("string", "hello");
41 testObject = new DefaultMuleMessage("test", props);
42
43 RequestContext.setEvent(
44 new DefaultMuleEvent(testObject, getTestOutboundEndpoint("test"),
45 MuleTestUtils.getTestSession(muleContext), true));
46 }
47
48
49 protected void doTearDown() throws Exception
50 {
51 RequestContext.clear();
52 }
53
54
55
56 public void testTransform() throws Exception
57 {
58
59
60
61 }
62
63 public Transformer getTransformer() throws Exception
64 {
65 return new MuleMessageToByteArray();
66 }
67
68 public Transformer getRoundTripTransformer() throws Exception
69 {
70 return new ByteArrayToMuleMessage();
71 }
72
73 public Object getTestData()
74 {
75 return testObject;
76 }
77
78 public Object getResultData()
79 {
80 try
81 {
82 ByteArrayOutputStream bs = null;
83 ObjectOutputStream os = null;
84
85 bs = new ByteArrayOutputStream();
86 os = new ObjectOutputStream(bs);
87 os.writeObject(testObject);
88 os.flush();
89 os.close();
90 return bs.toByteArray();
91 }
92 catch (IOException e)
93 {
94 throw new IllegalStateException(e.getMessage());
95 }
96 }
97
98
99 public boolean compareResults(Object src, Object result)
100 {
101 if (src == null && result == null)
102 {
103 return true;
104 }
105 if (src == null || result == null)
106 {
107 return false;
108 }
109 return Arrays.equals((byte[])src, (byte[])result);
110 }
111
112
113 public boolean compareRoundtripResults(Object src, Object result)
114 {
115 if (src == null && result == null)
116 {
117 return true;
118 }
119 if (src == null || result == null)
120 {
121 return false;
122 }
123 if (src instanceof MuleMessage && result instanceof MuleMessage)
124 {
125 return ((MuleMessage)src).getPayload().equals(((MuleMessage)result).getPayload())
126 && ((MuleMessage)src).getProperty("object").equals(
127 ((MuleMessage)result).getProperty("object"))
128 && ((MuleMessage)src).getProperty("string").equals(
129 ((MuleMessage)result).getProperty("string"))
130 && ((MuleMessage)src).getIntProperty("number", -1) == ((MuleMessage)result)
131 .getIntProperty("number", -2);
132 }
133 else
134 {
135 return false;
136 }
137 }
138 }