LogicalWorkflowExecutorFactory { private LogicalWorkflowExecutorFactory() { } private  LogicalWorkflowExecutorFactory(); static LogicalWorkflowExecutor getLogicalWorkflowExecutor(ProjectParsed logicalWorkfloParsed);  }
@Test public void logicalWorkflowExecutorFactoryTest() throws Exception { LogicalWorkFlowCreator logWorkFlowCreator = new LogicalWorkFlowCreator(CATALOG, TABLE, CLUSTER_NAME); LogicalWorkflow logicalWorkflow = logWorkFlowCreator.addColumnName(COLUMN_1).build(); ProjectParsed logWorkflowData = new ProjectParsed((Project) logicalWorkflow.getInitialSteps().get(0), new MongoLogicalWorkflowValidator()); LogicalWorkflowExecutor lwExecutor = LogicalWorkflowExecutorFactory.getLogicalWorkflowExecutor(logWorkflowData); assertTrue("The aggregation should not be required without groupBy statements", lwExecutor instanceof BasicLogicalWorkflowExecutor); logWorkFlowCreator.addGroupBy(COLUMN_1); logicalWorkflow = logWorkFlowCreator.build(); logWorkflowData = new ProjectParsed((Project) logicalWorkflow.getInitialSteps().get(0), new MongoLogicalWorkflowValidator()); lwExecutor = LogicalWorkflowExecutorFactory.getLogicalWorkflowExecutor(logWorkflowData); assertTrue("The aggregation should be required with groupBy statements", lwExecutor instanceof AggregationLogicalWorkflowExecutor); }