1   /*
2    * $Id: MessagePropertyFilterTestCase.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.impl.MuleMessage;
14  import org.mule.tck.AbstractMuleTestCase;
15  import org.mule.umo.UMOMessage;
16  
17  public class MessagePropertyFilterTestCase extends AbstractMuleTestCase
18  {
19  
20      public void testMessagePropertyFilter() throws Exception
21      {
22          MessagePropertyFilter filter = new MessagePropertyFilter("foo=bar");
23          UMOMessage message = new MuleMessage("blah");
24          assertTrue(!filter.accept(message));
25          message.setProperty("foo", "bar");
26          assertTrue(filter.accept(message));
27      }
28  
29      public void testMessagePropertyFilterWithNot() throws Exception
30      {
31          MessagePropertyFilter filter = new MessagePropertyFilter("foo!=bar");
32          UMOMessage message = new MuleMessage("blah");
33  
34          assertTrue(filter.accept(message));
35          message.setProperty("foo", "bar");
36          assertTrue(!filter.accept(message));
37          message.setProperty("foo", "car");
38          assertTrue(filter.accept(message));
39      }
40  
41      public void testMessagePropertyFilterWithNotNull() throws Exception
42      {
43          MessagePropertyFilter filter = new MessagePropertyFilter("foo!=null");
44          UMOMessage message = new MuleMessage("blah");
45  
46          assertTrue(!filter.accept(message));
47          message.removeProperty("foo");
48          assertTrue(!filter.accept(message));
49          message.setProperty("foo", "car");
50          assertTrue(filter.accept(message));
51      }
52  
53      public void testMessagePropertyFilterWithCaseSensitivity() throws Exception
54      {
55          MessagePropertyFilter filter = new MessagePropertyFilter("foo=Bar");
56          UMOMessage message = new MuleMessage("blah");
57          message.setProperty("foo", "bar");
58          assertTrue(!filter.accept(message));
59          filter.setCaseSensitive(false);
60          assertTrue(filter.accept(message));
61      }
62  
63      public void testMessagePropertyFilterDodgyValues() throws Exception
64      {
65          MessagePropertyFilter filter = new MessagePropertyFilter();
66          assertFalse(filter.accept(null));
67  
68          filter = new MessagePropertyFilter("foo = bar");
69          UMOMessage message = new MuleMessage("blah");
70          message.setProperty("foo", "bar");
71          assertTrue(filter.accept(message));
72          filter.setCaseSensitive(false);
73  
74          filter = new MessagePropertyFilter("foo2 =null");
75          message.removeProperty("foo2");
76          assertTrue(filter.accept(message));
77  
78          filter = new MessagePropertyFilter("foo2 =");
79          message.setProperty("foo2", "");
80          assertTrue(filter.accept(message));
81  
82          message.removeProperty("foo2");
83          assertTrue(!filter.accept(message));
84      }
85  }