Search in sources :

Example 1 with To

use of org.apache.kafka.streams.processor.To in project apache-kafka-on-k8s by banzaicloud.

the class MockProcessorContextTest method shouldCaptureRecordsOutputToChildByName.

@Test
public void shouldCaptureRecordsOutputToChildByName() {
    final AbstractProcessor<String, Long> processor = new AbstractProcessor<String, Long>() {

        private int count = 0;

        @Override
        public void process(final String key, final Long value) {
            if (count == 0) {
                // broadcast
                context().forward("start", -1L, To.all());
            }
            final To toChild = count % 2 == 0 ? To.child("george") : To.child("pete");
            context().forward(key + value, key.length() + value, toChild);
            count++;
        }
    };
    final MockProcessorContext context = new MockProcessorContext();
    processor.init(context);
    processor.process("foo", 5L);
    processor.process("barbaz", 50L);
    {
        final Iterator<CapturedForward> forwarded = context.forwarded().iterator();
        final CapturedForward forward1 = forwarded.next();
        assertEquals(new KeyValue<>("start", -1L), forward1.keyValue());
        assertEquals(null, forward1.childName());
        final CapturedForward forward2 = forwarded.next();
        assertEquals(new KeyValue<>("foo5", 8L), forward2.keyValue());
        assertEquals("george", forward2.childName());
        final CapturedForward forward3 = forwarded.next();
        assertEquals(new KeyValue<>("barbaz50", 56L), forward3.keyValue());
        assertEquals("pete", forward3.childName());
        assertFalse(forwarded.hasNext());
    }
    {
        final Iterator<CapturedForward> forwarded = context.forwarded("george").iterator();
        assertEquals(new KeyValue<>("start", -1L), forwarded.next().keyValue());
        assertEquals(new KeyValue<>("foo5", 8L), forwarded.next().keyValue());
        assertFalse(forwarded.hasNext());
    }
    {
        final Iterator<CapturedForward> forwarded = context.forwarded("pete").iterator();
        assertEquals(new KeyValue<>("start", -1L), forwarded.next().keyValue());
        assertEquals(new KeyValue<>("barbaz50", 56L), forwarded.next().keyValue());
        assertFalse(forwarded.hasNext());
    }
    {
        final Iterator<CapturedForward> forwarded = context.forwarded("steve").iterator();
        assertEquals(new KeyValue<>("start", -1L), forwarded.next().keyValue());
        assertFalse(forwarded.hasNext());
    }
}
Also used : CapturedForward(org.apache.kafka.streams.processor.MockProcessorContext.CapturedForward) Iterator(java.util.Iterator) AbstractProcessor(org.apache.kafka.streams.processor.AbstractProcessor) To(org.apache.kafka.streams.processor.To) MockProcessorContext(org.apache.kafka.streams.processor.MockProcessorContext) Test(org.junit.Test)

Aggregations

Iterator (java.util.Iterator)1 AbstractProcessor (org.apache.kafka.streams.processor.AbstractProcessor)1 MockProcessorContext (org.apache.kafka.streams.processor.MockProcessorContext)1 CapturedForward (org.apache.kafka.streams.processor.MockProcessorContext.CapturedForward)1 To (org.apache.kafka.streams.processor.To)1 Test (org.junit.Test)1