package org.darkphoenixs.kafka.producer; import org.darkphoenixs.kafka.core.KafkaDestination; import org.darkphoenixs.kafka.core.KafkaMessageTemplate; import org.darkphoenixs.mq.exception.MQException; import org.junit.Assert; import org.junit.Test; public class MessageProducerTest { @Test public void test() throws Exception { MessageProducer<Integer, String> producer = new MessageProducer<Integer, String>(); Assert.assertNull(producer.getDestination()); KafkaDestination destination = new KafkaDestination("TempQueue"); producer.setDestination(destination); Assert.assertNull(producer.getMessageTemplate()); KafkaMessageTemplateImpl messageTemplate = new KafkaMessageTemplateImpl(); producer.setMessageTemplate(messageTemplate); Assert.assertEquals("TempQueue", producer.getProducerKey()); producer.send("test"); producer.sendWithKey(1, "test"); KafkaMessageTemplateImpl2 messageTemplate2 = new KafkaMessageTemplateImpl2(); producer.setMessageTemplate(messageTemplate2); try { producer.send("err"); } catch (Exception e) { Assert.assertTrue(e instanceof MQException); } try { producer.sendWithKey(2, "err"); } catch (Exception e) { Assert.assertTrue(e instanceof MQException); } producer.setProducerKey("QUEUE.TEST"); Assert.assertEquals("QUEUE.TEST", producer.getProducerKey()); } private class KafkaMessageTemplateImpl extends KafkaMessageTemplate<Integer, String> { @Override public void convertAndSend(KafkaDestination destination, String message) throws MQException { System.out.println(destination + ":" + message); } @Override public void convertAndSendWithKey(KafkaDestination destination, Integer key, String message) throws MQException { System.out.println(destination + ":" + key + ":" + message); } } private class KafkaMessageTemplateImpl2 extends KafkaMessageTemplate<Integer, String> { @Override public void convertAndSend(KafkaDestination destination, String message) throws MQException { throw new MQException("test"); } @Override public void convertAndSendWithKey(KafkaDestination destination, Integer key, String message) throws MQException { throw new MQException("test"); } } }