public void TestFailedWait()
        {
            MockQuestion.Setup(x => x.RequestAs(It.IsAny <IActor>())).Returns(1);
            MockCondition.Setup(x => x.Evaluate(It.IsAny <int>())).Returns(false);

            Screenplayer.Invoking(actor => actor.AskingFor(ValueAfterWaiting.Until(MockQuestion.Object, MockCondition.Object).ForUpTo(0)))
            .Should().Throw <WaitingException <int> >(because: "the question should not satisfy the condition");
        }
        public void TestSuccessfulWait()
        {
            MockQuestion.Setup(x => x.RequestAs(It.IsAny <IActor>())).Returns(1);
            MockCondition.Setup(x => x.Evaluate(It.IsAny <int>())).Returns(true);

            Screenplayer.AskingFor(ValueAfterWaiting.Until(MockQuestion.Object, MockCondition.Object).ForUpTo(0))
            .Should().Be(1, because: "waiting should return the question's final answer");
        }
Пример #3
0
        public void TestSuccessfulWait()
        {
            MockQuestion.Setup(x => x.RequestAs(It.IsAny <IActor>())).Returns(1);
            MockCondition.Setup(x => x.Evaluate(It.IsAny <int>())).Returns(true);

            Screenplayer.Invoking(actor => actor.AttemptsTo(Wait.Until(MockQuestion.Object, MockCondition.Object).ForUpTo(0)))
            .Should().NotThrow(because: "the question should satisfy the condition");
        }
        public void TestSuccessfulWaitAfterChange()
        {
            const int limit       = 5;
            int       incrementer = 0;

            MockQuestion.Setup(x => x.RequestAs(It.IsAny <IActor>())).Returns(() => ++ incrementer);
            MockCondition.Setup(x => x.Evaluate(It.Is <int>(v => v < limit))).Returns(false);
            MockCondition.Setup(x => x.Evaluate(It.Is <int>(v => v >= limit))).Returns(true);

            Screenplayer.AskingFor(ValueAfterWaiting.Until(MockQuestion.Object, MockCondition.Object).ForUpTo(1))
            .Should().Be(limit, because: "waiting should return the question's final answer");

            incrementer.Should().Be(limit, because: $"the question should be called {limit} times");
        }
Пример #5
0
        public void TestSuccessfulWaitAfterChange()
        {
            const int limit       = 5;
            int       incrementer = 0;

            MockQuestion.Setup(x => x.RequestAs(It.IsAny <IActor>())).Returns(() => ++ incrementer);
            MockCondition.Setup(x => x.Evaluate(It.Is <int>(v => v < limit))).Returns(false);
            MockCondition.Setup(x => x.Evaluate(It.Is <int>(v => v >= limit))).Returns(true);

            Screenplayer.Invoking(actor => actor.AttemptsTo(Wait.Until(MockQuestion.Object, MockCondition.Object).ForUpTo(1)))
            .Should().NotThrow(because: "the question should satisfy the condition");

            incrementer.Should().Be(limit, because: $"the question should be called {limit} times");
        }