View Javadoc

1   package com.atlassian.plugin.predicate;
2   
3   import com.atlassian.plugin.descriptors.AbstractModuleDescriptor;
4   import com.atlassian.plugin.descriptors.MockUnusedModuleDescriptor;
5   import com.atlassian.plugin.module.ModuleFactory;
6   import junit.framework.TestCase;
7   
8   /**
9    * Testing {@link ModuleDescriptorOfClassPredicate}
10   */
11  public class TestModuleDescriptorOfClassPredicate extends TestCase
12  {
13      private ModuleDescriptorPredicate moduleDescriptorPredicate;
14  
15      protected void setUp() throws Exception
16      {
17          moduleDescriptorPredicate = new ModuleDescriptorOfClassPredicate(ModuleDescriptorStubA.class);
18      }
19  
20      protected void tearDown() throws Exception
21      {
22          moduleDescriptorPredicate = null;
23      }
24  
25      public void testCannotCreateWithNullModuleDescritptorClassesArray()
26      {
27          try
28          {
29              new ModuleDescriptorOfClassPredicate((Class[]) null);
30              fail("Constructor should have thrown illegal argument exception.");
31          }
32          catch (IllegalArgumentException e)
33          {
34              // noop
35          }
36      }
37  
38      public void testMatchesModuleWithModuleDescriptorClassExactlyMatchingClass()
39      {
40          assertTrue(moduleDescriptorPredicate.matches(new ModuleDescriptorStubA()));
41      }
42  
43      public void testDoesNotMatchModuleWithModuleDescriptorClassExtendingButNotExactlyMatchingClass()
44      {
45          assertTrue(moduleDescriptorPredicate.matches(new ModuleDescriptorStubB()));
46      }
47  
48      public void testDoesNotMatchModuleWithModuleDescriptorClassNotMatchingClass()
49      {
50          assertFalse(moduleDescriptorPredicate.matches(new MockUnusedModuleDescriptor()));
51      }
52  
53      private static class ModuleDescriptorStubA extends AbstractModuleDescriptor
54      {
55          public ModuleDescriptorStubA()
56          {
57              super(ModuleFactory.LEGACY_MODULE_FACTORY);
58          }
59  
60          public Object getModule()
61          {
62              return null;
63          }
64      }
65  
66      private static class ModuleDescriptorStubB extends ModuleDescriptorStubA
67      {
68      }
69  }