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