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
41 when(moduleDescriptor.getName()).thenReturn(MODULE_NAME);
42
43
44 final String displayName = moduleDescriptor.getDisplayName();
45
46
47 assertThat(displayName, is(MODULE_NAME));
48 }
49
50 @Test
51 public void getDisplayName_whenNameIsNotSet_shouldReturnTheKey() {
52
53 when(moduleDescriptor.getName()).thenReturn(null);
54 when(moduleDescriptor.getKey()).thenReturn(MODULE_KEY);
55
56
57 final String displayName = moduleDescriptor.getDisplayName();
58
59
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 }