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