package org.nd4j.kafka; import org.apache.camel.CamelContext; import org.apache.camel.impl.DefaultCamelContext; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.nd4j.camel.kafka.KafkaConnectionInformation; import org.nd4j.camel.kafka.Nd4jKafkaConsumer; import org.nd4j.camel.kafka.Nd4jKafkaProducer; import org.nd4j.camel.kafka.Nd4jKafkaRoute; import org.nd4j.linalg.factory.Nd4j; import static org.junit.Assert.assertEquals; /** * Created by agibsonccc on 7/19/16. */ public class Nd4jKafkaRouteTest { private EmbeddedKafkaCluster kafka; private EmbeddedZookeeper zk; private CamelContext camelContext; public final static String TOPIC = "nd4jtest"; public final static String GROUP_ID = "nd4j"; private KafkaConnectionInformation connectionInformation; @Before public void before() throws Exception { zk = new EmbeddedZookeeper(TestUtils.getAvailablePort()); zk.startup(); kafka = new EmbeddedKafkaCluster(zk.getConnection()); kafka.startup(); kafka.createTopics(TOPIC); camelContext = new DefaultCamelContext(); camelContext.start(); connectionInformation = KafkaConnectionInformation.builder().groupId(GROUP_ID).topicName(TOPIC) .zookeeperHost("localhost").zookeeperPort(zk.getPort()).kafkaBrokerList(kafka.getBrokerList()) .build(); camelContext.addRoutes(Nd4jKafkaRoute.builder().kafkaConnectionInformation(connectionInformation).build()); } @After public void after() throws Exception { if (kafka != null) kafka.shutdown(); if (zk != null) zk.shutdown(); if (camelContext != null) camelContext.stop(); } @Test public void testKafkaRoute() throws Exception { Nd4jKafkaProducer kafkaProducer = Nd4jKafkaProducer.builder().camelContext(camelContext) .connectionInformation(connectionInformation).build(); kafkaProducer.publish(Nd4j.create(4)); Nd4jKafkaConsumer consumer = Nd4jKafkaConsumer.builder().camelContext(camelContext) .connectionInformation(connectionInformation).build(); assertEquals(Nd4j.create(4), consumer.receive()); } }