@Override public Collection<RM> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { return this.transformFn.apply(message); }
@Override protected void handleClose() { this.transformFn.close(); }
@Override protected void handleInit(Context context) { transformFn.init(context); }
this.add(testObj); }}, new SamzaSqlRelMsgMetadata("", "", "")); Collection<SamzaSqlRelMessage> flattenedMsgs = flattenOp.getTransformFn().apply(mockMsg); assertTrue(flattenedMsgs.size() == 1); assertTrue(flattenedMsgs.stream().anyMatch(s -> s.getSamzaSqlRelRecord().getFieldValues().get(0).equals(testObj))); this.add(testList); }}, new SamzaSqlRelMsgMetadata("", "", "")); flattenedMsgs = flattenOp.getTransformFn().apply(mockMsg); assertTrue(flattenedMsgs.size() == 10); List<Integer> actualList = flattenedMsgs.stream() mockContexts.put(1, mockTranslatorContext); when(mockContext.getApplicationTaskContext()).thenReturn(new SamzaSqlApplicationContext(mockContexts)); projectSpec.getTransformFn().init(mockContext); MapFunction mapFn = (MapFunction) Whitebox.getInternalState(projectSpec, "mapFn"); assertNotNull(mapFn);
@Override public Collection<RM> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { return this.transformFn.apply(message); }
@Override protected void handleInit(Context context) { transformFn.init(context); }
@Override protected void handleClose() { this.transformFn.close(); }
@Override public Collection<RM> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { return this.transformFn.apply(message); }
@Override protected void handleInit(Context context) { transformFn.init(context); }
@Override protected void handleClose() { this.transformFn.close(); }
@Override public Collection<RM> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { return this.transformFn.apply(message); }
@Override protected void handleInit(Context context) { transformFn.init(context); }
@Override protected void handleClose() { this.transformFn.close(); }
@Override public Collection<RM> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { return this.transformFn.apply(message); }
@Override protected void handleInit(Context context) { transformFn.init(context); }
@Override protected void handleClose() { this.transformFn.close(); }
@Test @SuppressWarnings("unchecked") public void testStreamOperator() { StreamOperatorSpec<TestMessageEnvelope, TestOutputMessageEnvelope> mockOp = mock(StreamOperatorSpec.class); FlatMapFunction<TestMessageEnvelope, TestOutputMessageEnvelope> txfmFn = mock(FlatMapFunction.class); when(mockOp.getTransformFn()).thenReturn(txfmFn); StreamOperatorImpl<TestMessageEnvelope, TestOutputMessageEnvelope> opImpl = new StreamOperatorImpl<>(mockOp); TestMessageEnvelope inMsg = mock(TestMessageEnvelope.class); Collection<TestOutputMessageEnvelope> mockOutputs = mock(Collection.class); when(txfmFn.apply(inMsg)).thenReturn(mockOutputs); MessageCollector mockCollector = mock(MessageCollector.class); TaskCoordinator mockCoordinator = mock(TaskCoordinator.class); Collection<TestOutputMessageEnvelope> results = opImpl .handleMessage(inMsg, mockCollector, mockCoordinator); verify(txfmFn, times(1)).apply(inMsg); assertEquals(results, mockOutputs); }
mockContexts.put(1, mockTranslatorContext); when(mockContext.getApplicationTaskContext()).thenReturn(new SamzaSqlApplicationContext(mockContexts)); filterSpec.getTransformFn().init(mockContext); FilterFunction filterFn = (FilterFunction) Whitebox.getInternalState(filterSpec, "filterFn"); assertNotNull(filterFn);
@Test public void testStreamOperatorClose() { StreamOperatorSpec<TestMessageEnvelope, TestOutputMessageEnvelope> mockOp = mock(StreamOperatorSpec.class); FlatMapFunction<TestMessageEnvelope, TestOutputMessageEnvelope> txfmFn = mock(FlatMapFunction.class); when(mockOp.getTransformFn()).thenReturn(txfmFn); StreamOperatorImpl<TestMessageEnvelope, TestOutputMessageEnvelope> opImpl = new StreamOperatorImpl<>(mockOp); // ensure that close is not called yet verify(txfmFn, times(0)).close(); opImpl.handleClose(); // ensure that close is called once inside handleClose() verify(txfmFn, times(1)).close(); } }
@Test public void testMap() { StreamApplicationDescriptorImpl mockGraph = mock(StreamApplicationDescriptorImpl.class); OperatorSpec mockOpSpec = mock(OperatorSpec.class); MessageStreamImpl<TestMessageEnvelope> inputStream = new MessageStreamImpl<>(mockGraph, mockOpSpec); MapFunction<TestMessageEnvelope, TestOutputMessageEnvelope> mockMapFn = mock(MapFunction.class); inputStream.map(mockMapFn); ArgumentCaptor<OperatorSpec> registeredOpCaptor = ArgumentCaptor.forClass(OperatorSpec.class); verify(mockOpSpec).registerNextOperatorSpec(registeredOpCaptor.capture()); OperatorSpec<?, TestMessageEnvelope> registeredOpSpec = registeredOpCaptor.getValue(); assertTrue(registeredOpSpec instanceof StreamOperatorSpec); FlatMapFunction transformFn = ((StreamOperatorSpec) registeredOpSpec).getTransformFn(); assertNotNull(transformFn); assertEquals(OpCode.MAP, registeredOpSpec.getOpCode()); TestOutputMessageEnvelope mockOutput = mock(TestOutputMessageEnvelope.class); when(mockMapFn.apply(anyObject())).thenReturn(mockOutput); assertTrue(transformFn.apply(new Object()).contains(mockOutput)); when(mockMapFn.apply(anyObject())).thenReturn(null); assertTrue(transformFn.apply(null).isEmpty()); }