Example #1
0
        public void can_send()
        {
            //Arrange
            var mockActor = MockFactory.WhenActorReceives <PingMessage>()
                            .ItShouldTellSender(new PongMessage())
                            .CreateMockActorRef <MockActor>();

            var mockActor1 = MockFactory.WhenActorReceives <PingMessage>()
                             .ItShouldForwardItTo <MockActor>(new PingMessage())
                             .CreateMockActorRef <MockActor1>();

            var mockActor2 = MockFactory.WhenActorReceives <PingMessage>()
                             .ItShouldForwardItTo <MockActor1>(new PingMessage())
                             .CreateMockActor <MockActor2>();

            var mockActor3 = MockFactory.WhenActorReceives <PingMessage>()
                             .ItShouldForwardItTo <MockActor2>(new PingMessage())
                             .CreateMockActor <MockActor3>();

            var mockActor4 =
                MockFactory.WhenActorReceives <PingMessage>()
                .ItShouldForwardItTo <MockActor3>(new PingMessage())
                .CreateMockActorRef <MockActor4>();

            mockActor4.Tell(new PingMessage());

            MockFactory.ExpectMockActor(mockActor4).ToHaveReceivedMessage <PingMessage>();
            MockFactory.ExpectMockActor(mockActor3).ToHaveReceivedMessage <PingMessage>();
            MockFactory.ExpectMockActor(mockActor2).ToHaveReceivedMessage <PingMessage>();
            MockFactory.ExpectMockActor(mockActor1).ToHaveReceivedMessage <PingMessage>();
            MockFactory.ExpectMockActor(mockActor).ToHaveReceivedMessage <PingMessage>();

            AwaitAssert(() => ExpectMsg <PongMessage>(), TimeSpan.FromMinutes(1));
        }
Example #2
0
        public void actor_mocking0()
        {
            //Arrange
            // mockFactory = new AkkaMockFactory(new ContainerBuilder().Build(), Sys);
            var pingActor     = MockFactory.WhenActorReceives <PingMessage>().ItShouldTellSender(new PongMessage()).SetUpMockActor <MockActor>();
            var pingPongActor = MockFactory.WhenActorReceives <PingMessage>().ItShouldForwardItToChildActor(typeof(MockActor), new PingMessage()).WhenActorInitializes().ItShouldCreateChildActor(pingActor).CreateMockActorRef <MockActor2 <MockActor> >();

            //Act
            pingPongActor.Tell(new PingMessage());

            //Assert
            MockFactory.ExpectMockActor(pingActor).WhoseParentIs(pingPongActor).NotToHaveReceivedMessage <PongMessage>(20000);
            MockFactory.ExpectMockActor(pingActor).WhoseParentIs(pingPongActor).ToHaveReceivedMessage <PingMessage>(20000);
        }
Example #3
0
        //  [ExpectedException]
        public void actor_mocking012()
        {
            //Arrange
            //   mockFactory = new AkkaMockFactory(new ContainerBuilder().Build(), Sys);
            var pingActor     = MockFactory.WhenActorReceives <PingMessage>().ItShouldTellSender(new PongMessage()).CreateMockActor <MockActor>();
            var pingPongActor = MockFactory.WhenActorReceives <PingMessage>().ItShouldForwardItToChildActor(typeof(MockActor), new PingMessage()).CreateMockActorRef <MockActor2 <MockActor> >();

            //Act
            pingPongActor.Tell(new PingMessage());

            //Assert
            MockFactory.ExpectMockActor(pingActor).WhoseParentIs(pingPongActor).NotToHaveReceivedMessage <PongMessage>();
            Xunit.Assert.Throws <Exception>(() => MockFactory.ExpectMockActor(pingActor).WhoseParentIs(pingPongActor).ToHaveReceivedMessage <PingMessage>());
        }
Example #4
0
        public void actor_mocking014()
        {
            //Arrange
            //  mockFactory = new AkkaMockFactory(new ContainerBuilder().Build(), Sys);
            var pingActor     = MockFactory.WhenActorReceives <PingMessage>().ItShouldTellSender(new PongMessage()).CreateMockActor <MockActor>();
            var pingPongActor = MockFactory.WhenActorReceives <PingMessage>().ItShouldTellAnotherActor(typeof(MockActor), new PingMessage()).CreateMockActorRef <MockActor2 <MockActor> >();

            //Act
            pingPongActor.Tell(new PingMessage());

            //Assert
            MockFactory.ExpectMockActor(pingActor).NotToHaveReceivedMessage <PongMessage>();
            MockFactory.ExpectMockActor(pingActor).ToHaveReceivedMessage <PingMessage>();
        }
