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 309afd9858e add tests (#18989)
309afd9858e is described below
commit 309afd9858e7335217bcda826a2d1da76ec65480
Author: Da Xiang Huang <[email protected]>
AuthorDate: Sun Jul 10 16:14:17 2022 +0800
add tests (#18989)
---
.../optimizer/context/OptimizerContextTest.java | 46 +++++++++++++++++-----
1 file changed, 37 insertions(+), 9 deletions(-)
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 247714074aa..0496cfaac5d 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
@@ -17,6 +17,13 @@
package org.apache.shardingsphere.infra.federation.optimizer.context;
+import static org.hamcrest.CoreMatchers.not;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.mock;
+import java.util.Collections;
+import java.util.Optional;
import org.apache.shardingsphere.infra.database.type.dialect.H2DatabaseType;
import
org.apache.shardingsphere.infra.federation.optimizer.context.planner.OptimizerPlannerContext;
import
org.apache.shardingsphere.infra.federation.optimizer.metadata.FederationSchemaMetaData;
@@ -28,15 +35,6 @@ import
org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.
import
org.apache.shardingsphere.infra.metadata.database.schema.decorator.model.ShardingSphereTable;
import org.junit.Test;
-import java.util.Collections;
-import java.util.Optional;
-
-import static org.hamcrest.CoreMatchers.not;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertThat;
-import static org.junit.Assert.assertTrue;
-import static org.mockito.Mockito.mock;
-
public final class OptimizerContextTest {
@Test
@@ -84,4 +82,34 @@ public final class OptimizerContextTest {
assertTrue(schemaMetadata.isPresent());
assertFalse(schemaMetadata.get().getTables().containsKey(tableName));
}
+
+ @Test
+ public void assertAlterDatabase() {
+ String databaseName = "foo_db";
+ String schemaName = "foo_schema";
+ String tableName = "foo_tbl";
+ String addTable = "bar_tbl";
+ ShardingSphereDatabase database = new
ShardingSphereDatabase(databaseName, new H2DatabaseType(),
mock(ShardingSphereResource.class),
+ null, Collections.singletonMap(schemaName, new
ShardingSphereSchema(Collections.singletonMap(tableName,
mock(ShardingSphereTable.class)))));
+ OptimizerContext optimizerContext =
OptimizerContextFactory.create(Collections.singletonMap(databaseName,
database), mock(ShardingSphereRuleMetaData.class));
+ database.getSchemas().get(schemaName).getTables().put(addTable,
mock(ShardingSphereTable.class));
+ optimizerContext.alterDatabase(database,
mock(ShardingSphereRuleMetaData.class));
+ Optional<FederationSchemaMetaData> federationSchemaMetaData =
optimizerContext.getFederationMetaData().getDatabases().get(databaseName).getSchemaMetadata(schemaName);
+ assertTrue(federationSchemaMetaData.isPresent());
+
assertTrue(federationSchemaMetaData.get().getTables().containsKey(addTable));
+ }
+
+ @Test
+ public void assertAddDatabase() {
+ String databaseName = "foo_db";
+ String schemaName = "foo_schema";
+ String addDatabase = "bar_db";
+ ShardingSphereDatabase database = new
ShardingSphereDatabase(databaseName, new H2DatabaseType(),
mock(ShardingSphereResource.class),
+ null, Collections.singletonMap(schemaName, new
ShardingSphereSchema(Collections.emptyMap())));
+ OptimizerContext optimizerContext =
OptimizerContextFactory.create(Collections.singletonMap(databaseName,
database), mock(ShardingSphereRuleMetaData.class));
+ optimizerContext.addDatabase(addDatabase, new H2DatabaseType());
+
assertTrue(addDatabase.equals(optimizerContext.getFederationMetaData().getDatabases().get(addDatabase).getName()));
+
assertTrue(optimizerContext.getParserContexts().containsKey(addDatabase));
+
assertTrue(optimizerContext.getPlannerContexts().containsKey(addDatabase));
+ }
}