@Override public Collection<RM> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { return this.transformFn.apply(message); }
@Override public Collection<RM> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { return this.transformFn.apply(message); }
@Override public Collection<RM> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { return this.transformFn.apply(message); }
@Override public Collection<RM> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { return this.transformFn.apply(message); }
@Override public Collection<RM> handleMessage(M message, MessageCollector collector, TaskCoordinator coordinator) { return this.transformFn.apply(message); }
@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); }
@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()); }
@Test public void testFilter() { StreamApplicationDescriptorImpl mockGraph = mock(StreamApplicationDescriptorImpl.class); OperatorSpec mockOpSpec = mock(OperatorSpec.class); MessageStreamImpl<TestMessageEnvelope> inputStream = new MessageStreamImpl<>(mockGraph, mockOpSpec); FilterFunction<Object> mockFilterFn = mock(FilterFunction.class); inputStream.filter(mockFilterFn); 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.FILTER, registeredOpSpec.getOpCode()); Object mockInput = new Object(); when(mockFilterFn.apply(anyObject())).thenReturn(true); assertTrue(transformFn.apply(mockInput).contains(mockInput)); when(mockFilterFn.apply(anyObject())).thenReturn(false); assertTrue(transformFn.apply(mockInput).isEmpty()); }
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()