View Javadoc

1   package com.atlassian.plugin.manager.store;
2   
3   import com.atlassian.plugin.Plugin;
4   import com.atlassian.plugin.manager.PluginPersistentState;
5   import com.atlassian.plugin.manager.PluginPersistentStateStore;
6   
7   import org.junit.Rule;
8   import org.junit.Test;
9   import org.junit.rules.ExpectedException;
10  
11  import static org.hamcrest.MatcherAssert.assertThat;
12  import static org.hamcrest.Matchers.is;
13  import static org.mockito.Mockito.mock;
14  import static org.mockito.Mockito.when;
15  
16  public class TestLoadOnlyPluginPersistentStateStore
17  {
18      @Rule
19      public ExpectedException expectedException = ExpectedException.none();
20  
21      @Test
22      public void defaultConstructedReadOnlyStoreHasEmptyState()
23      {
24          final PluginPersistentStateStore store = new LoadOnlyPluginPersistentStateStore();
25          final PluginPersistentState state = store.load();
26          assertThat(state.getMap().isEmpty(), is(true));
27      }
28  
29      @Test
30      public void defaultConstructedReadOnlyStoreStateIsDefaulted()
31      {
32          final Plugin enabledByDefaultPlugin = mock(Plugin.class);
33          when(enabledByDefaultPlugin.isEnabledByDefault()).thenReturn(true);
34          final Plugin disabledByDefaultPlugin = mock(Plugin.class);
35          when(disabledByDefaultPlugin.isEnabledByDefault()).thenReturn(false);
36  
37          final PluginPersistentStateStore store = new LoadOnlyPluginPersistentStateStore();
38          final PluginPersistentState state = store.load();
39          assertThat(state.isEnabled(enabledByDefaultPlugin), is(true));
40          assertThat(state.isEnabled(disabledByDefaultPlugin), is(false));
41      }
42  
43      @Test
44      public void saveAlwaysThrows()
45      {
46          final PluginPersistentStateStore store = new LoadOnlyPluginPersistentStateStore();
47          final PluginPersistentState state = mock(PluginPersistentState.class);
48  
49          expectedException.expect(IllegalStateException.class);
50          store.save(state);
51      }
52  
53      @Test
54      public void readOnlyStoreGivenStateReturnsThatState()
55      {
56          final PluginPersistentState state = mock(PluginPersistentState.class);
57          final PluginPersistentStateStore store = new LoadOnlyPluginPersistentStateStore(state);
58          assertThat(store.load(), is(state));
59      }
60  }