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      private final static Class TEST_MODULE_CLASS = TestCase.class;
12  
13      private ModuleDescriptorPredicate moduleDescriptorPredicate;
14  
15      private Mock mockModuleDescriptor;
16      private ModuleDescriptor moduleDescriptor;
17  
18      protected void setUp() throws Exception {
19          moduleDescriptorPredicate = new ModuleOfClassPredicate(TEST_MODULE_CLASS);
20  
21          mockModuleDescriptor = new Mock(ModuleDescriptor.class);
22          moduleDescriptor = (ModuleDescriptor) mockModuleDescriptor.proxy();
23      }
24  
25      protected void tearDown() throws Exception {
26          moduleDescriptorPredicate = null;
27          moduleDescriptor = null;
28          mockModuleDescriptor = null;
29      }
30  
31      public void testCannotCreateWithNullClass() {
32          try {
33              new ModuleOfClassPredicate(null);
34              fail("Constructor should have thrown illegal argument exception.");
35          } catch (IllegalArgumentException e) {
36              // noop
37          }
38      }
39  
40      public void testMatchesModuleExtendingClass() {
41          mockModuleDescriptor.matchAndReturn("getModuleClass", this.getClass());
42          assertTrue(moduleDescriptorPredicate.matches(moduleDescriptor));
43      }
44  
45      public void testDoesNotMatchModuleNotExtendingClass() {
46          mockModuleDescriptor.matchAndReturn("getModuleClass", Object.class);
47          assertFalse(moduleDescriptorPredicate.matches(moduleDescriptor));
48      }
49  }