1
2
3
4
5
6
7
8
9
10
11 package org.mule.mule.enricher;
12
13 import org.mule.RequestContext;
14 import org.mule.api.MuleEvent;
15 import org.mule.api.MuleException;
16 import org.mule.api.MuleMessage;
17 import org.mule.api.processor.MessageProcessor;
18 import org.mule.enricher.MessageEnricher;
19 import org.mule.enricher.MessageEnricher.EnrichExpressionPair;
20 import org.mule.tck.AbstractMuleTestCase;
21 import org.mule.transformer.simple.StringAppendTransformer;
22
23 public class MessageEnricherTestCase extends AbstractMuleTestCase
24 {
25
26 public void testEnrichHeaderWithPayload() throws Exception
27 {
28 MessageEnricher enricher = new MessageEnricher();
29 enricher.addEnrichExpressionPair(new EnrichExpressionPair("#[header:myHeader]"));
30 enricher.setEnrichmentMessageProcessor(new MessageProcessor()
31 {
32
33 public MuleEvent process(MuleEvent event) throws MuleException
34 {
35 event.getMessage().setPayload("test");
36 return event;
37 }
38 });
39
40 MuleMessage result = enricher.process(getTestEvent("")).getMessage();
41 assertEquals("test", result.getOutboundProperty("myHeader"));
42 assertEquals("", result.getPayload());
43 }
44
45 public void testEnrichHeaderWithHeader() throws Exception
46 {
47 MessageEnricher enricher = new MessageEnricher();
48 enricher.addEnrichExpressionPair(new EnrichExpressionPair("#[header:header1]", "#[header:myHeader]"));
49 enricher.setEnrichmentMessageProcessor(new MessageProcessor()
50 {
51
52 public MuleEvent process(MuleEvent event) throws MuleException
53 {
54 event.getMessage().setOutboundProperty("header1", "test");
55 return event;
56 }
57 });
58
59 MuleMessage result = enricher.process(getTestEvent("")).getMessage();
60 assertEquals("test", result.getOutboundProperty("myHeader"));
61 assertEquals("", result.getPayload());
62 }
63
64 public void testEnrichHeadersMToN() throws Exception
65 {
66 MessageEnricher enricher = new MessageEnricher();
67 enricher.addEnrichExpressionPair(new EnrichExpressionPair("#[header:header1]", "#[header:myHeader1]"));
68 enricher.addEnrichExpressionPair(new EnrichExpressionPair("#[header:header2]", "#[header:myHeader2]"));
69 enricher.addEnrichExpressionPair(new EnrichExpressionPair("#[header:header3]", "#[header:myHeader3]"));
70 enricher.setEnrichmentMessageProcessor(new MessageProcessor()
71 {
72
73 public MuleEvent process(MuleEvent event) throws MuleException
74 {
75 event.getMessage().setOutboundProperty("header1", "test");
76 event.getMessage().setOutboundProperty("header2", "test2");
77 event.getMessage().setOutboundProperty("header3", "test3");
78 return event;
79 }
80 });
81
82 MuleMessage result = enricher.process(getTestEvent("")).getMessage();
83
84 assertNull(result.getOutboundProperty("myHeader"));
85 assertEquals("test2",result.getOutboundProperty("myHeader2"));
86 assertEquals("test3",result.getOutboundProperty("myHeader3"));
87
88 assertEquals("", result.getPayload());
89 }
90
91 public void testEnrichHeaderNestedEvaluator() throws Exception
92 {
93 muleContext.getRegistry().registerObject("appender", new StringAppendTransformer(" append"));
94
95 MessageEnricher enricher = new MessageEnricher();
96 enricher.addEnrichExpressionPair(new EnrichExpressionPair("#[process:appender:#[header:header1]]",
97 "#[header:myHeader]"));
98 enricher.setEnrichmentMessageProcessor(new MessageProcessor()
99 {
100
101 public MuleEvent process(MuleEvent event) throws MuleException
102 {
103 event.getMessage().setOutboundProperty("header1", "test");
104 return event;
105 }
106 });
107
108 MuleEvent event = getTestEvent("");
109 RequestContext.setEvent(event);
110
111 assertEquals("test append", enricher.process(getTestEvent("")).getMessage().getOutboundProperty(
112 "myHeader"));
113 }
114
115 }