@Override public Collection<Void> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { this.sinkFn.apply(message, collector, coordinator); // there should be no further chained operators since this is a terminal operator. return Collections.emptyList(); }
@Override public Collection<Void> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { this.sinkFn.apply(message, collector, coordinator); // there should be no further chained operators since this is a terminal operator. return Collections.emptyList(); }
@Override public Collection<Void> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { this.sinkFn.apply(message, collector, coordinator); // there should be no further chained operators since this is a terminal operator. return Collections.emptyList(); }
@Override public Collection<Void> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { this.sinkFn.apply(message, collector, coordinator); // there should be no further chained operators since this is a terminal operator. return Collections.emptyList(); }
@Override public Collection<Void> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { this.sinkFn.apply(message, collector, coordinator); // there should be no further chained operators since this is a terminal operator. return Collections.emptyList(); }
@Test public void testSinkOperatorSinkFunction() { SinkFunction<TestOutputMessageEnvelope> sinkFn = mock(SinkFunction.class); SinkOperatorImpl<TestOutputMessageEnvelope> sinkImpl = createSinkOperator(sinkFn); TestOutputMessageEnvelope mockMsg = mock(TestOutputMessageEnvelope.class); MessageCollector mockCollector = mock(MessageCollector.class); TaskCoordinator mockCoordinator = mock(TaskCoordinator.class); sinkImpl.handleMessage(mockMsg, mockCollector, mockCoordinator); verify(sinkFn, times(1)).apply(mockMsg, mockCollector, mockCoordinator); }
@Test public void testSinkOperatorClose() { TestOutputMessageEnvelope mockMsg = mock(TestOutputMessageEnvelope.class); MessageCollector mockCollector = mock(MessageCollector.class); TaskCoordinator mockCoordinator = mock(TaskCoordinator.class); SinkFunction<TestOutputMessageEnvelope> sinkFn = mock(SinkFunction.class); SinkOperatorImpl<TestOutputMessageEnvelope> sinkImpl = createSinkOperator(sinkFn); sinkImpl.handleMessage(mockMsg, mockCollector, mockCoordinator); verify(sinkFn, times(1)).apply(mockMsg, mockCollector, mockCoordinator); // ensure that close is not called yet verify(sinkFn, times(0)).close(); sinkImpl.handleClose(); // ensure that close is called once from handleClose() verify(sinkFn, times(1)).close(); }