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