You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by zh...@apache.org on 2022/07/10 16:07:03 UTC

[shardingsphere] branch master updated: Add test case for ContextManager.alterSchema (#18976)

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 dad90856a67 Add test case for ContextManager.alterSchema (#18976)
dad90856a67 is described below

commit dad90856a678506da104cb5b8382f05c30122a4b
Author: 原子 <81...@qq.com>
AuthorDate: Mon Jul 11 00:06:58 2022 +0800

    Add test case for ContextManager.alterSchema (#18976)
    
    Add test case for ContextManager.alterSchema
---
 .../mode/manager/ContextManagerTest.java           | 39 ++++++++++++++++++++++
 1 file changed, 39 insertions(+)

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 def2ea9a02c..d276f7924b5 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
@@ -29,6 +29,7 @@ import org.apache.shardingsphere.infra.metadata.database.ShardingSphereDatabase;
 import org.apache.shardingsphere.infra.metadata.database.resource.ShardingSphereResource;
 import org.apache.shardingsphere.infra.metadata.database.rule.ShardingSphereRuleMetaData;
 import org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereSchema;
+import org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereTable;
 import org.apache.shardingsphere.mode.metadata.MetaDataContexts;
 import org.apache.shardingsphere.mode.metadata.persist.MetaDataPersistService;
 import org.apache.shardingsphere.mode.metadata.persist.service.DatabaseMetaDataPersistService;
@@ -125,6 +126,25 @@ public final class ContextManagerTest {
         verify(metaDataContexts.getOptimizerContext(), times(0)).dropDatabase("foo_db");
     }
     
+    @Test
+    public void assertAlterSchema() {
+        when(metaDataContexts.getMetaData().getDatabases().containsKey("foo_db")).thenReturn(true);
+        ShardingSphereTable fooTable = mock(ShardingSphereTable.class);
+        when(fooTable.getName()).thenReturn("FOO_TABLE");
+        contextManager.alterSchema("foo_db", "foo_schema", fooTable, null);
+        assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabases().containsKey("foo_db"));
+        assertAlterTable();
+        assertAlterDropTable();
+    }
+    
+    public void assertAlterDropTable() {
+        contextManager.alterSchema("foo_db", "foo_schema", null, "foo_table");
+    }
+    
+    public void assertAlterTable() {
+        assertTrue(contextManager.getMetaDataContexts().getMetaData().getDatabases().get("foo_db").getSchemas().get("foo_schema").getTables().containsKey("foo_table"));
+    }
+    
     @Test
     public void assertAddSchema() {
         contextManager.addSchema("foo_db", "bar_schema");
@@ -138,6 +158,25 @@ public final class ContextManagerTest {
         verify(metaDataContexts.getOptimizerContext(), times(0)).addSchema("foo_db", "foo_schema");
     }
     
+    private Map<String, DataSourceProperties> createToBeAddedDataSourceProperties() {
+        Map<String, DataSourceProperties> result = new LinkedHashMap<>(2, 1);
+        result.put("foo_ds_1", new DataSourceProperties(MockedDataSource.class.getName(), createProperties("root", "root")));
+        result.put("foo_ds_2", new DataSourceProperties(MockedDataSource.class.getName(), createProperties("root", "root")));
+        return result;
+    }
+    
+    private void assertAddedDataSources(final Map<String, DataSource> actual) {
+        assertThat(actual.size(), is(2));
+        assertAddedDataSource((MockedDataSource) actual.get("foo_ds_1"));
+        assertAddedDataSource((MockedDataSource) actual.get("foo_ds_2"));
+    }
+    
+    private void assertAddedDataSource(final MockedDataSource actual) {
+        assertThat(actual.getUrl(), is("jdbc:mock://127.0.0.1/foo_ds"));
+        assertThat(actual.getUsername(), is("root"));
+        assertThat(actual.getPassword(), is("root"));
+    }
+    
     @Test
     public void assertUpdateResources() throws SQLException {
         Map<String, ShardingSphereDatabase> originalDatabases = new HashMap<>(Collections.singletonMap("foo_db", createOriginalDatabaseMetaData()));