Пример #1
0
        static void Main(string[] args)
        {
            TestKit     testKit     = new TestKit();
            ActorSystem actorSystem = testKit.Sys;

            using (actorSystem)
            {
                // TestKit-based probe which allows sending, reception and reply.
                TestProbe probe       = testKit.CreateTestProbe("test-probe");
                IActorRef deviceActor = actorSystem.ActorOf(Device.Props("group", "device"));

                deviceActor.Tell(new RecordTemperature(requestId: 1, value: 24.0), probe.Ref);
                probe.ExpectMsg <TemperatureRecorded>(s => s.RequestId == 1);

                deviceActor.Tell(new ReadTemperature(requestId: 2), probe.Ref);
                RespondTemperature response1 = probe.ExpectMsg <RespondTemperature>();
                response1.RequestId.Should().Be(2);
                response1.Value.Should().Be(24.0);

                deviceActor.Tell(new RecordTemperature(requestId: 3, value: 55.0), probe.Ref);
                probe.ExpectMsg <TemperatureRecorded>(s => s.RequestId == 3);

                deviceActor.Tell(new ReadTemperature(requestId: 4), probe.Ref);
                RespondTemperature response2 = probe.ExpectMsg <RespondTemperature>();
                response2.RequestId.Should().Be(4);
                response2.Value.Should().Be(55.0);
                Console.WriteLine("UserMessage: App is finished.");
                // Exit the system after ENTER is pressed
                Console.ReadLine();
            }
        }
Пример #2
0
        public void Device_actor_must_reply_with_empty_reading_if_no_temperature_is_known()
        {
            var probe       = CreateTestProbe();
            var deviceActor = Sys.ActorOf(Device.Props("group", "device"));

            deviceActor.Tell(new ReadTemperature(requestId: 42), probe.Ref);
            RespondTemperature response = probe.ExpectMsg <RespondTemperature>();

            response.RequestId.ShouldBeEqualTo(42);
            response.Value.ShouldBeNull();
        }
Пример #3
0
        static void Main(string[] args)
        {
            TestKit     testKit     = new TestKit();
            ActorSystem actorSystem = testKit.Sys;

            using (actorSystem)
            {
                // TestKit-based probe which allows sending, reception and reply.
                TestProbe probe       = testKit.CreateTestProbe("test-probe");
                IActorRef deviceActor = actorSystem.ActorOf(Device.Props("group", "device"));
                IActorRef probeRef    = probe.Ref;
                deviceActor.Tell(new MainDevice.ReadTemperature(requestId: 42), probeRef);
                RespondTemperature response = probe.ExpectMsg <RespondTemperature>();
                response.RequestId.Should().Be(42);
                response.Value.Should().BeNull();
                Console.WriteLine("UserMessage: App is finished.");
                // Exit the system after ENTER is pressed
                Console.ReadLine();
            }
        }