Example #5
0
        public void actor_mocking()
        {
            //Arrange
            // mockFactory = new AkkaMockFactory(new ContainerBuilder().Build(), Sys);
            var pingActor     = MockFactory.WhenActorReceives <PingMessage>().ItShouldTellSender(new PongMessage()).CreateMockActorRef <MockActor>();
            var pingPongActor = MockFactory.WhenActorReceives <PingMessage>().ItShouldForwardItTo(pingActor, new PingMessage()).CreateMockActorRef <MockActor2>();

            //Act
            pingPongActor.Tell(new PingMessage());

            //Assert
            AwaitAssert(() => ExpectMsg <PongMessage>(), TimeSpan.FromSeconds(5));
            MockFactory.ExpectMockActor(pingActor).NotToHaveReceivedMessage <PongMessage>();

            MockFactory.ExpectMockActor(pingActor).ToHaveReceivedMessage <PingMessage>();
        }
Example #6
0
        public void stash_test2()
        {
            //Arrange
            var pingPongActor = MockFactory
                                .WhenActorReceives <PingMessage>()
                                .ItShouldDo((a) => a.Stash.Stash())
                                .CreateMockActorRef <MockActor2>();

            //Act
            pingPongActor.Tell(new PingMessage());

            System.Threading.Thread.Sleep(TimeSpan.FromSeconds(3));
            MockFactory.ClearAllMessages();

            //Assert
            Assert.Throws <Exception>(() => MockFactory.ExpectMockActor(pingPongActor).ToHaveReceivedMessage <PingMessage>());
        }
Example #7
0
        public void it_should_do_a_pong1()
        {
            //Arrange
            //mockFactory = new AkkaMockFactory(DependencyResolver.GetContainer(), Sys);
            MockFactory.WhenActorReceives <PingMessage>().ItShouldTellSender(new PongMessage()).CreateMockActor <MockActor>();

            MockFactory.CreateActor <PingPongActor <MockActor> >();

            //Act
            MockFactory.LocateActor(typeof(PingPongActor <>)).Tell(new PingMessage());

            //Assert
            AwaitAssert(() => ExpectMsg <PingMessageCompleted>(), TimeSpan.FromSeconds(5));
            AwaitAssert(() => ExpectMsg <PongMessage>(), TimeSpan.FromSeconds(5));

            AwaitAssert(() => MockFactory.ExpectMockActor(typeof(MockActor)).WhoseParentIs(MockFactory.LocateActor(typeof(PingPongActor <>))).ToHaveReceivedMessage <PingMessage>(), TimeSpan.FromSeconds(5));
        }
Example #8
0
        public void Supervision()
        {
            //Arrange
            //  mockFactory = new AkkaMockFactory(new ContainerBuilder().Build(), Sys);
            var called        = false;
            var pingPongActor = MockFactory
                                .WhenActorReceives <PingMessage>().ItShouldTellSender(new PongMessage())
                                .WhenActorReceives <PingMessage>().ItShouldDo((actorAccess) =>
            {
                called = true;
            }).CreateMockActorRef <MockActor2>();

            //Act
            pingPongActor.Tell(new PingMessage());

            //Assert
            AwaitCondition(() => called, TimeSpan.FromMinutes(1));
            MockFactory.ExpectMockActor(pingPongActor).ToHaveReceivedMessage <PingMessage>();
        }
Example #9
0
        public void stash_test()
        {
            //Arrange
            var pingPongActor = MockFactory
                                .WhenActorReceives <PingMessage>()
                                .ItShouldDo((a) => a.Stash.Stash())
                                .CreateMockActorRef <MockActor2>();

            //Act
            pingPongActor.Tell(new PingMessage());

            //Assert
            MockFactory.ExpectMockActor(pingPongActor).ToHaveReceivedMessage <PingMessage>();

            //Act
            pingPongActor.Tell(new PingMessage());

            //Assert
            MockFactory.ExpectMockActor(pingPongActor).ToHaveReceivedMessage <PingMessage>();
        }
Example #10
0
        public void ItShouldForwardItToAnotherActor()
        {
            //Arrange

            var mock1 = MockFactory
                        .WhenActorReceives <PingMessage>()
                        .ItShouldForwardItTo(typeof(MockActor2), new PingMessage())
                        .CreateMockActorRef <MockActor1>();

            var mock2 = MockFactory
                        .WhenActorReceives <PingMessage>()
                        .ItShouldTellSender(new PongMessage())
                        .CreateMockActorRef <MockActor2>();

            //Act
            mock1.Tell(new PingMessage());

            AwaitAssert(() => ExpectMsg <PongMessage>(), TimeSpan.FromSeconds(5));
            MockFactory.ExpectMockActor(mock2).ToHaveReceivedMessage <PingMessage>();
        }
