You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2021/10/11 07:15:38 UTC
[shardingsphere] branch master updated: Add test to
ContextManager.getDataSourceMap() (#12971)
This is an automated email from the ASF dual-hosted git repository.
panjuan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git
The following commit(s) were added to refs/heads/master by this push:
new 809a0cc Add test to ContextManager.getDataSourceMap() (#12971)
809a0cc is described below
commit 809a0cc5b1c3f8192751cd17020ef01ddf6eb3c4
Author: Gabriel Cunha <cu...@gmail.com>
AuthorDate: Mon Oct 11 03:14:57 2021 -0400
Add test to ContextManager.getDataSourceMap() (#12971)
* Add test to ContextManager.getDataSourceMap()
* Import static
* Removing code
---
.../mode/manager/ContextManagerTest.java | 57 +++++++++++++++++++---
1 file changed, 49 insertions(+), 8 deletions(-)
diff --git a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index 843bea0..ebd7b36 100644
--- a/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++ b/shardingsphere-mode/shardingsphere-mode-core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -18,6 +18,14 @@
package org.apache.shardingsphere.mode.manager;
import lombok.SneakyThrows;
+import org.apache.shardingsphere.infra.database.DefaultSchema;
+import org.apache.shardingsphere.infra.database.type.DatabaseType;
+import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
+import org.apache.shardingsphere.infra.metadata.resource.CachedDatabaseMetaData;
+import org.apache.shardingsphere.infra.metadata.resource.DataSourcesMetaData;
+import org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
+import org.apache.shardingsphere.infra.metadata.rule.ShardingSphereRuleMetaData;
+import org.apache.shardingsphere.infra.metadata.schema.ShardingSphereSchema;
import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
import org.apache.shardingsphere.transaction.context.TransactionContexts;
import org.junit.Before;
@@ -26,46 +34,79 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
+import javax.sql.DataSource;
+import java.sql.SQLException;
+import java.util.HashMap;
+import java.util.Map;
+
+import static org.hamcrest.CoreMatchers.equalTo;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;
+import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public final class ContextManagerTest {
-
+
+ private static Map<String, DataSource> dataSourceMap;
+
@Mock
private MetaDataContexts metaDataContexts;
-
+
@Mock
private TransactionContexts transactionContexts;
-
+
private ContextManager contextManager;
-
+
@Before
- public void setUp() {
+ public void setUp() throws SQLException {
contextManager = new ContextManager();
contextManager.init(metaDataContexts, transactionContexts);
+ dataSourceMap = new HashMap<>(2, 1);
+ DataSource primaryDataSource = mock(DataSource.class);
+ DataSource replicaDataSource = mock(DataSource.class);
+ dataSourceMap.put("test_primary_ds", primaryDataSource);
+ dataSourceMap.put("test_replica_ds", replicaDataSource);
}
-
+
@SneakyThrows
@Test
public void assertClose() {
contextManager.close();
verify(metaDataContexts).close();
}
-
+
@Test
public void assertRenewMetaDataContexts() {
MetaDataContexts metaDataContexts = mock(MetaDataContexts.class);
contextManager.renewMetaDataContexts(metaDataContexts);
assertThat(contextManager.getMetaDataContexts(), is(metaDataContexts));
}
-
+
@Test
public void assertRenewTransactionContexts() {
TransactionContexts transactionContexts = mock(TransactionContexts.class);
contextManager.renewTransactionContexts(transactionContexts);
assertThat(contextManager.getTransactionContexts(), is(transactionContexts));
}
+
+ @Test
+ public void assertGetDataSourceMap() {
+ DataSourcesMetaData dataSourceMetadata = mock(DataSourcesMetaData.class);
+ CachedDatabaseMetaData cachedMetadata = mock(CachedDatabaseMetaData.class);
+ DatabaseType databaseType = mock(DatabaseType.class);
+ ShardingSphereRuleMetaData sphereRuleMetadata = mock(ShardingSphereRuleMetaData.class);
+ ShardingSphereResource shardingSphereResource = new ShardingSphereResource(
+ dataSourceMap,
+ dataSourceMetadata,
+ cachedMetadata,
+ databaseType
+ );
+ ShardingSphereMetaData metadata = new ShardingSphereMetaData("logic_schema", shardingSphereResource, sphereRuleMetadata, new ShardingSphereSchema());
+ when(metaDataContexts.getMetaData(anyString())).thenReturn(metadata);
+ Map<String, DataSource> dataSourceMap = contextManager.getDataSourceMap(DefaultSchema.LOGIC_NAME);
+ assertThat(2, equalTo(dataSourceMap.size()));
+ }
}