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

dwysakowicz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git

commit c24017f4036c208f8f3560e34d11c8c82f56299f
Author: slinkydeveloper <[email protected]>
AuthorDate: Fri Sep 10 09:34:28 2021 +0200

    [hotfix] Refactor PlannerMocks be used as holder of different mocks
    
    Signed-off-by: slinkydeveloper <[email protected]>
---
 .../planner/operations/MergeTableLikeUtilTest.java |  2 +-
 .../flink/table/planner/utils/PlannerMocks.java    | 67 ++++++++++++++++++----
 2 files changed, 57 insertions(+), 12 deletions(-)

diff --git 
a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/operations/MergeTableLikeUtilTest.java
 
b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/operations/MergeTableLikeUtilTest.java
index cbf1238..b43b949 100644
--- 
a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/operations/MergeTableLikeUtilTest.java
+++ 
b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/operations/MergeTableLikeUtilTest.java
@@ -71,7 +71,7 @@ public class MergeTableLikeUtilTest {
 
     private final FlinkTypeFactory typeFactory = new FlinkTypeFactory(new 
FlinkTypeSystem());
     private final SqlValidator sqlValidator =
-            PlannerMocks.createDefaultPlanner().getOrCreateSqlValidator();
+            PlannerMocks.create().getPlanner().getOrCreateSqlValidator();
     private final MergeTableLikeUtil util = new 
MergeTableLikeUtil(sqlValidator, SqlNode::toString);
 
     @Test
diff --git 
a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/utils/PlannerMocks.java
 
b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/utils/PlannerMocks.java
index 83faafc..9279526 100644
--- 
a/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/utils/PlannerMocks.java
+++ 
b/flink-table/flink-table-planner/src/test/java/org/apache/flink/table/planner/utils/PlannerMocks.java
@@ -18,10 +18,12 @@
 
 package org.apache.flink.table.planner.utils;
 
+import org.apache.flink.table.api.Schema;
 import org.apache.flink.table.api.TableConfig;
 import org.apache.flink.table.catalog.CatalogManager;
+import org.apache.flink.table.catalog.CatalogTable;
 import org.apache.flink.table.catalog.FunctionCatalog;
-import org.apache.flink.table.delegation.Parser;
+import org.apache.flink.table.catalog.ObjectIdentifier;
 import org.apache.flink.table.expressions.resolver.ExpressionResolver;
 import org.apache.flink.table.module.ModuleManager;
 import org.apache.flink.table.planner.calcite.FlinkPlannerImpl;
@@ -31,18 +33,30 @@ import 
org.apache.flink.table.planner.delegation.PlannerContext;
 import org.apache.flink.table.utils.CatalogManagerMocks;
 
 import java.util.ArrayList;
+import java.util.Collections;
 
 import static org.apache.calcite.jdbc.CalciteSchemaBuilder.asRootSchema;
 
-/** A utility class for creating an instance of {@link FlinkPlannerImpl} for 
testing. */
+/**
+ * A utility class for instantiating and holding mocks for {@link 
FlinkPlannerImpl}, {@link
+ * ParserImpl} and {@link CatalogManager} for testing.
+ */
 public class PlannerMocks {
-    public static FlinkPlannerImpl createDefaultPlanner() {
-        TableConfig tableConfig = new TableConfig();
-        CatalogManager catalogManager = 
CatalogManagerMocks.createEmptyCatalogManager();
-        ModuleManager moduleManager = new ModuleManager();
-        FunctionCatalog functionCatalog =
+
+    private final FlinkPlannerImpl planner;
+    private final ParserImpl parser;
+    private final CatalogManager catalogManager;
+
+    private PlannerMocks() {
+        this.catalogManager = CatalogManagerMocks.createEmptyCatalogManager();
+
+        final TableConfig tableConfig = new TableConfig();
+        final ModuleManager moduleManager = new ModuleManager();
+
+        final FunctionCatalog functionCatalog =
                 new FunctionCatalog(tableConfig, catalogManager, 
moduleManager);
-        PlannerContext plannerContext =
+
+        final PlannerContext plannerContext =
                 new PlannerContext(
                         false,
                         tableConfig,
@@ -50,15 +64,17 @@ public class PlannerMocks {
                         catalogManager,
                         asRootSchema(new 
CatalogManagerCalciteSchema(catalogManager, true)),
                         new ArrayList<>());
-        FlinkPlannerImpl planner =
+
+        this.planner =
                 plannerContext.createFlinkPlanner(
                         catalogManager.getCurrentCatalog(), 
catalogManager.getCurrentDatabase());
-        Parser parser =
+        this.parser =
                 new ParserImpl(
                         catalogManager,
                         () -> planner,
                         planner::parser,
                         plannerContext.getSqlExprToRexConverterFactory());
+
         catalogManager.initSchemaResolver(
                 true,
                 ExpressionResolver.resolverFor(
@@ -69,8 +85,37 @@ public class PlannerMocks {
                         functionCatalog.asLookup(parser::parseIdentifier),
                         catalogManager.getDataTypeFactory(),
                         parser::parseSqlExpression));
+    }
+
+    public FlinkPlannerImpl getPlanner() {
         return planner;
     }
 
-    private PlannerMocks() {}
+    public ParserImpl getParser() {
+        return parser;
+    }
+
+    public CatalogManager getCatalogManager() {
+        return catalogManager;
+    }
+
+    public PlannerMocks registerTemporaryTable(String tableName, Schema 
tableSchema) {
+        final CatalogTable table =
+                CatalogTable.of(tableSchema, null, Collections.emptyList(), 
Collections.emptyMap());
+
+        this.getCatalogManager()
+                .createTemporaryTable(
+                        table,
+                        ObjectIdentifier.of(
+                                this.getCatalogManager().getCurrentCatalog(),
+                                this.getCatalogManager().getCurrentDatabase(),
+                                tableName),
+                        false);
+
+        return this;
+    }
+
+    public static PlannerMocks create() {
+        return new PlannerMocks();
+    }
 }

Reply via email to