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