Example #1
0
        public void transfer_to_a_target_with_a_method()
        {
            var input = new InputModel();
            FubuContinuation continuation = FubuContinuation.TransferTo(input, "PUT");

            continuation.Type.ShouldBe(ContinuationType.Transfer);

            continuation.Process(director);

            director.AssertWasCalled(x => x.TransferTo(input, "PUT"));
        }
Example #2
0
        public FubuContinuation Post(LoginViewModel model)
        {
            Notification notification = _loginService.LoginUser(model.UserName, model.Password, false);

            return(notification.IsValid()
                       ? FubuContinuation.RedirectTo(model.ReturnUrl)
                       : FubuContinuation.TransferTo(new LoginRequest()
            {
                ReturnUrl = model.ReturnUrl, LoginFailed = true
            }));
        }
Example #3
0
        public void transfer_to_a_target()
        {
            var input = new InputModel();
            FubuContinuation continuation = FubuContinuation.TransferTo(input);

            continuation.Type.ShouldEqual(ContinuationType.Transfer);

            continuation.Process(director);

            director.AssertWasCalled(x => x.TransferTo(input));
        }
Example #4
0
        public void assert_transfer_by_destination_respects_category()
        {
            var input = new InputModel {
                Name = "Luke", Age = 1
            };
            var continuation = FubuContinuation.TransferTo(input, "PUT");

            continuation.AssertWasTransferedTo(input, "PUT");

            shouldFail(() => continuation.AssertWasTransferedTo(input));
            shouldFail(() => continuation.AssertWasTransferedTo(input, "GET"));
        }
Example #5
0
        public void assert_transfer_to_a_method()
        {
            FubuContinuation continuation = FubuContinuation.TransferTo <ControllerTarget>(x => x.OneInOneOut(null));

            continuation.AssertWasTransferedTo <ControllerTarget>(x => x.OneInOneOut(null));

            shouldFail(() => continuation.AssertWasRedirectedTo("here"));
            shouldFail(() => continuation.AssertWasTransferedTo("here"));
            shouldFail(() => continuation.AssertWasTransferedTo <ControllerTarget>(x => x.OneInZeroOut(null)));
            shouldFail(() => continuation.AssertWasRedirectedTo <ControllerTarget>(x => x.OneInZeroOut(null)));
            shouldFail(() => continuation.AssertWasContinuedToNextBehavior());
        }
Example #6
0
        public void transfer_to_a_method_with_a_category_2()
        {
            FubuContinuation continuation = FubuContinuation.TransferTo <ControllerTarget>(x => x.OneInOneOut(null), "PUT");

            continuation.Type.ShouldBe(ContinuationType.Transfer);

            continuation.Process(director);

            ActionCall call = ActionCall.For <ControllerTarget>(x => x.OneInOneOut(null));

            director.AssertWasCalled(x => x.TransferToCall(call, "PUT"));
        }
        protected override void theContextIs()
        {
            call    = ActionCall.For <ControllerTarget>(x => x.ZeroInOneOut());
            partial = MockRepository.GenerateMock <IActionBehavior>();

            theChain = new BehaviorChain();
            MockFor <IChainResolver>().Stub(x => x.Find(call.HandlerType, call.Method)).Return(theChain);

            MockFor <IPartialFactory>().Expect(x => x.BuildBehavior(theChain)).Return(partial);

            ProcessContinuation(FubuContinuation.TransferTo <ControllerTarget>(x => x.ZeroInOneOut()));
        }
        public FubuContinuation Execute(SignInModel model)
        {
            var loggedin = _authenticationService.SignIn(model.UserName, model.Password, true);

            if (loggedin)
            {
                return(FubuContinuation.RedirectTo(model.ReturnUrl.IsEmpty() ? _urlRegistry.UrlFor <HomeRequest>() : model.ReturnUrl));
            }

            return(FubuContinuation.TransferTo(new SignInRequest {
                ReturnUrl = model.ReturnUrl, LoginFailed = true
            }));
        }
Example #9
0
        public FubuContinuation post_login(LoginRequest request)
        {
            bool authenticated = _service.Authenticate(request);

            _service.SetRememberMeCookie(request);

            if (authenticated)
            {
                return(_handler.LoggedIn(request));
            }

            return(FubuContinuation.TransferTo(request, "GET"));
        }
        protected override void theContextIs()
        {
            partial = MockRepository.GenerateMock <IActionBehavior>();



            input    = new InputModel();
            theChain = new BehaviorChain();
            MockFor <IChainResolver>().Stub(x => x.FindUnique(input)).Return(theChain);

            MockFor <IPartialFactory>().Expect(x => x.BuildBehavior(theChain)).Return(partial);

            ProcessContinuation(FubuContinuation.TransferTo(input));
        }
