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

panjuan 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 1db6c9bba60 Refactor ProjectionUtilsTest (#28091)
1db6c9bba60 is described below

commit 1db6c9bba602efcd459cd48c833e76b304b896ef
Author: Liang Zhang <[email protected]>
AuthorDate: Tue Aug 15 15:00:20 2023 +0800

    Refactor ProjectionUtilsTest (#28091)
---
 .../projection/util/ProjectionUtilsTest.java       | 28 +++++++++++-----------
 1 file changed, 14 insertions(+), 14 deletions(-)

diff --git 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/util/ProjectionUtilsTest.java
 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/util/ProjectionUtilsTest.java
index 315416d9148..09f23b64328 100644
--- 
a/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/util/ProjectionUtilsTest.java
+++ 
b/infra/binder/src/test/java/org/apache/shardingsphere/infra/binder/segment/select/projection/util/ProjectionUtilsTest.java
@@ -19,10 +19,9 @@ package 
org.apache.shardingsphere.infra.binder.segment.select.projection.util;
 
 import 
org.apache.shardingsphere.infra.binder.context.segment.select.projection.util.ProjectionUtils;
 import 
org.apache.shardingsphere.infra.database.core.metadata.database.enums.QuoteCharacter;
-import org.apache.shardingsphere.infra.database.mysql.type.MySQLDatabaseType;
-import 
org.apache.shardingsphere.infra.database.opengauss.type.OpenGaussDatabaseType;
-import org.apache.shardingsphere.infra.database.oracle.type.OracleDatabaseType;
+import org.apache.shardingsphere.infra.database.core.type.DatabaseType;
 import 
org.apache.shardingsphere.infra.database.postgresql.type.PostgreSQLDatabaseType;
+import org.apache.shardingsphere.infra.spi.type.typed.TypedSPILoader;
 import 
org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
 import org.junit.jupiter.api.Test;
 
@@ -31,23 +30,24 @@ import static org.hamcrest.Matchers.is;
 
 class ProjectionUtilsTest {
     
+    private final IdentifierValue alias = new IdentifierValue("Data", 
QuoteCharacter.NONE);
+    
     @Test
     void assertGetColumnLabelFromAlias() {
-        IdentifierValue alias = new IdentifierValue("Data", 
QuoteCharacter.NONE);
         assertThat(ProjectionUtils.getColumnLabelFromAlias(new 
IdentifierValue("Data", QuoteCharacter.QUOTE), new PostgreSQLDatabaseType()), 
is("Data"));
-        assertThat(ProjectionUtils.getColumnLabelFromAlias(alias, new 
PostgreSQLDatabaseType()), is("data"));
-        assertThat(ProjectionUtils.getColumnLabelFromAlias(alias, new 
OpenGaussDatabaseType()), is("data"));
-        assertThat(ProjectionUtils.getColumnLabelFromAlias(alias, new 
OracleDatabaseType()), is("DATA"));
-        assertThat(ProjectionUtils.getColumnLabelFromAlias(alias, new 
MySQLDatabaseType()), is("Data"));
+        assertThat(ProjectionUtils.getColumnLabelFromAlias(alias, 
TypedSPILoader.getService(DatabaseType.class, "PostgreSQL")), is("data"));
+        assertThat(ProjectionUtils.getColumnLabelFromAlias(alias, 
TypedSPILoader.getService(DatabaseType.class, "openGauss")), is("data"));
+        assertThat(ProjectionUtils.getColumnLabelFromAlias(alias, 
TypedSPILoader.getService(DatabaseType.class, "Oracle")), is("DATA"));
+        assertThat(ProjectionUtils.getColumnLabelFromAlias(alias, 
TypedSPILoader.getService(DatabaseType.class, "MySQL")), is("Data"));
     }
     
     @Test
     void assertGetColumnNameFromFunction() {
-        String functionName = "Cast";
-        String functionExpression = "Cast(order_id AS INT)";
-        assertThat(ProjectionUtils.getColumnNameFromFunction(functionName, 
functionExpression, new PostgreSQLDatabaseType()), is("cast"));
-        assertThat(ProjectionUtils.getColumnNameFromFunction(functionName, 
functionExpression, new OpenGaussDatabaseType()), is("cast"));
-        assertThat(ProjectionUtils.getColumnNameFromFunction(functionName, 
functionExpression, new OracleDatabaseType()), is("CAST(ORDER_IDASINT)"));
-        assertThat(ProjectionUtils.getColumnNameFromFunction(functionName, 
functionExpression, new MySQLDatabaseType()), is("Cast(order_id AS INT)"));
+        String functionName = "Function";
+        String functionExpression = "FunctionExpression";
+        assertThat(ProjectionUtils.getColumnNameFromFunction(functionName, 
functionExpression, TypedSPILoader.getService(DatabaseType.class, 
"PostgreSQL")), is("function"));
+        assertThat(ProjectionUtils.getColumnNameFromFunction(functionName, 
functionExpression, TypedSPILoader.getService(DatabaseType.class, 
"openGauss")), is("function"));
+        assertThat(ProjectionUtils.getColumnNameFromFunction(functionName, 
functionExpression, TypedSPILoader.getService(DatabaseType.class, "Oracle")), 
is("FUNCTIONEXPRESSION"));
+        assertThat(ProjectionUtils.getColumnNameFromFunction(functionName, 
functionExpression, TypedSPILoader.getService(DatabaseType.class, "MySQL")), 
is("FunctionExpression"));
     }
 }

Reply via email to