package com.leansoft.luxun.producer; import static org.junit.Assert.*; import java.util.Properties; import com.leansoft.luxun.broker.BrokerInfo; import com.leansoft.luxun.common.exception.NoBrokersForTopicException; import com.leansoft.luxun.producer.Producer; import com.leansoft.luxun.producer.ProducerConfig; import com.leansoft.luxun.producer.ProducerData; import com.leansoft.luxun.producer.ProducerPool; import org.easymock.EasyMock; import org.junit.Test; public class ProducerMethodsTest { @SuppressWarnings("unchecked") @Test public void producerThrowsNoBrokerException() { Properties props = new Properties(); props.put("broker.list", "placeholder"); ProducerConfig config = new ProducerConfig(props); IPartitioner<String> mockPartitioner = EasyMock.createMock(IPartitioner.class); ProducerPool<String> mockProducerPool = EasyMock.createMock(ProducerPool.class); BrokerInfo mockBrokerInfo = EasyMock.createMock(BrokerInfo.class); Producer<String, String> producer = new Producer<String, String>(config, mockPartitioner, mockProducerPool, false, mockBrokerInfo); try { ProducerData<String, String> producerData = new ProducerData<String, String>("the_topic", "the_datum"); producer.send(producerData); fail("Should have thrown a NoBrokersForTopicException."); } catch (NoBrokersForTopicException e) { assertTrue(e.getMessage().contains("the_topic")); } } }