Esempio n. 1
0
        public IState NextState(IClientCapabilities clientCapabilities)
        {
            var rules = new Rules(
                When
                    .IsTrue(response => response.ContainsForm(Forms.RequestForQuote))
                    .Execute(actions => actions.SubmitForm(Forms.RequestForQuote))
                    .Return(
                        new[]
                            {
                                On.Status(HttpStatusCode.Created)
                                    .Do((response, vars)
                                        => new QuoteRequested(response, vars))
                            }
                    ),
                When
                    .IsTrue(response => response.ContainsLink(Links.Rfq))
                    .Execute(actions => actions.ClickLink(Links.Rfq))
                    .Return(
                        new[]
                            {
                                On.Status(HttpStatusCode.OK)
                                    .Do((response, vars)
                                        => new Started(response, vars))
                            })
                );

            return rules.Evaluate(previousResponse, stateVariables, clientCapabilities);
        }
Esempio n. 2
0
        public IState NextState(IClientCapabilities clientCapabilities)
        {
            var rules = new Rules(
                When.IsTrue(response => true)
                    .Execute(actions => actions.Do(GetHomePage.Instance))
                    .ReturnState((response, vars) => new Started(response, vars)));

            return rules.Evaluate(null, stateVariables, clientCapabilities);
        }
Esempio n. 3
0
        public void ShouldNotEvaluateSubsequentRulesFollowingASuccessfulRule()
        {
            var mockRule1 = MockRepository.GenerateMock<IRule>();
            var mockRule2 = MockRepository.GenerateMock<IRule>();
            var mockRule3 = MockRepository.GenerateMock<IRule>();

            mockRule1.Expect(r => r.Evaluate(Dummy.PreviousResponse, Dummy.StateVariables, Dummy.ClientCapabilities)).Return(Result.Unsuccessful);
            mockRule2.Expect(r => r.Evaluate(Dummy.PreviousResponse, Dummy.StateVariables, Dummy.ClientCapabilities)).Return(new Result(true, MockRepository.GenerateStub<IState>()));

            var rules = new Rules(mockRule1, mockRule2, mockRule3);
            rules.Evaluate(Dummy.PreviousResponse, Dummy.StateVariables, Dummy.ClientCapabilities);

            mockRule1.VerifyAllExpectations();
            mockRule2.VerifyAllExpectations();
            mockRule3.AssertWasNotCalled(r => r.Evaluate(Dummy.PreviousResponse, Dummy.StateVariables, Dummy.ClientCapabilities));
        }
Esempio n. 4
0
        public void ShouldCallEachRuleInOrderItWasAddedToRules()
        {
            var mocks = new MockRepository();

            var mockRule1 = mocks.DynamicMock<IRule>();
            var mockRule2 = mocks.DynamicMock<IRule>();
            var mockRule3 = mocks.DynamicMock<IRule>();

            using (mocks.Ordered())
            {
                Expect.Call(mockRule1.Evaluate(Dummy.PreviousResponse, Dummy.StateVariables, Dummy.ClientCapabilities)).Return(Result.Unsuccessful);
                Expect.Call(mockRule2.Evaluate(Dummy.PreviousResponse, Dummy.StateVariables, Dummy.ClientCapabilities)).Return(Result.Unsuccessful);
                Expect.Call(mockRule3.Evaluate(Dummy.PreviousResponse, Dummy.StateVariables, Dummy.ClientCapabilities)).Return(new Result(true, MockRepository.GenerateStub<IState>()));
            }
            mocks.ReplayAll();

            var rules = new Rules(mockRule1, mockRule2, mockRule3);
            rules.Evaluate(Dummy.PreviousResponse, Dummy.StateVariables, Dummy.ClientCapabilities);

            mocks.VerifyAll();
        }