Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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());
        }