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 360b66a4af4 Add test case for OptimizerContext.alterTable() (#18886)
360b66a4af4 is described below
commit 360b66a4af49453beaaf22813d8b022258779036
Author: quicksand <[email protected]>
AuthorDate: Wed Jul 6 23:14:23 2022 +0800
Add test case for OptimizerContext.alterTable() (#18886)
---
.../optimizer/context/OptimizerContextTest.java | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/test/java/org/apache/shardingsphere/infra/federation/optimizer/context/OptimizerContextTest.java
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/test/java/org/apache/shardingsphere/infra/federation/optimizer/context/OptimizerContextTest.java
index 5322ec1d2be..ce863a6a43c 100644
---
a/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/test/java/org/apache/shardingsphere/infra/federation/optimizer/context/OptimizerContextTest.java
+++
b/shardingsphere-infra/shardingsphere-infra-federation/shardingsphere-infra-federation-optimizer/src/test/java/org/apache/shardingsphere/infra/federation/optimizer/context/OptimizerContextTest.java
@@ -23,6 +23,7 @@ import
org.apache.shardingsphere.infra.federation.optimizer.metadata.FederationS
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.ShardingSphereColumn;
import
org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereSchema;
import
org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereTable;
import org.junit.Test;
@@ -53,4 +54,23 @@ public final class OptimizerContextTest {
assertTrue(schemaMetadata.isPresent());
assertFalse(schemaMetadata.get().getTables().containsKey(tableName));
}
+
+ @Test
+ public void alterTable() {
+ String databaseName = "foo_db";
+ String schemaName = "foo_schema";
+ String tableName = "foo_table";
+ String beforeColumnName = "foo_col";
+ String afterColumnName = "foo_col_new";
+ ShardingSphereDatabase database = new
ShardingSphereDatabase(databaseName, new H2DatabaseType(),
mock(ShardingSphereResource.class),
+ null, Collections.singletonMap(schemaName, new
ShardingSphereSchema(Collections.singletonMap(tableName, new
ShardingSphereTable(tableName,
+ Collections.singletonList(new
ShardingSphereColumn(beforeColumnName, 0, false, false, true)),
Collections.emptyList(), Collections.emptyList())))));
+ OptimizerContext optimizerContext =
OptimizerContextFactory.create(Collections.singletonMap(databaseName,
database), mock(ShardingSphereRuleMetaData.class));
+ optimizerContext.alterTable(databaseName, schemaName, new
ShardingSphereTable(tableName,
+ Collections.singletonList(new
ShardingSphereColumn(afterColumnName, 0, false, false, true)),
Collections.emptyList(), Collections.emptyList()));
+ Optional<FederationSchemaMetaData> schemaMetadata =
optimizerContext.getFederationMetaData().getDatabases().get(databaseName).getSchemaMetadata(schemaName);
+ assertTrue(schemaMetadata.isPresent());
+
assertFalse(schemaMetadata.get().getTables().get(tableName).getColumnNames().contains(beforeColumnName));
+
assertTrue(schemaMetadata.get().getTables().get(tableName).getColumnNames().contains(afterColumnName));
+ }
}