public void TestSuccessfulWait() { MockQuestion.Setup(x => x.RequestAs(It.IsAny <IActor>())).Returns(1); MockCondition.Setup(x => x.Evaluate(It.IsAny <int>())).Returns(true); Actor.AskingFor(ValueAfterWaiting.Until(MockQuestion.Object, MockCondition.Object).ForUpTo(0)) .Should().Be(1, because: "waiting should return the Question's final answer"); }
public void TestFailedWait() { MockQuestion.Setup(x => x.RequestAs(It.IsAny <IActor>())).Returns(1); MockCondition.Setup(x => x.Evaluate(It.IsAny <int>())).Returns(false); Actor.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); Actor.Invoking(actor => actor.AttemptsTo(Wait.Until(MockQuestion.Object, MockCondition.Object).ForUpTo(0))) .Should().NotThrow(because: "the question should 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); Actor.WaitsUntil(MockQuestion.Object, MockCondition.Object, timeout: 0) .Should().Be(1, because: "waiting should return the question's final answer"); }
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); Actor.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"); }
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); Actor.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"); }
public void WhenCreatingQuestion_ThenQuestionTextIsSet() { var question = new MockQuestion("ASurveyQuestion"); Assert.AreEqual("ASurveyQuestion", question.QuestionText); }