public void ReturnNoBuildingIdsWhenNewlyCreated() { var probe = CreateTestProbe(); var manager = Sys.ActorOf(BuildingsManager.Props()); manager.Tell(new RequestBuildingIds(1), probe.Ref); var received = probe.ExpectMsg <RespondBuildingIds>(); Assert.Equal(1, received.RequestId); Assert.Empty(received.Ids); }
public void RegisterNewBuildingWhenDoesNotAlreadyExist() { var probe = CreateTestProbe(); var manager = Sys.ActorOf(BuildingsManager.Props()); manager.Tell(new RequestRegisterDevice(1, "a", "42"), probe.Ref); probe.ExpectMsg <RespondDeviceRegistered>(x => x.RequestId == 1); manager.Tell(new RequestBuildingIds(2), probe.Ref); var received = probe.ExpectMsg <RespondBuildingIds>(); Assert.Equal(2, received.RequestId); Assert.Equal(1, received.Ids.Count); Assert.Contains("a", received.Ids); }
public async Task ReturnBuildingIdsOnlyFromActiveActors() { var probe = CreateTestProbe(); var manager = Sys.ActorOf(BuildingsManager.Props(), "BuildingsManager"); manager.Tell(new RequestRegisterDevice(1, "a", "42")); manager.Tell(new RequestRegisterDevice(2, "b", "90")); // Stop one of the actors var firstBuilding = await Sys.ActorSelection("akka://test/user/BuildingsManager/building-a") .ResolveOne(TimeSpan.FromSeconds(3)).ConfigureAwait(false); probe.Watch(firstBuilding); firstBuilding.Tell(PoisonPill.Instance); probe.ExpectTerminated(firstBuilding); manager.Tell(new RequestBuildingIds(1), probe.Ref); var received = probe.ExpectMsg <RespondBuildingIds>(); Assert.Equal(1, received.RequestId); Assert.Equal(1, received.Ids.Count); Assert.Equal("b", received.Ids.First()); }