@Test public void throwsErrorWhenMultipleDbConfigAvailable() throws Exception { DbConfig dbConfig1 = mock(DbConfig.class); when(dbConfig1.getName()).thenReturn("dbConfig1"); DbConfig dbConfig2 = mock(DbConfig.class); when(dbConfig2.getName()).thenReturn("dbConfig2"); DbConfigResolver dbConfigResolver1 = mock(DbConfigResolver.class); when(dbConfigResolver1.resolve(null)).thenReturn(dbConfig1); DbConfigResolver dbConfigResolver2 = mock(DbConfigResolver.class); when(dbConfigResolver2.resolve(null)).thenReturn(dbConfig2); MuleRegistry registry = mock(MuleRegistry.class); Collection<DbConfigResolver> foundDbConfigResolvers = new ArrayList<>(); foundDbConfigResolvers.add(dbConfigResolver1); foundDbConfigResolvers.add(dbConfigResolver2); when(registry.lookupObjects(DbConfigResolver.class)).thenReturn(foundDbConfigResolvers); DefaultDbConfigResolver dbConfigResolver = new DefaultDbConfigResolver(registry); try { dbConfigResolver.resolve(muleEvent); fail("Was supposed to fail when there are multiple dbConfigs available"); } catch (UnresolvableDbConfigException e) { assertThat(e.getMessage(), containsString("dbConfig1")); assertThat(e.getMessage(), containsString("dbConfig2")); } }
@Test(expected = UnresolvableDbConfigException.class) public void throwsErrorWhenNoDbConfigAvailable() throws Exception { MuleRegistry registry = mock(MuleRegistry.class); Collection<DbConfig> foundDbConfigs = new ArrayList<DbConfig>(); when(registry.lookupObjects(DbConfig.class)).thenReturn(foundDbConfigs); DefaultDbConfigResolver dbConfigResolver = new DefaultDbConfigResolver(registry); dbConfigResolver.resolve(muleEvent); }
@Test public void resolvesDefaultDbConfig() throws Exception { DbConfigResolver dbConfigResolver = mock(DbConfigResolver.class); DbConfig dbConfig = mock(DbConfig.class); when(dbConfigResolver.resolve(muleEvent)).thenReturn(dbConfig); MuleRegistry registry = createMockRegistry(dbConfigResolver); DefaultDbConfigResolver defaultDbConfigResolver = new DefaultDbConfigResolver(registry); DbConfig resolvedDbConfig = defaultDbConfigResolver.resolve(muleEvent); assertThat(dbConfig, sameInstance(resolvedDbConfig)); }
@Test public void testsConnection() throws Exception { DbConfig dbConfig = mock(DbConfig.class); TestResult expectedTestResult = mock(TestResult.class); when(dbConfig.test()).thenReturn(expectedTestResult); DbConfigResolver dbConfigResolver = mock(DbConfigResolver.class); when(dbConfigResolver.resolve(null)).thenReturn(dbConfig); MuleRegistry registry = createMockRegistry(dbConfigResolver); DefaultDbConfigResolver defaultDbConfigResolver = new DefaultDbConfigResolver(registry); final TestResult testResult = defaultDbConfigResolver.test(); assertThat(testResult, is(expectedTestResult)); }
@Test public void returnsMetaDataKeys() throws Exception { DbConfig dbConfig = mock(DbConfig.class); final Result<List<MetaDataKey>> expectedMetaDataResult = mock(Result.class); when(dbConfig.getMetaDataKeys()).thenReturn(expectedMetaDataResult); DbConfigResolver dbConfigResolver = mock(DbConfigResolver.class); when(dbConfigResolver.resolve(null)).thenReturn(dbConfig); MuleRegistry registry = createMockRegistry(dbConfigResolver); DefaultDbConfigResolver defaultDbConfigResolver = new DefaultDbConfigResolver(registry); final Result<List<MetaDataKey>> metaDataResult = defaultDbConfigResolver.getMetaDataKeys(); assertThat(metaDataResult, is(expectedMetaDataResult)); }