1   /*
2    * $Id: OGNLFilterTestCase.java 7976 2007-08-21 14:26:13Z dirk.olmes $
3    * --------------------------------------------------------------------------------------
4    * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
5    *
6    * The software in this package is published under the terms of the CPAL v1.0
7    * license, a copy of which has been included with this distribution in the
8    * LICENSE.txt file.
9    */
10  
11  package org.mule.routing.filters;
12  
13  import org.mule.config.ConfigurationException;
14  import org.mule.impl.MuleMessage;
15  import org.mule.tck.AbstractMuleTestCase;
16  import org.mule.umo.UMOMessage;
17  
18  public class OGNLFilterTestCase extends AbstractMuleTestCase
19  {
20      private OGNLFilter filter;
21  
22      // @Override
23      protected void doSetUp() throws Exception
24      {
25          filter = new OGNLFilter();
26      }
27  
28      // @Override
29      protected void doTearDown() throws Exception
30      {
31          filter = null;
32      }
33  
34      public void testNewFilter()
35      {
36          assertFalse(filter.accept(null));
37      }
38  
39      public void testNoExpressionEmptyMessage()
40      {
41          UMOMessage message = new MuleMessage(null);
42          assertFalse(filter.accept(message));
43      }
44  
45      public void testNoExpressionValidMessage()
46      {
47          UMOMessage message = new MuleMessage("foo");
48          assertFalse(filter.accept(message));
49      }
50  
51      public void testStringExpression() throws ConfigurationException
52      {
53          UMOMessage message = new MuleMessage("foo");
54          filter.setExpression("equals(\"foo\")");
55          assertTrue(filter.accept(message));
56      }
57  
58      public void testValidObjectExpression() throws ConfigurationException
59      {
60          Dummy payload = new Dummy();
61          payload.setContent("foobar");
62          UMOMessage message = new MuleMessage(payload);
63          filter.setExpression("content.endsWith(\"bar\")");
64          assertTrue(filter.accept(message));
65      }
66  
67      public void testInvalidObjectExpression()
68      {
69          try
70          {
71              filter.setExpression("foo:bar");
72              fail("should have failed with ConfigurationException");
73          }
74          catch (ConfigurationException configex)
75          {
76              // expected
77          }
78  
79          // make sure the filter is still unconfigured
80          assertNull(filter.getExpression());
81      }
82  
83      // a simple POJO for testing object expressions
84      private static class Dummy
85      {
86          private int id;
87          private String content;
88  
89          public Dummy()
90          {
91              super();
92          }
93  
94          /**
95           * @return Returns the content.
96           */
97          public String getContent()
98          {
99              return content;
100         }
101 
102         /**
103          * @param content The content to set.
104          */
105         public void setContent(String content)
106         {
107             this.content = content;
108         }
109 
110         /**
111          * @return Returns the id.
112          */
113         public int getId()
114         {
115             return id;
116         }
117 
118         /**
119          * @param id The id to set.
120          */
121         public void setId(int id)
122         {
123             this.id = id;
124         }
125     }
126 
127 }