Example #11
0
        public void assert_transfer_to_a_target_via_predicate()
        {
            var input = new InputModel {
                Name = "Luke", Age = 1
            };
            FubuContinuation continuation = FubuContinuation.TransferTo(input);

            continuation.AssertWasTransferedTo <InputModel>(x => x.Name == input.Name);

            shouldFail(() => continuation.AssertWasTransferedTo(new InputModelWithEquals()));
            shouldFail(() => continuation.AssertWasRedirectedTo(input));
            shouldFail(() => continuation.AssertWasContinuedToNextBehavior());

            shouldFail(() => continuation.AssertWasTransferedTo <ControllerTarget>(x => x.OneInOneOut(null)));
            shouldFail(() => continuation.AssertWasRedirectedTo <ControllerTarget>(x => x.OneInOneOut(null)));
        }
Example #12
0
 public FubuContinuation RegisterCommand(RegisterModel input)
 {
     // TODO: VALIDATION
     if (input.UserName.IsEmpty() || input.Password.IsEmpty())
     {
         return(FubuContinuation.TransferTo <RegisterInput>());
     }
     if (!input.Password.Equals(input.ConfirmPassword))
     {
         return(FubuContinuation.TransferTo <RegisterInput>());
     }
     if (_membershipService.CreateUser(input.UserName, input.Password, input.Email))
     {
         _authenticationContext.ThisUserHasBeenAuthenticated(input.UserName, false);
         return(FubuContinuation.RedirectTo <IndexInput>());
     }
     return(FubuContinuation.TransferTo <RegisterInput>());
 }
Example #13
0
        public FubuContinuation Filter(Number number)
        {
            // Issue an HTTP 302 to /invalid
            if (number.Value < 0)
            {
                return(FubuContinuation.RedirectTo <NumberEndpoint>(x => x.get_invalid()));
            }

            // Render the DoubleNumber{Value=4} resource instead
            if (number.Value == 2)
            {
                return(FubuContinuation.TransferTo(new DoubleNumber {
                    Value = 4
                }));
            }

            // Issue an HTTP 302 to /doubled/8
            if (number.Value == 4)
            {
                return(FubuContinuation.RedirectTo(new DoubleNumber {
                    Value = 8
                }));
            }

            // Execute a different chain instead
            if (number.Value == 5)
            {
                return(FubuContinuation.TransferTo <NumberEndpoint>(x => x.get_special()));
            }

            // HTTP 403 and don't proceed any farther
            if (number.Value > 10)
            {
                return(FubuContinuation.EndWithStatusCode(HttpStatusCode.Unauthorized));
            }

            return(FubuContinuation.NextBehavior());
        }
 public FubuContinuation get_full_method_Redirect(FullInput input)
 {
     return(FubuContinuation.TransferTo(new PartialInput {
         Redirect = input.Redirect
     }));
 }
Example #15
0
 public void TransferTo(object target)
 {
     buildPolicy(FubuContinuation.TransferTo(target));
 }
Example #16
0
 public FubuContinuation post_edit_task(TaskPostInputModel input)
 {
     return(FubuContinuation.TransferTo <UpdateEndpoint>(x => x.get_update(new UpdateInputModel())));
 }
 public FubuContinuation Tranfer()
 {
     return(FubuContinuation.TransferTo(new HelloPartialInputModel()));
 }
Example #18
0
        public void transfer_via_generic_with_a_method()
        {
            var continuation = FubuContinuation.TransferTo <TestModel>("PUT");

            continuation.AssertWasTransferedTo <TestModel>(x => x.GetType() == typeof(TestModel), "PUT");
        }
Example #19
0
        public void transfer_via_generic()
        {
            var continuation = FubuContinuation.TransferTo <TestModel>();

            continuation.AssertWasTransferedTo <TestModel>(x => x.GetType() == typeof(TestModel));
        }
Example #20
0
        public void when_destination_null_transfer_to_throws()
        {
            var argNullEx = Exception <ArgumentNullException> .ShouldBeThrownBy(() => FubuContinuation.TransferTo(null));

            argNullEx.Message.ShouldContain("destination");
        }