package com.produban.openbus.broker; import com.produban.openbus.util.KafkaLocal; import com.produban.openbus.util.ZooKeeperHelper; import kafka.message.MessageAndMetadata; import org.junit.After; import org.junit.Before; import org.junit.Test; import java.io.IOException; import java.util.Properties; import static org.junit.Assert.assertEquals; import static org.junit.Assert.fail; /** * Class Description */ public class KafkaBasicTest { private static KafkaLocal kafka; @Before public void setUp(){ Properties kafkaProperties = new Properties(); try { //start kafka kafkaProperties.load(Class.class.getResourceAsStream("/kafkalocal.properties")); kafka = new KafkaLocal(kafkaProperties); Thread.sleep(5000); } catch (Exception e){ e.printStackTrace(System.out); fail("Error running local Kafka broker"); e.printStackTrace(System.out); } } @Test public void sendMessageToNewTopic() { BasicConsumer consumer = new BasicConsumer("basic_producer_test", "localhost:2181", "test_consumer_group"); String topic = "basic_producer_test"; BasicProducer producer = new BasicProducer("localhost:9092", true); //produce some messages producer.sendMessage(topic, "1", "first message"); producer.sendMessage(topic, "2", "second message"); MessageAndMetadata<byte[], byte[]> firstMessage = consumer.consumeOne(); System.out.println("READ: "+firstMessage.toString()); assertEquals("first message", new String(firstMessage.message())); MessageAndMetadata<byte[], byte[]> secondMessage = consumer.consumeOne(); assertEquals("second message", new String(secondMessage.message())); } @After public void tearDown() { //delete zk data ZooKeeperHelper zkHelper = new ZooKeeperHelper(); try { // zkHelper.connect("localhost:2181"); // zkHelper.delete("/brokers/topics/basic_producer_test/partitions/0"); // zkHelper.delete("/brokers/topics/basic_producer_test/partitions"); // zkHelper.delete("/brokers/topics/basic_producer_test"); // zkHelper.delete("/consumers/test_consumer_group/owners/basic_producer_test"); // zkHelper.delete("/consumers/test_consumer_group/owners"); // zkHelper.delete("/consumers/test_consumer_group/ids"); // zkHelper.delete("/consumers/test_consumer_group/offsets/basic_producer_test"); // zkHelper.delete("/consumers/test_consumer_group/offsets"); // zkHelper.delete("/consumers/test_consumer_group"); } catch (Exception e) { System.out.println("Error deleting test data on zookeeper"); e.printStackTrace(System.out); } try { kafka.stop(); } catch (IOException e) { System.out.println("Error stopping local kafka server"); e.printStackTrace(System.out); } } }