package omq.test.event; import static org.junit.Assert.assertEquals; import java.util.Arrays; import java.util.Collection; import java.util.Properties; import omq.common.broker.Broker; import omq.common.util.ParameterQueue; import omq.common.util.Serializer; import org.junit.After; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; /** * * @author Sergi Toda * */ @RunWith(value = Parameterized.class) public class MessageTest { private static final String NAME = "message_event_test"; private static Broker broker; private static Message serverProxy; private static MessageImpl clientM1; private static MessageImpl clientM2; public MessageTest(String type) throws Exception { Properties env = new Properties(); env.setProperty(ParameterQueue.USER_NAME, "guest"); env.setProperty(ParameterQueue.USER_PASS, "guest"); // Set host info of rabbimq (where it is) env.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1"); env.setProperty(ParameterQueue.RABBIT_PORT, "5672"); env.setProperty(ParameterQueue.DURABLE_QUEUE, "false"); env.setProperty(ParameterQueue.PROXY_SERIALIZER, type); env.setProperty(ParameterQueue.ENABLE_COMPRESSION, "false"); // Set info about where the message will be sent env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange"); // Set info about the queue & the exchange where the ResponseListener // will listen to. env.setProperty(ParameterQueue.RPC_REPLY_QUEUE, "reply_queue"); broker = new Broker(env); serverProxy = broker.lookupMulti(NAME, Message.class); } @Parameters public static Collection data() { Object[][] data = new Object[][] { { Serializer.JAVA }, { Serializer.GSON }, { Serializer.KRYO } }; return Arrays.asList(data); } @BeforeClass public static void client() throws Exception { Properties env = new Properties(); env.setProperty(ParameterQueue.USER_NAME, "guest"); env.setProperty(ParameterQueue.USER_PASS, "guest"); // Get host info of rabbimq (where it is) env.setProperty(ParameterQueue.RABBIT_HOST, "127.0.0.1"); env.setProperty(ParameterQueue.RABBIT_PORT, "5672"); env.setProperty(ParameterQueue.DURABLE_QUEUE, "false"); env.setProperty(ParameterQueue.ENABLE_COMPRESSION, "false"); // Set info about where the message will be sent env.setProperty(ParameterQueue.RPC_EXCHANGE, "rpc_exchange"); env.setProperty(ParameterQueue.RETRY_TIME_CONNECTION, "2000"); Broker broker = new Broker(env); clientM1 = new MessageImpl(); broker.bind(NAME, clientM1); Broker broker2 = new Broker(env); clientM2 = new MessageImpl(); broker2.bind(NAME, clientM2); } @After public void stop() throws Exception { broker.stopBroker(); } @Test public void test() throws Exception { String expected = "Hello"; serverProxy.setMessage(expected); Thread.sleep(200); assertEquals(expected, clientM1.getMessage()); assertEquals(expected, clientM2.getMessage()); serverProxy.setMessage(""); Thread.sleep(200); } }