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
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
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 }