View Javadoc

1   package com.atlassian.plugin.predicate;
2   
3   import com.atlassian.plugin.ModuleDescriptor;
4   import com.mockobjects.dynamic.Mock;
5   import junit.framework.TestCase;
6   
7   /**
8    * Testing {@link ModuleOfClassPredicate}
9    */
10  public class TestModuleOfClassPredicate extends TestCase
11  {
12      private final static Class TEST_MODULE_CLASS = TestCase.class;
13  
14      private ModuleDescriptorPredicate moduleDescriptorPredicate;
15  
16      private Mock mockModuleDescriptor;
17      private ModuleDescriptor moduleDescriptor;
18  
19      protected void setUp() throws Exception
20      {
21          moduleDescriptorPredicate = new ModuleOfClassPredicate(TEST_MODULE_CLASS);
22  
23          mockModuleDescriptor = new Mock(ModuleDescriptor.class);
24          moduleDescriptor = (ModuleDescriptor) mockModuleDescriptor.proxy();
25      }
26  
27      protected void tearDown() throws Exception
28      {
29          moduleDescriptorPredicate = null;
30          moduleDescriptor = null;
31          mockModuleDescriptor = null;
32      }
33  
34      public void testCannotCreateWithNullClass()
35      {
36          try
37          {
38              new ModuleOfClassPredicate(null);
39              fail("Constructor should have thrown illegal argument exception.");
40          }
41          catch (IllegalArgumentException e)
42          {
43              // noop
44          }
45      }
46  
47      public void testMatchesModuleExtendingClass()
48      {
49          mockModuleDescriptor.matchAndReturn("getModuleClass", this.getClass());
50          assertTrue(moduleDescriptorPredicate.matches(moduleDescriptor));
51      }
52  
53      public void testDoesNotMatchModuleNotExtendingClass()
54      {
55          mockModuleDescriptor.matchAndReturn("getModuleClass", Object.class);
56          assertFalse(moduleDescriptorPredicate.matches(moduleDescriptor));
57      }
58  }