@Test public void testLogicalPlan2() throws Exception { LogicalPlan logicalPlan = getLogicalPlan2(); Plan queryPlan = logicalPlan.buildQueryPlan(); ISink tupleSink = queryPlan.getRoot(); Assert.assertTrue(tupleSink instanceof TupleSink); IOperator join = ((TupleSink) tupleSink).getInputOperator(); Assert.assertTrue(join instanceof Join); IOperator joinInput1 = ((Join) join).getInnerInputOperator(); Assert.assertTrue(joinInput1 instanceof RegexMatcher); IOperator joinInput2 = ((Join) join).getOuterInputOperator(); Assert.assertTrue(joinInput2 instanceof NlpEntityOperator); IOperator connectorOut1 = ((RegexMatcher) joinInput1).getInputOperator(); Assert.assertTrue(connectorOut1 instanceof ConnectorOutputOperator); IOperator connectorOut2 = ((NlpEntityOperator) joinInput2).getInputOperator(); Assert.assertTrue(connectorOut2 instanceof ConnectorOutputOperator); HashSet<Integer> connectorIndices = new HashSet<>(); connectorIndices.add(((ConnectorOutputOperator) connectorOut1).getOutputIndex()); connectorIndices.add(((ConnectorOutputOperator) connectorOut2).getOutputIndex()); Assert.assertEquals(connectorIndices.size(), 2); OneToNBroadcastConnector connector1 = ((ConnectorOutputOperator) connectorOut1).getOwnerConnector(); OneToNBroadcastConnector connector2 = ((ConnectorOutputOperator) connectorOut2).getOwnerConnector(); Assert.assertSame(connector1, connector2); IOperator keywordSource = connector1.getInputOperator(); Assert.assertTrue(keywordSource instanceof KeywordMatcherSourceOperator); }
Assert.assertTrue(connectorOut1 instanceof ConnectorOutputOperator); IOperator connectorOut2 = ((NlpEntityOperator) join1Input2).getInputOperator(); Assert.assertTrue(connectorOut2 instanceof ConnectorOutputOperator);
@Test public void testGetOutputSchema2() throws Exception { LogicalPlan logicalPlan = getLogicalPlan2(); Plan queryPlan = logicalPlan.buildQueryPlan(); ISink tupleSink = queryPlan.getRoot(); IOperator join = ((TupleSink) tupleSink).getInputOperator(); IOperator joinInput1 = ((Join) join).getInnerInputOperator(); IOperator joinInput2 = ((Join) join).getOuterInputOperator(); IOperator connectorOut1 = ((RegexMatcher) joinInput1).getInputOperator(); IOperator connectorOut2 = ((NlpEntityOperator) joinInput2).getInputOperator(); OneToNBroadcastConnector connector1 = ((ConnectorOutputOperator) connectorOut1).getOwnerConnector(); OneToNBroadcastConnector connector2 = ((ConnectorOutputOperator) connectorOut2).getOwnerConnector(); IOperator keywordSource = connector1.getInputOperator(); join.open(); Schema expectedJoinOutputSchema = join.getOutputSchema(); Schema expectedSourceOutputSchema = keywordSource.getOutputSchema(); Schema expectedMatcherOutputSchema = joinInput1.getOutputSchema(); Schema expectedNlpEntityOutputSchema = joinInput2.getOutputSchema(); join.close(); Schema joinOutputSchema = logicalPlan.getOperatorOutputSchema(JOIN_DISTANCE_ID); Schema sourceOutputSchema = logicalPlan.getOperatorOutputSchema(KEYWORD_SOURCE_ID); Schema matcherOutputSchema = logicalPlan.getOperatorOutputSchema(REGEX_ID); Schema nlpEntityOutputSchema = logicalPlan.getOperatorOutputSchema(NLP_ENTITY_ID); Assert.assertEquals(expectedJoinOutputSchema, joinOutputSchema); Assert.assertEquals(expectedSourceOutputSchema, sourceOutputSchema); Assert.assertEquals(expectedMatcherOutputSchema, matcherOutputSchema); Assert.assertEquals(expectedNlpEntityOutputSchema, nlpEntityOutputSchema); }