package org.act.tstream.message.zmq;
import java.util.HashMap;
import java.util.Map;
import org.apache.log4j.Logger;
import backtype.storm.Config;
public class ZmqUnitTest {
private static final Logger LOG = Logger.getLogger(ZmqUnitTest.class);
private static int port = 6700;
private static int task = 1;
private static String context_class_name = "org.act.tstream.message.zeroMq.MQContext";
private static Map storm_conf = new HashMap<Object, Object>();
static {
storm_conf.put(Config.STORM_MESSAGING_TRANSPORT, context_class_name);
}
/**
* This is only can be test under linux
*/
// @Test
// public void test_basic() {
// System.out
// .println("!!!!!!!!!!!!!!!!!Start basic test!!!!!!!!!!!!!!!!!");
// String req_msg = "Aloha is the most Hawaiian word.";
//
// IContext context = TransportFactory.makeContext(storm_conf);
// IConnection server = null;
// IConnection client = null;
//
// server = context.bind(null, port);
//
// WaitStrategy waitStrategy = (WaitStrategy) Utils
// .newInstance((String) storm_conf
// .get(Config.TOPOLOGY_DISRUPTOR_WAIT_STRATEGY));
// DisruptorQueue recvQueue = new DisruptorQueue(
// new SingleThreadedClaimStrategy(1024), waitStrategy);
// server.registerQueue(recvQueue);
//
// client = context.connect(null, "localhost", port);
//
// List<TaskMessage> list = new ArrayList<TaskMessage>();
// TaskMessage message = new TaskMessage(task, req_msg.getBytes());
// list.add(message);
//
// client.send(list);
//
// TaskMessage recv = server.recv(0);
// Assert.assertEquals(req_msg, new String(recv.message()));
//
// System.out.println("!!!!!!!!!!!!!!!!!!Test one time!!!!!!!!!!!!!!!!!");
//
// server.close();
// client.close();
// context.term();
//
// System.out
// .println("!!!!!!!!!!!!!!!!!!!!End basic test!!!!!!!!!!!!!!!!!!!");
// }
//
// public String setupLargMsg() {
// StringBuilder sb = new StringBuilder();
// for (int i = 0; i < Short.MAX_VALUE * 10; i++) {
// sb.append("Aloha is the most Hawaiian word.").append(i);
// }
//
// return sb.toString();
// }
//
// @Test
// public void test_large_msg() {
// System.out.println("!!!!!!!!!!start larget message test!!!!!!!!");
// String req_msg = setupLargMsg();
// System.out.println("!!!!Finish batch data, size:" + req_msg.length()
// + "!!!!");
//
// IContext context = TransportFactory.makeContext(storm_conf);
// IConnection server = null;
// IConnection client = null;
//
// server = context.bind(null, port);
//
// WaitStrategy waitStrategy = (WaitStrategy) Utils
// .newInstance((String) storm_conf
// .get(Config.TOPOLOGY_DISRUPTOR_WAIT_STRATEGY));
// DisruptorQueue recvQueue = new DisruptorQueue(
// new SingleThreadedClaimStrategy(1024), waitStrategy);
// server.registerQueue(recvQueue);
//
// client = context.connect(null, "localhost", port);
//
// List<TaskMessage> list = new ArrayList<TaskMessage>();
// TaskMessage message = new TaskMessage(task, req_msg.getBytes());
// list.add(message);
//
// client.send(list);
//
// TaskMessage recv = server.recv(0);
// Assert.assertEquals(req_msg, new String(recv.message()));
//
// server.close();
// client.close();
// context.term();
// System.out.println("!!!!!!!!!!End larget message test!!!!!!!!");
// }
//
// @Test
// public void test_server_delay() throws InterruptedException {
// System.out.println("!!!!!!!!!!Start delay message test!!!!!!!!");
// String req_msg = setupLargMsg();
//
// IContext context = TransportFactory.makeContext(storm_conf);
// IConnection server = null;
// IConnection client = null;
//
// server = context.bind(null, port);
//
// WaitStrategy waitStrategy = (WaitStrategy) Utils
// .newInstance((String) storm_conf
// .get(Config.TOPOLOGY_DISRUPTOR_WAIT_STRATEGY));
// DisruptorQueue recvQueue = new DisruptorQueue(
// new SingleThreadedClaimStrategy(1024), waitStrategy);
// server.registerQueue(recvQueue);
//
// client = context.connect(null, "localhost", port);
//
// List<TaskMessage> list = new ArrayList<TaskMessage>();
// TaskMessage message = new TaskMessage(task, req_msg.getBytes());
// list.add(message);
//
// client.send(list);
// Thread.sleep(1000);
//
// TaskMessage recv = server.recv(0);
// Assert.assertEquals(req_msg, new String(recv.message()));
//
// server.close();
// client.close();
// context.term();
// System.out.println("!!!!!!!!!!End delay message test!!!!!!!!");
// }
//
// @Test
// public void test_batch() {
// System.out.println("!!!!!!!!!!Start batch message test!!!!!!!!");
//
// IContext context = TransportFactory.makeContext(storm_conf);
// final IConnection server = context.bind(null, port);
// IConnection client = null;
//
// WaitStrategy waitStrategy = (WaitStrategy) Utils
// .newInstance((String) storm_conf
// .get(Config.TOPOLOGY_DISRUPTOR_WAIT_STRATEGY));
// DisruptorQueue recvQueue = new DisruptorQueue(
// new SingleThreadedClaimStrategy(1024), waitStrategy);
// server.registerQueue(recvQueue);
//
// client = context.connect(null, "localhost", port);
//
// final int base = 100000;
//
// List<TaskMessage> list = new ArrayList<TaskMessage>();
//
// client.send(list);
// for (int i = 1; i < Short.MAX_VALUE; i++) {
//
// String req_msg = String.valueOf(i + base);
//
// TaskMessage message = new TaskMessage(task, req_msg.getBytes());
// list.add(message);
//
// }
//
// client.send(list);
//
// System.out.println("Finish Send ");
//
// for (int i = 1; i < Short.MAX_VALUE; i++) {
// TaskMessage message = server.recv(0);
//
// Assert.assertEquals(String.valueOf(i + base),
// new String(message.message()));
//
// if (i % 1000 == 0) {
// System.out.println("Receive " + i);
// }
// }
//
// System.out.println("Finish Receive ");
//
// client.close();
// server.close();
// context.term();
// System.out.println("!!!!!!!!!!End batch message test!!!!!!!!");
// }
//
// @Test
// public void test_client_reboot() throws InterruptedException {
// System.out.println("!!!!!!!!!!Start client reboot test!!!!!!!!");
// String req_msg = setupLargMsg();
//
// IContext context = TransportFactory.makeContext(storm_conf);
// IConnection server = null;
// IConnection client = null;
//
// server = context.bind(null, port);
//
// WaitStrategy waitStrategy = (WaitStrategy) Utils
// .newInstance((String) storm_conf
// .get(Config.TOPOLOGY_DISRUPTOR_WAIT_STRATEGY));
// DisruptorQueue recvQueue = new DisruptorQueue(
// new SingleThreadedClaimStrategy(1024), waitStrategy);
// server.registerQueue(recvQueue);
//
// client = context.connect(null, "localhost", port);
//
// List<TaskMessage> list = new ArrayList<TaskMessage>();
// TaskMessage message = new TaskMessage(task, req_msg.getBytes());
// list.add(message);
//
// client.send(list);
//
// TaskMessage recv = server.recv(0);
// Assert.assertEquals(req_msg, new String(recv.message()));
//
// client.close();
// IConnection client2 = context.connect(null, "localhost", port);
// System.out.println("!!!!!!! restart client !!!!!!!!!!");
//
// client2.send(list);
// Thread.sleep(1000);
//
// TaskMessage recv2 = server.recv(0);
// Assert.assertEquals(req_msg, new String(recv2.message()));
//
// client2.close();
// server.close();
// context.term();
// System.out.println("!!!!!!!!!!End client reboot test!!!!!!!!");
// }
//
// @Test
// public void test_server_reboot() throws InterruptedException {
// System.out.println("!!!!!!!!!!Start server reboot test!!!!!!!!");
// String req_msg = setupLargMsg();
//
// IContext context = TransportFactory.makeContext(storm_conf);
// IConnection server = null;
// IConnection client = null;
//
// server = context.bind(null, port);
//
// WaitStrategy waitStrategy = (WaitStrategy) Utils
// .newInstance((String) storm_conf
// .get(Config.TOPOLOGY_DISRUPTOR_WAIT_STRATEGY));
// DisruptorQueue recvQueue = new DisruptorQueue(
// new SingleThreadedClaimStrategy(1024), waitStrategy);
// server.registerQueue(recvQueue);
//
// client = context.connect(null, "localhost", port);
//
// List<TaskMessage> list = new ArrayList<TaskMessage>();
// TaskMessage message = new TaskMessage(task, req_msg.getBytes());
// list.add(message);
//
// client.send(list);
//
// TaskMessage recv = server.recv(0);
// Assert.assertEquals(req_msg, new String(recv.message()));
//
// server.close();
//
// client.send(list);
// System.out.println("!!!!!!!! shutdow server and sleep 30s !!!!!");
// Thread.sleep(30000);
//
// IConnection server2 = context.bind(null, port);
// server2.registerQueue(recvQueue);
// System.out.println("!!!!!!!!!!!!!!!!!!!! restart server !!!!!!!!!!!");
//
// TaskMessage recv2 = server2.recv(0);
// Assert.assertEquals(req_msg, new String(recv2.message()));
//
// client.close();
// server2.close();
// context.term();
// System.out.println("!!!!!!!!!!End server reboot test!!!!!!!!");
// }
}