1 package com.atlassian.plugin.predicate;
2
3 import com.atlassian.plugin.ModuleDescriptorFactory;
4 import com.atlassian.plugin.descriptors.AbstractModuleDescriptor;
5 import com.atlassian.plugin.module.ModuleFactory;
6 import com.mockobjects.dynamic.C;
7 import com.mockobjects.dynamic.Mock;
8 import junit.framework.TestCase;
9
10
11
12
13 public class TestModuleDescriptorOfTypePredicate extends TestCase
14 {
15 public void testMatchesModuleWithModuleDescriptorMatchingType()
16 {
17 final Mock mockModuleDescriptorFactory = new Mock(ModuleDescriptorFactory.class);
18 mockModuleDescriptorFactory.matchAndReturn("getModuleDescriptorClass", C.ANY_ARGS, ModuleDescriptorStubA.class);
19
20 final ModuleDescriptorPredicate<Object> moduleDescriptorPredicate = new ModuleDescriptorOfTypePredicate<Object>(
21 (ModuleDescriptorFactory) mockModuleDescriptorFactory.proxy(), "test-module-type");
22 assertTrue(moduleDescriptorPredicate.matches(new ModuleDescriptorStubB()));
23 }
24
25 public void testDoesNotMatchModuleWithModuleDescriptorNotMatchingType()
26 {
27 final Mock mockModuleDescriptorFactory = new Mock(ModuleDescriptorFactory.class);
28 mockModuleDescriptorFactory.matchAndReturn("getModuleDescriptorClass", C.ANY_ARGS, ModuleDescriptorStubB.class);
29
30 final ModuleDescriptorPredicate<Object> moduleDescriptorPredicate = new ModuleDescriptorOfTypePredicate<Object>(
31 (ModuleDescriptorFactory) mockModuleDescriptorFactory.proxy(), "test-module-type");
32 assertFalse(moduleDescriptorPredicate.matches(new AbstractModuleDescriptor<Object>(ModuleFactory.LEGACY_MODULE_FACTORY)
33 {
34 @Override
35 public Object getModule()
36 {
37 throw new UnsupportedOperationException();
38 }
39 }));
40 }
41
42 private static class ModuleDescriptorStubA extends AbstractModuleDescriptor<Object>
43 {
44 public ModuleDescriptorStubA()
45 {
46 super(ModuleFactory.LEGACY_MODULE_FACTORY);
47 }
48
49 @Override
50 public Object getModule()
51 {
52 return null;
53 }
54 }
55
56 private static class ModuleDescriptorStubB extends ModuleDescriptorStubA
57 {}
58 }