This is an automated email from the ASF dual-hosted git repository.

zhangliang 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 164718c68b8 Add test cases for ContextManager (#32907)
164718c68b8 is described below

commit 164718c68b8adfd6c9dab49b6d4e66248df5c940
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Sep 17 00:29:47 2024 +0800

    Add test cases for ContextManager (#32907)
---
 .../mode/manager/ContextManagerTest.java           | 33 ++++++++++++++++------
 1 file changed, 24 insertions(+), 9 deletions(-)

diff --git 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
index cc137afb480..8a3fd8d987c 100644
--- 
a/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
+++ 
b/mode/core/src/test/java/org/apache/shardingsphere/mode/manager/ContextManagerTest.java
@@ -17,21 +17,19 @@
 
 package org.apache.shardingsphere.mode.manager;
 
-import org.apache.groovy.util.Maps;
 import org.apache.shardingsphere.infra.config.mode.ModeConfiguration;
 import org.apache.shardingsphere.infra.config.props.ConfigurationProperties;
 import org.apache.shardingsphere.infra.database.core.DefaultDatabase;
 import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import org.apache.shardingsphere.infra.datanode.DataNode;
-import 
org.apache.shardingsphere.infra.datasource.pool.props.domain.DataSourcePoolProperties;
 import 
org.apache.shardingsphere.infra.exception.dialect.exception.syntax.database.NoDatabaseSelectedException;
 import 
org.apache.shardingsphere.infra.exception.dialect.exception.syntax.database.UnknownDatabaseException;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstance;
 import org.apache.shardingsphere.infra.instance.ComputeNodeInstanceContext;
+import 
org.apache.shardingsphere.infra.instance.metadata.jdbc.JDBCInstanceMetaData;
 import 
org.apache.shardingsphere.infra.instance.metadata.proxy.ProxyInstanceMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.ResourceMetaData;
-import 
org.apache.shardingsphere.infra.metadata.database.resource.node.StorageNode;
 import 
org.apache.shardingsphere.infra.metadata.database.resource.unit.StorageUnit;
 import org.apache.shardingsphere.infra.metadata.database.rule.RuleMetaData;
 import 
org.apache.shardingsphere.infra.metadata.database.schema.model.ShardingSphereSchema;
@@ -54,13 +52,13 @@ import org.mockito.quality.Strictness;
 
 import java.util.Collections;
 import java.util.HashMap;
-import java.util.Map;
 import java.util.Optional;
 import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.is;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
@@ -75,6 +73,9 @@ class ContextManagerTest {
     @Mock(answer = Answers.RETURNS_DEEP_STUBS)
     private MetaDataContexts metaDataContexts;
     
+    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
+    private ComputeNodeInstanceContext computeNodeInstanceContext;
+    
     private ContextManager contextManager;
     
     @BeforeEach
@@ -84,7 +85,6 @@ class ContextManagerTest {
         
when(metaDataContexts.getMetaData().containsDatabase("foo_db")).thenReturn(true);
         
when(metaDataContexts.getMetaData().getDatabase("foo_db")).thenReturn(database);
         
when(metaDataContexts.getMetaData().getDatabases().values()).thenReturn(Collections.singleton(database));
-        ComputeNodeInstanceContext computeNodeInstanceContext = 
mock(ComputeNodeInstanceContext.class);
         when(computeNodeInstanceContext.getInstance()).thenReturn(new 
ComputeNodeInstance(new ProxyInstanceMetaData("foo_id", 3307), 
Collections.emptyList()));
         
when(computeNodeInstanceContext.getModeConfiguration()).thenReturn(mock(ModeConfiguration.class));
         contextManager = new ContextManager(metaDataContexts, 
computeNodeInstanceContext, mock(PersistRepository.class));
@@ -104,10 +104,6 @@ class ContextManagerTest {
         StorageUnit storageUnit = mock(StorageUnit.class, RETURNS_DEEP_STUBS);
         
when(storageUnit.getStorageType()).thenReturn(TypedSPILoader.getService(DatabaseType.class,
 "FIXTURE"));
         
when(result.getResourceMetaData().getStorageUnits()).thenReturn(Collections.singletonMap("foo_ds",
 storageUnit));
-        DataSourcePoolProperties dataSourcePoolProps = 
mock(DataSourcePoolProperties.class, RETURNS_DEEP_STUBS);
-        
when(dataSourcePoolProps.getConnectionPropertySynonyms().getStandardProperties()).thenReturn(Maps.of("url",
 "jdbc:mock://127.0.0.1/foo_db", "username", "test"));
-        Map<String, StorageUnit> storageUnits = 
Collections.singletonMap("foo_ds", new StorageUnit(mock(StorageNode.class), 
dataSourcePoolProps, new MockedDataSource()));
-        
when(result.getResourceMetaData().getStorageUnits()).thenReturn(storageUnits);
         return result;
     }
     
@@ -157,6 +153,25 @@ class ContextManagerTest {
         
assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageUnits().containsKey("foo_ds"));
     }
     
+    @Test
+    void assertReloadTableWithDataSourceName() {
+        ShardingSphereDatabase database = mockDatabase();
+        contextManager.reloadTable(database, "foo_schema", "foo_ds", 
"foo_table");
+        
assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabase("foo_db").getResourceMetaData().getStorageUnits().containsKey("foo_ds"));
+    }
+    
+    @Test
+    void assertGetPreSelectedDatabaseNameWithJDBC() {
+        when(computeNodeInstanceContext.getInstance()).thenReturn(new 
ComputeNodeInstance(new JDBCInstanceMetaData("foo_id"), 
Collections.emptyList()));
+        
when(metaDataContexts.getMetaData().getDatabases()).thenReturn(Collections.singletonMap("foo_db",
 mock(ShardingSphereDatabase.class)));
+        assertThat(contextManager.getPreSelectedDatabaseName(), is("foo_db"));
+    }
+    
+    @Test
+    void assertGetPreSelectedDatabaseNameWithProxy() {
+        assertNull(contextManager.getPreSelectedDatabaseName());
+    }
+    
     @Test
     void assertClose() {
         contextManager.close();

Reply via email to