View Javadoc
1   package com.atlassian.activeobjects.internal;
2   
3   import com.atlassian.sal.api.pluginsettings.PluginSettings;
4   import com.atlassian.sal.api.pluginsettings.PluginSettingsFactory;
5   import org.junit.After;
6   import org.junit.Before;
7   import org.junit.Test;
8   import org.junit.runner.RunWith;
9   import org.mockito.Mock;
10  import org.mockito.junit.MockitoJUnitRunner;
11  
12  import static org.junit.Assert.assertEquals;
13  import static org.mockito.ArgumentMatchers.anyString;
14  import static org.mockito.Mockito.mock;
15  import static org.mockito.Mockito.when;
16  
17  /**
18   * Testing {@link DataSourceTypeResolverImpl}
19   */
20  @RunWith(MockitoJUnitRunner.class)
21  public class DataSourceTypeResolverImplTest {
22      private static final Prefix PLUGIN_KEY = new SimplePrefix("bla");
23  
24      private DataSourceTypeResolver dataSourceTypeResolver;
25  
26      @Mock
27      private PluginSettings pluginSettings;
28  
29      @Before
30      public void setUp() {
31          dataSourceTypeResolver = new DataSourceTypeResolverImpl(getMockPluginSettingsFactory(), new ActiveObjectsSettingKeys(), DataSourceType.APPLICATION);
32      }
33  
34      @After
35      public void tearDown() {
36          dataSourceTypeResolver = null;
37      }
38  
39      @Test
40      public void testGetDataSourceTypeWithNoSettingReturnsDefaultValue() {
41          when(pluginSettings.get(anyString())).thenReturn(null); // no setting at all
42          assertEquals(DataSourceType.APPLICATION, dataSourceTypeResolver.getDataSourceType(PLUGIN_KEY));
43      }
44  
45      @Test
46      public void testGetDataSourceTypeWithNonDefaultSettingReturnsSetValue() {
47          when(pluginSettings.get(anyString())).thenReturn(DataSourceType.HSQLDB.name());
48          assertEquals(DataSourceType.HSQLDB, dataSourceTypeResolver.getDataSourceType(PLUGIN_KEY));
49      }
50  
51      @Test
52      public void testGetDataSourceTypeWithIncorrectSettingReturnsDefaultValue() {
53          when(pluginSettings.get(anyString())).thenReturn("something-that-is-not-a-datasource-type");
54          assertEquals(DataSourceType.APPLICATION, dataSourceTypeResolver.getDataSourceType(PLUGIN_KEY));
55      }
56  
57      private PluginSettingsFactory getMockPluginSettingsFactory() {
58          final PluginSettingsFactory pluginSettingFactory = mock(PluginSettingsFactory.class);
59          when(pluginSettingFactory.createGlobalSettings()).thenReturn(pluginSettings);
60          return pluginSettingFactory;
61      }
62  }