Search in sources :

Example 11 with ProcessorTopologyTestDriver

use of org.apache.kafka.test.ProcessorTopologyTestDriver in project apache-kafka-on-k8s by banzaicloud.

the class InternalTopologyBuilderTest method shouldThrowOnUnassignedStateStoreAccess.

@SuppressWarnings("deprecation")
@Test
public void shouldThrowOnUnassignedStateStoreAccess() {
    final String sourceNodeName = "source";
    final String goodNodeName = "goodGuy";
    final String badNodeName = "badGuy";
    final Properties config = new Properties();
    config.put(StreamsConfig.BOOTSTRAP_SERVERS_CONFIG, "host:1");
    config.put(StreamsConfig.APPLICATION_ID_CONFIG, "appId");
    config.put(StreamsConfig.STATE_DIR_CONFIG, TestUtils.tempDirectory().getAbsolutePath());
    final StreamsConfig streamsConfig = new StreamsConfig(config);
    builder.addSource(null, sourceNodeName, null, null, null, "topic");
    builder.addProcessor(goodNodeName, new LocalMockProcessorSupplier(), sourceNodeName);
    builder.addStateStore(Stores.create(LocalMockProcessorSupplier.STORE_NAME).withStringKeys().withStringValues().inMemory().build(), goodNodeName);
    builder.addProcessor(badNodeName, new LocalMockProcessorSupplier(), sourceNodeName);
    try {
        new ProcessorTopologyTestDriver(streamsConfig, builder);
        fail("Should have throw StreamsException");
    } catch (final StreamsException e) {
        final String error = e.toString();
        final String expectedMessage = "org.apache.kafka.streams.errors.StreamsException: failed to initialize processor " + badNodeName;
        assertThat(error, equalTo(expectedMessage));
    }
}
Also used : ProcessorTopologyTestDriver(org.apache.kafka.test.ProcessorTopologyTestDriver) StreamsException(org.apache.kafka.streams.errors.StreamsException) Properties(java.util.Properties) StreamsConfig(org.apache.kafka.streams.StreamsConfig) Test(org.junit.Test)

Example 12 with ProcessorTopologyTestDriver

use of org.apache.kafka.test.ProcessorTopologyTestDriver in project apache-kafka-on-k8s by banzaicloud.

the class ProcessorTopologyTest method testDrivingMultiplexingTopology.

@Test
public void testDrivingMultiplexingTopology() {
    driver = new ProcessorTopologyTestDriver(config, createMultiplexingTopology().internalTopologyBuilder);
    driver.process(INPUT_TOPIC_1, "key1", "value1", STRING_SERIALIZER, STRING_SERIALIZER);
    assertNextOutputRecord(OUTPUT_TOPIC_1, "key1", "value1(1)");
    assertNextOutputRecord(OUTPUT_TOPIC_2, "key1", "value1(2)");
    driver.process(INPUT_TOPIC_1, "key2", "value2", STRING_SERIALIZER, STRING_SERIALIZER);
    assertNextOutputRecord(OUTPUT_TOPIC_1, "key2", "value2(1)");
    assertNextOutputRecord(OUTPUT_TOPIC_2, "key2", "value2(2)");
    driver.process(INPUT_TOPIC_1, "key3", "value3", STRING_SERIALIZER, STRING_SERIALIZER);
    driver.process(INPUT_TOPIC_1, "key4", "value4", STRING_SERIALIZER, STRING_SERIALIZER);
    driver.process(INPUT_TOPIC_1, "key5", "value5", STRING_SERIALIZER, STRING_SERIALIZER);
    assertNextOutputRecord(OUTPUT_TOPIC_1, "key3", "value3(1)");
    assertNextOutputRecord(OUTPUT_TOPIC_1, "key4", "value4(1)");
    assertNextOutputRecord(OUTPUT_TOPIC_1, "key5", "value5(1)");
    assertNextOutputRecord(OUTPUT_TOPIC_2, "key3", "value3(2)");
    assertNextOutputRecord(OUTPUT_TOPIC_2, "key4", "value4(2)");
    assertNextOutputRecord(OUTPUT_TOPIC_2, "key5", "value5(2)");
}
Also used : ProcessorTopologyTestDriver(org.apache.kafka.test.ProcessorTopologyTestDriver) Test(org.junit.Test)

Example 13 with ProcessorTopologyTestDriver

use of org.apache.kafka.test.ProcessorTopologyTestDriver in project apache-kafka-on-k8s by banzaicloud.

the class ProcessorTopologyTest method testDrivingMultiplexByNameTopology.

