use of org.apache.samza.operators.functions.FoldLeftFunction in project samza by apache.
the class TestOperatorSpecs method testCreateWindowOperatorWithRelaxedTypes.
@Test
public void testCreateWindowOperatorWithRelaxedTypes() throws Exception {
Function<TestMessageEnvelope, String> keyExtractor = m -> m.getKey();
FoldLeftFunction<TestMessageEnvelope, Integer> aggregator = (m, c) -> c + 1;
Supplier<Integer> initialValue = () -> 0;
//instantiate a window using reflection
WindowInternal<TestInputMessageEnvelope, String, Integer> window = new WindowInternal(null, initialValue, aggregator, keyExtractor, null, WindowType.TUMBLING);
MessageStreamImpl<WindowPane<String, Integer>> mockWndOut = mock(MessageStreamImpl.class);
WindowOperatorSpec spec = OperatorSpecs.createWindowOperatorSpec(window, mockWndOut, 1);
assertEquals(spec.getWindow(), window);
assertEquals(spec.getWindow().getKeyExtractor(), keyExtractor);
assertEquals(spec.getWindow().getFoldLeftFunction(), aggregator);
// make sure that the functions with relaxed types work as expected
TestInputMessageEnvelope inputMsg = new TestInputMessageEnvelope("test-input-key1", "test-value-1", 23456L, "input-id-1");
assertEquals("test-input-key1", spec.getWindow().getKeyExtractor().apply(inputMsg));
assertEquals(1, spec.getWindow().getFoldLeftFunction().apply(inputMsg, 0));
}
use of org.apache.samza.operators.functions.FoldLeftFunction in project samza by apache.
the class TestOperatorSpecs method testCreateWindowOperator.
@Test
public void testCreateWindowOperator() throws Exception {
Function<TestMessageEnvelope, String> keyExtractor = m -> "globalkey";
FoldLeftFunction<TestMessageEnvelope, Integer> aggregator = (m, c) -> c + 1;
Supplier<Integer> initialValue = () -> 0;
//instantiate a window using reflection
WindowInternal window = new WindowInternal(null, initialValue, aggregator, keyExtractor, null, WindowType.TUMBLING);
MessageStreamImpl<WindowPane<String, Integer>> mockWndOut = mock(MessageStreamImpl.class);
WindowOperatorSpec spec = OperatorSpecs.<TestMessageEnvelope, String, Integer>createWindowOperatorSpec(window, mockWndOut, 1);
assertEquals(spec.getWindow(), window);
assertEquals(spec.getWindow().getKeyExtractor(), keyExtractor);
assertEquals(spec.getWindow().getFoldLeftFunction(), aggregator);
}
Aggregations