View Javadoc
1   package com.atlassian.plugin.predicate;
2   
3   import com.atlassian.plugin.ModuleDescriptor;
4   import com.mockobjects.dynamic.Mock;
5   import org.junit.Before;
6   import org.junit.Test;
7   
8   import java.util.function.Predicate;
9   
10  import static org.junit.Assert.assertFalse;
11  import static org.junit.Assert.assertTrue;
12  
13  /**
14   * Testing {@link ModuleOfClassPredicate}
15   */
16  public class TestModuleOfClassPredicate {
17      private Predicate<ModuleDescriptor<StubModule>> moduleDescriptorPredicate;
18  
19      private Mock mockModuleDescriptor;
20      private ModuleDescriptor<StubModule> moduleDescriptor;
21  
22      @Before
23      public void setUp() throws Exception {
24          moduleDescriptorPredicate = new ModuleOfClassPredicate<>(StubModule.class);
25  
26          mockModuleDescriptor = new Mock(ModuleDescriptor.class);
27          moduleDescriptor = (ModuleDescriptor<StubModule>) mockModuleDescriptor.proxy();
28      }
29  
30      @Test(expected = IllegalArgumentException.class)
31      public void testCannotCreateWithNullClass() {
32          new ModuleOfClassPredicate<>(null);
33      }
34  
35      @Test
36      public void testMatchesModuleExtendingClass() {
37          mockModuleDescriptor.matchAndReturn("getModuleClass", StubSubclassModule.class);
38          assertTrue(moduleDescriptorPredicate.test(moduleDescriptor));
39      }
40  
41      @Test
42      public void testDoesNotMatchModuleNotExtendingClass() {
43          mockModuleDescriptor.matchAndReturn("getModuleClass", Object.class);
44          assertFalse(moduleDescriptorPredicate.test(moduleDescriptor));
45      }
46  
47      private static class StubModule {
48      }
49  
50      private static class StubSubclassModule extends StubModule {
51      }
52  }