This is an automated email from the ASF dual-hosted git repository.

zhangyonglun 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 2bd321a  Refactor FrontDatabaseProtocolTypeFactoryTest (#8626)
2bd321a is described below

commit 2bd321ad247fd9ef8b6f5b548faf5886dea1554e
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Dec 15 16:03:14 2020 +0800

    Refactor FrontDatabaseProtocolTypeFactoryTest (#8626)
---
 .../FrontDatabaseProtocolTypeFactoryTest.java      | 69 +++++++++++-----------
 1 file changed, 33 insertions(+), 36 deletions(-)

diff --git 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
index a2f1b7d..8404be1 100644
--- 
a/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
+++ 
b/shardingsphere-proxy/shardingsphere-proxy-frontend/shardingsphere-proxy-frontend-core/src/test/java/org/apache/shardingsphere/proxy/frontend/protocol/FrontDatabaseProtocolTypeFactoryTest.java
@@ -23,11 +23,11 @@ import 
org.apache.shardingsphere.infra.config.exception.ShardingSphereConfigurat
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationProperties;
 import 
org.apache.shardingsphere.infra.config.properties.ConfigurationPropertyKey;
 import 
org.apache.shardingsphere.infra.context.metadata.impl.StandardMetaDataContexts;
+import org.apache.shardingsphere.infra.database.DefaultSchema;
 import org.apache.shardingsphere.infra.database.type.DatabaseType;
 import org.apache.shardingsphere.infra.database.type.dialect.MySQLDatabaseType;
 import org.apache.shardingsphere.infra.executor.kernel.ExecutorEngine;
 import org.apache.shardingsphere.infra.metadata.ShardingSphereMetaData;
-import 
org.apache.shardingsphere.infra.metadata.resource.ShardingSphereResource;
 import org.apache.shardingsphere.proxy.backend.context.ProxyContext;
 import org.junit.Test;
 
@@ -38,6 +38,7 @@ import java.util.Properties;
 
 import static org.hamcrest.CoreMatchers.instanceOf;
 import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.RETURNS_DEEP_STUBS;
@@ -45,60 +46,56 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 public final class FrontDatabaseProtocolTypeFactoryTest {
-
+    
     @Test(expected = ShardingSphereConfigurationException.class)
-    public void 
assertGetDatabaseTypeFromMetaDataContextsThrowShardingSphereConfigurationException()
 {
-        StandardMetaDataContexts standardMetaDataContexts = new 
StandardMetaDataContexts(Collections.emptyMap(), mock(ExecutorEngine.class), 
mock(Authentication.class),
-                new ConfigurationProperties(new Properties()));
-        setMetaDataContexts(standardMetaDataContexts);
-        assertTrue(standardMetaDataContexts.getMetaDataMap().isEmpty());
+    public void 
assertGetDatabaseTypeWhenThrowShardingSphereConfigurationException() {
+        StandardMetaDataContexts metaDataContexts = new 
StandardMetaDataContexts(
+                Collections.emptyMap(), mock(ExecutorEngine.class), 
mock(Authentication.class), new ConfigurationProperties(new Properties()));
+        setMetaDataContexts(metaDataContexts);
+        assertTrue(metaDataContexts.getMetaDataMap().isEmpty());
         FrontDatabaseProtocolTypeFactory.getDatabaseType();
     }
-
+    
     @Test
     public void 
assertGetDatabaseTypeInstanceOfMySQLDatabaseTypeFromMetaDataContextsSchemaName()
 {
-        StandardMetaDataContexts standardMetaDataContexts = new 
StandardMetaDataContexts(getMetaDataMap(), mock(ExecutorEngine.class), 
mock(Authentication.class),
-                new ConfigurationProperties(new Properties()));
-        setMetaDataContexts(standardMetaDataContexts);
-        assertTrue(!standardMetaDataContexts.getMetaDataMap().isEmpty());
-        String configuredDatabaseType = 
standardMetaDataContexts.getProps().getValue(ConfigurationPropertyKey.PROXY_FRONTEND_DATABASE_PROTOCOL_TYPE);
+        StandardMetaDataContexts metaDataContexts = new 
StandardMetaDataContexts(
+                mockMetaDataMap(), mock(ExecutorEngine.class), 
mock(Authentication.class), new ConfigurationProperties(new Properties()));
+        setMetaDataContexts(metaDataContexts);
+        assertFalse(metaDataContexts.getMetaDataMap().isEmpty());
+        String configuredDatabaseType = 
metaDataContexts.getProps().getValue(ConfigurationPropertyKey.PROXY_FRONTEND_DATABASE_PROTOCOL_TYPE);
         assertTrue(configuredDatabaseType.isEmpty());
-        
assertTrue(standardMetaDataContexts.getAllSchemaNames().contains("mysql"));
+        
assertTrue(metaDataContexts.getAllSchemaNames().contains(DefaultSchema.LOGIC_NAME));
         DatabaseType databaseType = 
FrontDatabaseProtocolTypeFactory.getDatabaseType();
         assertThat(databaseType, instanceOf(DatabaseType.class));
         assertThat(databaseType.getName(), is("MySQL"));
     }
-
+    
     @Test
     public void 
assertGetDatabaseTypeOfPostgreSQLDatabaseTypeFromMetaDataContextsProps() {
-        Properties properties = new Properties();
-        
properties.setProperty(ConfigurationPropertyKey.PROXY_FRONTEND_DATABASE_PROTOCOL_TYPE.getKey(),
 "PostgreSQL");
-        StandardMetaDataContexts standardMetaDataContexts = new 
StandardMetaDataContexts(getMetaDataMap(), mock(ExecutorEngine.class), 
mock(Authentication.class),
-                new ConfigurationProperties(properties));
-        setMetaDataContexts(standardMetaDataContexts);
-        assertTrue(!standardMetaDataContexts.getMetaDataMap().isEmpty());
-        String configuredDatabaseType = 
standardMetaDataContexts.getProps().getValue(ConfigurationPropertyKey.PROXY_FRONTEND_DATABASE_PROTOCOL_TYPE);
+        Properties props = new Properties();
+        
props.setProperty(ConfigurationPropertyKey.PROXY_FRONTEND_DATABASE_PROTOCOL_TYPE.getKey(),
 "PostgreSQL");
+        StandardMetaDataContexts metaDataContexts = new 
StandardMetaDataContexts(mockMetaDataMap(), mock(ExecutorEngine.class), 
mock(Authentication.class), new ConfigurationProperties(props));
+        setMetaDataContexts(metaDataContexts);
+        assertFalse(metaDataContexts.getMetaDataMap().isEmpty());
+        String configuredDatabaseType = 
metaDataContexts.getProps().getValue(ConfigurationPropertyKey.PROXY_FRONTEND_DATABASE_PROTOCOL_TYPE);
         assertThat(configuredDatabaseType, is("PostgreSQL"));
-        
assertTrue(standardMetaDataContexts.getAllSchemaNames().contains("mysql"));
+        
assertTrue(metaDataContexts.getAllSchemaNames().contains(DefaultSchema.LOGIC_NAME));
         DatabaseType databaseType = 
FrontDatabaseProtocolTypeFactory.getDatabaseType();
         assertThat(databaseType, instanceOf(DatabaseType.class));
         assertThat(databaseType.getName(), is("PostgreSQL"));
-        
assertThat(standardMetaDataContexts.getMetaData("mysql").getResource().getDatabaseType(),
 instanceOf(MySQLDatabaseType.class));
+        
assertThat(metaDataContexts.getMetaData(DefaultSchema.LOGIC_NAME).getResource().getDatabaseType(),
 instanceOf(MySQLDatabaseType.class));
     }
-
+    
+    private Map<String, ShardingSphereMetaData> mockMetaDataMap() {
+        ShardingSphereMetaData metaData = mock(ShardingSphereMetaData.class, 
RETURNS_DEEP_STUBS);
+        when(metaData.getResource().getDatabaseType()).thenReturn(new 
MySQLDatabaseType());
+        return Collections.singletonMap(DefaultSchema.LOGIC_NAME, metaData);
+    }
+    
     @SneakyThrows(ReflectiveOperationException.class)
-    private void setMetaDataContexts(final StandardMetaDataContexts 
standardMetaDataContexts) {
+    private void setMetaDataContexts(final StandardMetaDataContexts 
metaDataContexts) {
         Field field = 
ProxyContext.getInstance().getClass().getDeclaredField("metaDataContexts");
         field.setAccessible(true);
-        field.set(ProxyContext.getInstance(), standardMetaDataContexts);
-    }
-
-    private Map<String, ShardingSphereMetaData> getMetaDataMap() {
-        ShardingSphereResource shardingSphereResource = 
mock(ShardingSphereResource.class);
-        when(shardingSphereResource.getDatabaseType()).thenReturn(new 
MySQLDatabaseType());
-        ShardingSphereMetaData shardingSphereMetaData = 
mock(ShardingSphereMetaData.class, RETURNS_DEEP_STUBS);
-        
when(shardingSphereMetaData.getResource()).thenReturn(shardingSphereResource);
-        Map<String, ShardingSphereMetaData> metaDataMap = 
Collections.singletonMap("mysql", shardingSphereMetaData);
-        return metaDataMap;
+        field.set(ProxyContext.getInstance(), metaDataContexts);
     }
 }

Reply via email to