Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 7
0
        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);
            });
        }
Esempio n. 9
0
        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);
        }
Esempio n. 11
0
        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);
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        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);
        }