public void TestDispatcherStoppingFail() { //testing only the acks SimulatedActorSystem system = new SimulatedActorSystem(); Dispatcher dispatcher = new Dispatcher(system, 2); system.Spawn(dispatcher); TestClient client = new TestClient(); system.Spawn(client); dispatcher.Tell(new Stop()); dispatcher.Tell(new InitCommunication(client, 10)); while (client.ReceivedMessages.Count == 0) { system.RunFor(1); } Message initAckMessage = client.ReceivedMessages.Dequeue(); Assert.AreEqual(typeof(OperationFailed), initAckMessage.GetType()); OperationFailed initAck = (OperationFailed)initAckMessage; Assert.AreEqual(10, initAck.CommunicationId); // TODO run system until workers and dispatcher are stopped int endtime = system.currentTime + 20; system.RunUntil(endtime); Assert.AreEqual(system.currentTime, endtime + 1); }
static public void cleanup() { dispatcher_.Tell(new Stop()); int endtime = system_.currentTime + 13; system_.RunUntil(endtime); Assert.AreEqual(system_.currentTime, endtime + 1); }
public void TestCommunication() { //testing only the acks SimulatedActorSystem system = new SimulatedActorSystem(); Dispatcher dispatcher = new Dispatcher(system, 2); system.Spawn(dispatcher); TestClient client = new TestClient(); system.Spawn(client); // send request and run system until a response is received // communication id is chosen by clients dispatcher.Tell(new InitCommunication(client, 10)); while (client.ReceivedMessages.Count == 0) { system.RunFor(1); } Message initAckMessage = client.ReceivedMessages.Dequeue(); Assert.AreEqual(typeof(InitAck), initAckMessage.GetType()); InitAck initAck = (InitAck)initAckMessage; Assert.AreEqual(10, initAck.CommunicationId); SimulatedActor worker = initAck.Worker; initAck.Worker.Tell(new FinishCommunication(10)); while (client.ReceivedMessages.Count == 0) { system.RunFor(1); } Message finAckMessage = client.ReceivedMessages.Dequeue(); Assert.AreEqual(typeof(FinishAck), finAckMessage.GetType()); FinishAck finAck = (FinishAck)finAckMessage; Assert.AreEqual(10, finAck.CommunicationId); dispatcher.Tell(new Stop()); // TODO run system until workers and dispatcher are stopped int endtime = system.currentTime + 20; system.RunUntil(endtime); Assert.AreEqual(system.currentTime, endtime + 1); }
public void TestUnknownClientExceptionFinishCommunicationStopping() { //testing only the acks SimulatedActorSystem system = new SimulatedActorSystem(); Dispatcher dispatcher = new Dispatcher(system, 2); system.Spawn(dispatcher); TestClient client = new TestClient(); system.Spawn(client); dispatcher.Tell(new InitCommunication(client, 10)); while (client.ReceivedMessages.Count == 0) { system.RunFor(1); } Message initAckMessage = client.ReceivedMessages.Dequeue(); Assert.AreEqual(typeof(InitAck), initAckMessage.GetType()); InitAck initAck = (InitAck)initAckMessage; Assert.AreEqual(10, initAck.CommunicationId); SimulatedActor worker = initAck.Worker; dispatcher.Tell(new Stop()); int endtime = system.currentTime + 10; system.RunUntil(endtime); Assert.AreEqual(endtime + 1, system.currentTime); worker.Tell(new FinishCommunication(11)); while (client.ReceivedMessages.Count == 0) { system.RunFor(1); } }