예제 #1
0
        public TestBase() : base(AkkaConfig.Config)
        {
            //Create mocks
            TestProbeCreatorMock = new Mock <ITestProbeCreator>();

            // Create objects passed into sut constructor
            TestProbeCreator = TestProbeCreatorMock.Object;
            Message1         = new ExampleMessage1();
            Type1            = typeof(ExampleMessage1);
            Reply1           = TestHelper.Generate <object>();
            Message2         = new ExampleMessage2();
            Type2            = typeof(ExampleMessage2);
            Reply2           = TestHelper.Generate <object>();
            Handlers         = new Dictionary <Type, Func <object, object> >
            {
                { Type1, o => Reply1 },
                { Type2, o => Reply2 }
            };

            //Create objects returned by mocks
            TestProbe = CreateTestProbe();

            // Set up mocks
            TestProbeCreatorMock
            .SetupSequence(creator => creator.Create(this))
            .Returns(TestProbe)
            .Returns(CreateTestProbe());
        }
예제 #2
0
        public void TestProbeChildActor_TestProbe_ReturnsSameResultOnEveryCall()
        {
            //arrange
            TestActorRef <TestProbeChildActor> sut = CreateTestProbeChildActorWithoutSupervisorStrategy();

            //act
            global::Akka.TestKit.TestProbe result = sut.UnderlyingActor.TestProbe;

            //assert
            result.Should().BeSameAs(sut.UnderlyingActor.TestProbe);
        }
예제 #3
0
        public void TestProbeChildActor_TestProbe_TestProbeIsForwardedMessages()
        {
            //arrange
            TestActorRef <TestProbeChildActor> sut = CreateTestProbeChildActorWithoutSupervisorStrategy();
            object message = TestHelper.Generate <object>();

            global::Akka.TestKit.TestProbe sender = CreateTestProbe();

            //act
            global::Akka.TestKit.TestProbe result = sut.UnderlyingActor.TestProbe;

            //assert
            sut.Tell(message, sender);
            result.ExpectMsgFrom(sender, message);
        }
예제 #4
0
        public TestBase() : base(AkkaConfig.Config)
        {
            //Create mocks
            TestProbeCreatorMock = new Mock <ITestProbeCreator>();
            ExceptionWaiterMock  = new Mock <IWaiter>();

            // Create objects passed into sut constructor
            TestProbeCreator = TestProbeCreatorMock.Object;
            ExceptionWaiter  = ExceptionWaiterMock.Object;
            ParentMessage1   = new ExampleMessage1();
            ParentType1      = ParentMessage1.GetType();
            ParentReply1     = TestHelper.Generate <object>();
            ParentMessage2   = new ExampleMessage2();
            ParentType2      = ParentMessage2.GetType();
            ParentReply2     = TestHelper.Generate <object>();
            Handlers         = new Dictionary <Type, Func <object, object> >
            {
                { ParentType1, o => ParentReply1 },
                { ParentType2, o => ParentReply2 }
            };
            StopChildException    = new ArithmeticException(TestHelper.GenerateString());
            RestartChildException = new DivideByZeroException(TestHelper.GenerateString());
            Decider = (e) =>
            {
                if (e.GetType() == StopChildException.GetType())
                {
                    return(Directive.Stop);
                }
                if (e.GetType() == RestartChildException.GetType())
                {
                    return(Directive.Restart);
                }
                return(Directive.Escalate);
            };

            //Create objects returned by mocks
            TestProbe = CreateTestProbe();

            // Set up mocks
            TestProbeCreatorMock
            .SetupSequence(creator => creator.Create(this))
            .Returns(TestProbe)
            .Returns(CreateTestProbe());
        }