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));
+    }
 }

Reply via email to