View Javadoc
1   package com.atlassian.plugin;
2   
3   import org.junit.Before;
4   import org.junit.Test;
5   
6   import static org.hamcrest.CoreMatchers.is;
7   import static org.junit.Assert.assertThat;
8   import static org.mockito.Mockito.doCallRealMethod;
9   import static org.mockito.Mockito.mock;
10  import static org.mockito.Mockito.when;
11  
12  public class TestModuleDescriptor {
13  
14      private static final String MODULE_KEY = "theKey";
15      private static final String MODULE_NAME = "theName";
16  
17      private ModuleDescriptor moduleDescriptor;
18  
19      @Before
20      public void setUp() throws Exception {
21          moduleDescriptor = mock(ForwardDefaultMethodsModuleDescriptor.class);
22          doCallRealMethod().when(moduleDescriptor).getDisplayName();
23          doCallRealMethod().when(moduleDescriptor).setBroken();
24          doCallRealMethod().when(moduleDescriptor).isBroken();
25      }
26  
27      @Test
28      public void notBrokenByDefault() {
29          assertThat(moduleDescriptor.isBroken(), is(false));
30      }
31  
32      @Test
33      public void setBrokenIsNoop() {
34          moduleDescriptor.setBroken();
35          assertThat(moduleDescriptor.isBroken(), is(false));
36      }
37  
38      @Test
39      public void getDisplayName_whenNameIsSet_shouldReturnThatName() {
40          // Set up
41          when(moduleDescriptor.getName()).thenReturn(MODULE_NAME);
42  
43          // Invoke
44          final String displayName = moduleDescriptor.getDisplayName();
45  
46          // Check
47          assertThat(displayName, is(MODULE_NAME));
48      }
49  
50      @Test
51      public void getDisplayName_whenNameIsNotSet_shouldReturnTheKey() {
52          // Set up
53          when(moduleDescriptor.getName()).thenReturn(null);
54          when(moduleDescriptor.getKey()).thenReturn(MODULE_KEY);
55  
56          // Invoke
57          final String displayName = moduleDescriptor.getDisplayName();
58  
59          // Check
60          assertThat(displayName, is(MODULE_KEY));
61      }
62  
63      static abstract class ForwardDefaultMethodsModuleDescriptor implements ModuleDescriptor {
64          @Override
65          public void setBroken() {
66              ModuleDescriptor.super.setBroken();
67          }
68  
69          @Override
70          public boolean isBroken() {
71              return ModuleDescriptor.super.isBroken();
72          }
73      }
74  }