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