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(); } }
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(); }
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(); } }