@Test
public void testDrivingMultiplexByNameTopology() {
    driver = new ProcessorTopologyTestDriver(config, createMultiplexByNameTopology().internalTopologyBuilder);
    driver.process(INPUT_TOPIC_1, "key1", "value1", STRING_SERIALIZER, STRING_SERIALIZER);
    assertNextOutputRecord(OUTPUT_TOPIC_1, "key1", "value1(1)");
    assertNextOutputRecord(OUTPUT_TOPIC_2, "key1", "value1(2)");
    driver.process(INPUT_TOPIC_1, "key2", "value2", STRING_SERIALIZER, STRING_SERIALIZER);
    assertNextOutputRecord(OUTPUT_TOPIC_1, "key2", "value2(1)");
    assertNextOutputRecord(OUTPUT_TOPIC_2, "key2", "value2(2)");
    driver.process(INPUT_TOPIC_1, "key3", "value3", STRING_SERIALIZER, STRING_SERIALIZER);
    driver.process(INPUT_TOPIC_1, "key4", "value4", STRING_SERIALIZER, STRING_SERIALIZER);
    driver.process(INPUT_TOPIC_1, "key5", "value5", STRING_SERIALIZER, STRING_SERIALIZER);
    assertNextOutputRecord(OUTPUT_TOPIC_1, "key3", "value3(1)");
    assertNextOutputRecord(OUTPUT_TOPIC_1, "key4", "value4(1)");
    assertNextOutputRecord(OUTPUT_TOPIC_1, "key5", "value5(1)");
    assertNextOutputRecord(OUTPUT_TOPIC_2, "key3", "value3(2)");
    assertNextOutputRecord(OUTPUT_TOPIC_2, "key4", "value4(2)");
    assertNextOutputRecord(OUTPUT_TOPIC_2, "key5", "value5(2)");
}
Also used : ProcessorTopologyTestDriver(org.apache.kafka.test.ProcessorTopologyTestDriver) Test(org.junit.Test)

Example 14 with ProcessorTopologyTestDriver

use of org.apache.kafka.test.ProcessorTopologyTestDriver in project apache-kafka-on-k8s by banzaicloud.

the class ProcessorTopologyTest method testDrivingInternalRepartitioningForwardingTimestampTopology.

@Test
public void testDrivingInternalRepartitioningForwardingTimestampTopology() {
    driver = new ProcessorTopologyTestDriver(config, createInternalRepartitioningWithValueTimestampTopology().internalTopologyBuilder);
    driver.process(INPUT_TOPIC_1, "key1", "value1@1000", STRING_SERIALIZER, STRING_SERIALIZER);
    driver.process(INPUT_TOPIC_1, "key2", "value2@2000", STRING_SERIALIZER, STRING_SERIALIZER);
    driver.process(INPUT_TOPIC_1, "key3", "value3@3000", STRING_SERIALIZER, STRING_SERIALIZER);
    assertThat(driver.readOutput(OUTPUT_TOPIC_1, STRING_DESERIALIZER, STRING_DESERIALIZER), equalTo(new ProducerRecord<>(OUTPUT_TOPIC_1, null, 1000L, "key1", "value1")));
    assertThat(driver.readOutput(OUTPUT_TOPIC_1, STRING_DESERIALIZER, STRING_DESERIALIZER), equalTo(new ProducerRecord<>(OUTPUT_TOPIC_1, null, 2000L, "key2", "value2")));
    assertThat(driver.readOutput(OUTPUT_TOPIC_1, STRING_DESERIALIZER, STRING_DESERIALIZER), equalTo(new ProducerRecord<>(OUTPUT_TOPIC_1, null, 3000L, "key3", "value3")));
}
Also used : ProcessorTopologyTestDriver(org.apache.kafka.test.ProcessorTopologyTestDriver) ProducerRecord(org.apache.kafka.clients.producer.ProducerRecord) Test(org.junit.Test)

Example 15 with ProcessorTopologyTestDriver

use of org.apache.kafka.test.ProcessorTopologyTestDriver in project apache-kafka-on-k8s by banzaicloud.

the class ProcessorTopologyTest method testDrivingSimpleMultiSourceTopology.

@Test
public void testDrivingSimpleMultiSourceTopology() {
    final int partition = 10;
    driver = new ProcessorTopologyTestDriver(config, createSimpleMultiSourceTopology(partition).internalTopologyBuilder);
    driver.process(INPUT_TOPIC_1, "key1", "value1", STRING_SERIALIZER, STRING_SERIALIZER);
    assertNextOutputRecord(OUTPUT_TOPIC_1, "key1", "value1", partition);
    assertNoOutputRecord(OUTPUT_TOPIC_2);
    driver.process(INPUT_TOPIC_2, "key2", "value2", STRING_SERIALIZER, STRING_SERIALIZER);
    assertNextOutputRecord(OUTPUT_TOPIC_2, "key2", "value2", partition);
    assertNoOutputRecord(OUTPUT_TOPIC_1);
}
Also used : ProcessorTopologyTestDriver(org.apache.kafka.test.ProcessorTopologyTestDriver) Test(org.junit.Test)

Aggregations

ProcessorTopologyTestDriver (org.apache.kafka.test.ProcessorTopologyTestDriver)17 Test (org.junit.Test)17 Properties (java.util.Properties)4 StreamsException (org.apache.kafka.streams.errors.StreamsException)4 StreamsConfig (org.apache.kafka.streams.StreamsConfig)3 CoreMatchers.containsString (org.hamcrest.CoreMatchers.containsString)2 ProducerRecord (org.apache.kafka.clients.producer.ProducerRecord)1 TopologyBuilderException (org.apache.kafka.streams.errors.TopologyBuilderException)1 StateStoreSupplier (org.apache.kafka.streams.processor.StateStoreSupplier)1 TopologyBuilder (org.apache.kafka.streams.processor.TopologyBuilder)1 KeyValueStore (org.apache.kafka.streams.state.KeyValueStore)1 MockStateStore (org.apache.kafka.test.MockStateStore)1