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
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);
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 }