Example #11
0
        public void ItShouldTellAnotherActor3()
        {
            //Arrange
            var mock2 = MockFactory
                        .WhenActorReceives <PingMessage>()
                        .ItShouldTellSender(new PongMessage())
                        .CreateMockActor <MockActor2>();

            var mock1 = MockFactory
                        .WhenActorReceives <PingMessage>()
                        .ItShouldTellAnotherActor(mock2, new PingMessage())
                        .CreateMockActorRef <MockActor1>();

            //Act
            mock1.Tell(new PingMessage());

            // AwaitAssert(() => ExpectMsg<PongMessage>(), TimeSpan.FromSeconds(5));
            Assert.Throws <TrueException>(() => AwaitAssert(() => ExpectMsg <PongMessage>(), TimeSpan.FromSeconds(5)));
            MockFactory.ExpectMockActor(mock2).ToHaveReceivedMessage <PingMessage>();
        }
Example #12
0
        public void ItShouldTellItToChildActor2()
        {
            //Arrange

            var mock1 = MockFactory
                        .WhenActorInitializes()
                        .ItShouldCreateChildActor(typeof(MockActor2))
                        .WhenActorReceives <PingMessage>()
                        .ItShouldForwardItToChildActor(typeof(MockActor2), new PingMessage())
                        .CreateMockActorRef <MockActor1 <MockActor2> >();

            var mock2 = MockFactory
                        .WhenActorReceives <PingMessage>()
                        .ItShouldTellSender(new PongMessage())
                        .SetUpMockActor <MockActor2>();

            //Act
            mock1.Tell(new PingMessage());

            // mockFactory.JustWait();

            Assert.Throws <Exception>(() => MockFactory.ExpectMockActor(mock2).ToHaveReceivedMessage <PingMessage>());
        }
Example #13
0
        public void ItShouldTellItToChildActor()
        {
            //Arrange

            var mock2 = MockFactory
                        .WhenActorReceives <PingMessage>()
                        .ItShouldTellSender(new PongMessage())
                        .SetUpMockActor <MockActor2>();

            var mock1 = MockFactory
                        .WhenActorInitializes()
                        .ItShouldCreateChildActor(typeof(MockActor2))
                        .WhenActorReceives <PingMessage>()
                        .ItShouldTellItToChildActor(typeof(MockActor2), new PingMessage())
                        .CreateMockActorRef <MockActor1 <MockActor2> >();

            //Act
            mock1.Tell(new PingMessage());

            // mockFactory.JustWait();

            MockFactory.ExpectMockActor(mock2).WhoseParentIs(mock1).ToHaveReceivedMessage <PingMessage>();
        }
Example #14
0
        public void can_send_to_all_child_actors_2()
        {
            //Arrange
            var mockActor1 = MockFactory.WhenActorReceives <PingMessage1>().ItShouldTellSender(new PongMessage())
                             .SetUpMockActor <MockActor1>();

            var mockActor2 = MockFactory.WhenActorReceives <PingMessage2>().ItShouldTellSender(new PongMessage())
                             .SetUpMockActor <MockActor2>();

            var mockActor3 = MockFactory.WhenActorReceives <PingMessage3>().ItShouldTellSender(new PongMessage())
                             .SetUpMockActor <MockActor3>();

            var mockActor4 = MockFactory.WhenActorReceives <PingMessage4>().ItShouldTellSender(new PongMessage())
                             .SetUpMockActor <MockActor4>();

            var mockActor = MockFactory
                            .WhenActorInitializes().ItShouldCreateChildActor(typeof(MockActor1))
                            .WhenActorInitializes().ItShouldCreateChildActor(typeof(MockActor2))
                            .WhenActorInitializes().ItShouldCreateChildActor(typeof(MockActor3))
                            .WhenActorInitializes().ItShouldCreateChildActor(typeof(MockActor4))
                            .WhenActorReceives <PingMessage1>().ItShouldTellItToChildActor <MockActor1>(new PingMessage1())
                            .WhenActorReceives <PingMessage2>().ItShouldTellItToChildActor <MockActor2>(new PingMessage2())
                            .WhenActorReceives <PingMessage3>().ItShouldTellItToChildActor <MockActor3>(new PingMessage3())
                            .WhenActorReceives <PingMessage4>().ItShouldTellItToChildActor <MockActor4>(new PingMessage4())
                            .CreateMockActorRef <MockActor <MockActor1, MockActor2, MockActor3, MockActor4> >();

            //Act
            mockActor.Tell(new PingMessage1());
            // mockActor.Tell(new PingMessage2());
            mockActor.Tell(new PingMessage3());
            mockActor.Tell(new PingMessage4());

            MockFactory.ExpectMockActor(mockActor1).WhoseParentIs(mockActor).ToHaveReceivedMessage <PingMessage1>();
            MockFactory.ExpectMockActor(mockActor2).WhoseParentIs(mockActor).NotToHaveReceivedMessage <PingMessage2>();
            MockFactory.ExpectMockActor(mockActor3).WhoseParentIs(mockActor).ToHaveReceivedMessage <PingMessage3>();
            MockFactory.ExpectMockActor(mockActor4).WhoseParentIs(mockActor).ToHaveReceivedMessage <PingMessage4>();
        }