package eu.dnetlib.stat.zmq;

import javax.annotation.Resource;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import akka.actor.ActorRef;
import akka.actor.Actors;

import eu.dnetlib.stat.StatEmitter;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class ZmqEmitterActorTest {

	@Resource
	private StatEmitter emitter;

	@Before
	public void setUp() throws Exception {
	}

	@Test
	public void testEmit() throws InterruptedException {

		//		emitter.emit("key", "value; stop");

		for (int i = 0; i < 10000000; i++) {
			emitter.emit("key", "value; " + i);
			//Thread.sleep(1000);
		}
		emitter.emit("key", "value; stop");
		System.out.println("waiting " + ZmqEmitterActor.current);
		Thread.sleep(15000);
		System.out.println("finishing " + ZmqEmitterActor.current);
	}

	@Test
	public void testActor() throws InterruptedException {
		ActorRef actor = Actors.actorOf(MyActor.class).start();
		for (int i = 0; i < 10000000; i++) {
//			System.out.println(MyActor.queue);
			actor.sendOneWay("Hello " + i);
		}
		System.out.println("waiting to finish");
		Thread.sleep(3000);

	}
}
