public void ConfirmTemperatureUpdate() { var probe = CreateTestProbe(); var sensor = Sys.ActorOf(TemperatureSensor.Props("a", "1")); sensor.Tell(new RequestUpdateTemperature(42, 100), probe.Ref); probe.ExpectMsg <RespondTemperatureUpdated>(m => Assert.Equal(42, m.RequestId)); }
public void StartWithNoTemperature() { var probe = CreateTestProbe(); var sensor = Sys.ActorOf(TemperatureSensor.Props("a", "1")); sensor.Tell(new RequestTempeture(1), probe.Ref); var received = probe.ExpectMsg <RespondTempeture>(); Assert.Null(received.Temperature); }
public void RegisterSensor() { var probe = CreateTestProbe(); var sensor = Sys.ActorOf(TemperatureSensor.Props("a", "1")); sensor.Tell(new RequestRegisterTemperatureSensor(1, "a", "1"), probe.Ref); var received = probe.ExpectMsg <RespondSensorRegistered>(); Assert.Equal(1, received.RequestId); Assert.Equal(sensor, received.SensorReference); }
public void RespondWithNewTemperatureAfterTemperatureUpdate() { var probe = CreateTestProbe(); var sensor = Sys.ActorOf(TemperatureSensor.Props("a", "1")); sensor.Tell(new RequestUpdateTemperature(1, 12.4m)); sensor.Tell(new RequestTemperature(2), probe.Ref); var response = probe.ExpectMsg <RespondTemperature>(); Assert.Equal(2, response.RequestId); Assert.Equal(12.4m, response.Temperature); }
public void ReturnTemperatureReadingWhenRequested() { var probe = CreateTestProbe(); var sensor = Sys.ActorOf(TemperatureSensor.Props("a", "1")); sensor.Tell(new RequestMetadata(1), probe.Ref); var received = probe.ExpectMsg <ResponseMetadata>(); Assert.Equal(1, received.RequestId); Assert.Equal("a", received.Floor); Assert.Equal("1", received.SensorId); }
public void UpdateNewTemperature() { var probe = CreateTestProbe(); var sensor = Sys.ActorOf(TemperatureSensor.Props("a", "1")); sensor.Tell(new RequestUpdateTemperature(42, 100)); sensor.Tell(new RequestTemperature(1), probe.Ref); var received = probe.ExpectMsg <RespondTemperature>(); Assert.Equal(100, received.Temperature); Assert.Equal(1, received.RequestId); }
public void InitializeSensorMetaData() { var probe = CreateTestProbe(); var sensor = Sys.ActorOf(TemperatureSensor.Props("a", "1")); sensor.Tell(new RequestMetadata(1), probe.Ref); var received = probe.ExpectMsg <RespondMetadata>(); Assert.Equal(1, received.RequsteId); Assert.Equal("a", received.FloorId); Assert.Equal("1", received.SensorId); }
public void RegisterSensor() { var probe = CreateTestProbe(); var sensor = Sys.ActorOf(TemperatureSensor.Props("a", "1")); sensor.Tell(new RequestSensorRegister(43, "a", "1"), probe.Ref); probe.ExpectMsg <RespondSensorRegistered>((m) => { Assert.Equal(43, m.RequestId); Assert.Equal(sensor, m.SensorRef); }); }
public void NotRegisterSensorWhenIncorrectFloorId() { var probe = CreateTestProbe(); var eventStreamProbe = CreateTestProbe(); Sys.EventStream.Subscribe(eventStreamProbe, typeof(Akka.Event.UnhandledMessage)); var sensor = Sys.ActorOf(TemperatureSensor.Props("a", "1")); sensor.Tell(new RequestRegisterTemperatureSensor(1, "b", "1"), probe.Ref); probe.ExpectNoMsg(); var unhundle = eventStreamProbe.ExpectMsg <Akka.Event.UnhandledMessage>(); Assert.IsType <RequestRegisterTemperatureSensor>(unhundle.Message); }
public void NotRegisterSensorWhenSensorIdDoesntMatch() { var probe = CreateTestProbe(); var eventStreamProbe = CreateTestProbe(); Sys.EventStream.Subscribe(eventStreamProbe, typeof(Akka.Event.UnhandledMessage)); var sensor = Sys.ActorOf(TemperatureSensor.Props("a", "1")); sensor.Tell(new RequestSensorRegister(43, "a", "4"), probe.Ref); probe.ExpectNoMsg(); var unhandled = eventStreamProbe.ExpectMsg <Akka.Event.UnhandledMessage>(); Assert.IsType <RequestSensorRegister>(unhandled.Message); }
public void Confirm_Temperature_Got_Updated() { // Arrange var probe = CreateTestProbe(); var parameters = new { FloorId = "A", SensorId = "123", RequestId = 1, NewTemperature = new Temperature(100) }; var sensor = Sys.ActorOf(TemperatureSensor.Props(parameters.FloorId, parameters.SensorId)); // Act sensor.Tell(new TemperatureUpdateRequest(parameters.RequestId, parameters.NewTemperature), probe.Ref); var received = probe.ExpectMsg <TemperatureUpdateResponse>(); // Assert Assert.Equal(parameters.RequestId, received.RequestId); }
public void Start_With_No_Recorded_Temperature() { // Arrange var probe = CreateTestProbe(); var parameters = new { FloorId = "A", SensorId = "123", RequestId = 1 }; var sensor = Sys.ActorOf(TemperatureSensor.Props(parameters.FloorId, parameters.SensorId)); // Act sensor.Tell(new TemperatureRequest(parameters.RequestId), probe.Ref); var received = probe.ExpectMsg <TemperatureResponse>(); // Assert Assert.Null(received.Temperature); }
public void Register_Itself() { // Arrange var probe = CreateTestProbe(); var parameters = new { FloorId = "A", SensorId = "123", RequestId = 100 }; var sensor = Sys.ActorOf(TemperatureSensor.Props(parameters.FloorId, parameters.SensorId)); // Act sensor.Tell(new SensorRegistrationRequest(parameters.RequestId, parameters.FloorId, parameters.SensorId), probe.Ref); var received = probe.ExpectMsg <SensorRegistrationResponse>(); // Assert Assert.Equal(parameters.RequestId, received.RequestId); Assert.Equal(sensor, received.SensorReference); }
public void Update_Temperature_As_Requested() { // Arrange var probe = CreateTestProbe(); var parameters = new { FloorId = "A", SensorId = "123", UpdateRequestId = 1, RetrieveRequestId = 2, NewTemperature = new Temperature(100) }; var sensor = Sys.ActorOf(TemperatureSensor.Props(parameters.FloorId, parameters.SensorId)); // Act sensor.Tell(new TemperatureUpdateRequest(parameters.UpdateRequestId, parameters.NewTemperature), Akka.Actor.ActorRefs.NoSender); sensor.Tell(new TemperatureRequest(parameters.RetrieveRequestId), probe.Ref); var received = probe.ExpectMsg <TemperatureResponse>(); // Assert Assert.Equal(parameters.RetrieveRequestId, received.RequestId); Assert.Equal(parameters.NewTemperature, received.Temperature); }
public void Initialize_Sensor_MetaData() { // Arrange var probe = CreateTestProbe(); var parameters = new { FloorId = "A", SensorId = "123", RequestId = 1 }; var sensor = Sys.ActorOf(TemperatureSensor.Props(parameters.FloorId, parameters.SensorId)); // Act sensor.Tell(new MetadataRequest(parameters.RequestId), probe.Ref); var received = probe.ExpectMsg <MetadataResponse>(); // Assert Assert.Equal(parameters.RequestId, received.RequestId); Assert.Equal(parameters.FloorId, received.FloorId); Assert.Equal(parameters.SensorId, received.SensorId); }
public void Not_Register_Itself_When_Incorrect_Sensor() { // Arrange var probe = CreateTestProbe(); var eventStreamProbe = CreateTestProbe(); var parameters = new { FloorId = "A", SensorId = "123", RegisteredSensorId = "124", RequestId = 100 }; Sys.EventStream.Subscribe(eventStreamProbe, typeof(Akka.Event.UnhandledMessage)); var sensor = Sys.ActorOf(TemperatureSensor.Props(parameters.FloorId, parameters.SensorId)); // Act sensor.Tell(new SensorRegistrationRequest(parameters.RequestId, parameters.FloorId, parameters.RegisteredSensorId), probe.Ref); probe.ExpectNoMsg(); var unhandled = eventStreamProbe.ExpectMsg <Akka.Event.UnhandledMessage>(); // Assert Assert.IsType <SensorRegistrationRequest>(unhandled.Message); }