import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-
+/**
+ *
+ * @author michal.polkorab
+ *
+ */
public class ScenarioHandler extends Thread {
private static final Logger LOGGER = LoggerFactory.getLogger(ScenarioHandler.class);
private Stack<ClientEvent> scenario;
private BlockingQueue<byte[]> ofMsg;
private ChannelHandlerContext ctx;
+ private int eventNumber;
/**
*
public void run() {
int freezeCounter = 0;
while (!scenario.isEmpty()) {
+ LOGGER.debug("Running event #" + eventNumber);
ClientEvent peek = scenario.peek();
if (peek instanceof WaitForMessageEvent) {
LOGGER.debug("WaitForMessageEvent");
}
if (peek.eventExecuted()) {
scenario.pop();
+ eventNumber++;
freezeCounter = 0;
} else {
freezeCounter++;
this.notify();
}
}
-
+
+ /**
+ * @return true if scenario is done / empty
+ */
public boolean isEmpty() {
return scenario.isEmpty();
}
+ /**
+ * @return scenario
+ */
public Stack<ClientEvent> getScenario() {
return scenario;
}
+ /**
+ * @param scenario scenario filled with desired events
+ */
public void setScenario(Stack<ClientEvent> scenario) {
this.scenario = scenario;
}
+ /**
+ * @param ctx context which will be used for sending messages (SendEvents)
+ */
public void setCtx(ChannelHandlerContext ctx) {
this.ctx = ctx;
}
+ /**
+ * @param message received message that is compared to expected message
+ */
public void addOfMsg(byte[] message) {
ofMsg.add(message);
}