1
2
3
4
5
6
7
8
9
10
11 package org.mule.transformers.simple;
12
13 import org.mule.DefaultMuleMessage;
14 import org.mule.RegistryContext;
15 import org.mule.api.MuleEventContext;
16 import org.mule.api.MuleMessage;
17 import org.mule.tck.FunctionalTestCase;
18 import org.mule.transformer.simple.MessagePropertiesTransformer;
19
20 import java.util.Collections;
21 import java.util.HashMap;
22 import java.util.Map;
23
24 public class MessagePropertiesTransformerTestCase extends FunctionalTestCase
25 {
26 protected String getConfigResources()
27 {
28 return "message-properties-transformer-config.xml";
29 }
30
31 public void testOverwriteFlagEnabledByDefault() throws Exception
32 {
33 MessagePropertiesTransformer t = new MessagePropertiesTransformer();
34 Map add = new HashMap();
35 add.put("addedProperty", "overwrittenValue");
36 t.setAddProperties(add);
37
38 MuleMessage msg = new DefaultMuleMessage("message");
39 msg.setProperty("addedProperty", "originalValue");
40 MuleEventContext ctx = getTestEventContext(msg);
41
42 msg = ctx.getMessage();
43 DefaultMuleMessage transformed = (DefaultMuleMessage) t.transform(msg, null);
44 assertSame(msg, transformed);
45 assertEquals(msg.getUniqueId(), transformed.getUniqueId());
46 assertEquals(msg.getPayload(), transformed.getPayload());
47
48 assertEquals(msg.getPropertyNames(), transformed.getPropertyNames());
49
50 assertEquals("overwrittenValue", transformed.getProperty("addedProperty"));
51 }
52
53 public void testOverwriteFalsePreservesOriginal() throws Exception
54 {
55 MessagePropertiesTransformer t = new MessagePropertiesTransformer();
56 Map add = new HashMap();
57 add.put("addedProperty", "overwrittenValue");
58 t.setAddProperties(add);
59 t.setOverwrite(false);
60
61 DefaultMuleMessage msg = new DefaultMuleMessage("message");
62 msg.setProperty("addedProperty", "originalValue");
63 DefaultMuleMessage transformed = (DefaultMuleMessage) t.transform(msg, null);
64 assertSame(msg, transformed);
65 assertEquals(msg.getUniqueId(), transformed.getUniqueId());
66 assertEquals(msg.getPayload(), transformed.getPayload());
67 assertEquals(msg.getPropertyNames(), transformed.getPropertyNames());
68
69 assertEquals("originalValue", transformed.getProperty("addedProperty"));
70 }
71
72 public void testDelete() throws Exception
73 {
74 MessagePropertiesTransformer t = new MessagePropertiesTransformer();
75 t.setDeleteProperties(Collections.singletonList("badProperty"));
76
77 DefaultMuleMessage msg = new DefaultMuleMessage("message");
78 msg.setProperty("badProperty", "badValue");
79 DefaultMuleMessage transformed = (DefaultMuleMessage) t.transform(msg, null);
80 assertSame(msg, transformed);
81 assertEquals(msg.getUniqueId(), transformed.getUniqueId());
82 assertEquals(msg.getPayload(), transformed.getPayload());
83 assertEquals(msg.getPropertyNames(), transformed.getPropertyNames());
84 assertFalse(transformed.getPropertyNames().contains("badValue"));
85 }
86
87 public void testTransformerConfig() throws Exception
88 {
89 MessagePropertiesTransformer transformer = (MessagePropertiesTransformer) RegistryContext.getRegistry().lookupTransformer("testTransformer");
90 assertNotNull(transformer);
91 assertNotNull(transformer.getAddProperties());
92 assertNotNull(transformer.getDeleteProperties());
93 assertEquals(2, transformer.getAddProperties().size());
94 assertEquals(2, transformer.getDeleteProperties().size());
95 assertTrue(transformer.isOverwrite());
96 assertEquals("text/baz;charset=UTF-16BE", transformer.getAddProperties().get("Content-Type"));
97 assertEquals("value", transformer.getAddProperties().get("key"));
98 assertEquals("test-property1", transformer.getDeleteProperties().get(0));
99 assertEquals("test-property2", transformer.getDeleteProperties().get(1));
100 }
101
102 }