public void Test_BinderShouldReturnTaskCompletedIfNoException()
        {
            var binder = new ValuesRequestBinder();

            var bindingContext = new ModelBindingContextStub();

            Assert.Equal(TaskStatus.RanToCompletion, binder.BindModelAsync(bindingContext).Status);
        }
        public void Test_BinderShouldReturnTaskFaultedIfAnyUnhandledExceptionOccurs()
        {
            var binder = new ValuesRequestBinder();

            var bindingContext = new ModelBindingContextStub();

            bindingContext.ActionContext.RouteData = null;

            Assert.Equal(TaskStatus.Faulted, binder.BindModelAsync(bindingContext).Status);

            bindingContext.Result.Should().BeEquivalentTo(ModelBindingResult.Failed());
        }
        public void Test_BinderShouldCreateTheModelIfRouteDataIsValid()
        {
            var binder = new ValuesRequestBinder();

            var bindingContext = new ModelBindingContextStub();

            bindingContext.ActionContext.RouteData.Values["param1"] = "12345678";
            bindingContext.ActionContext.RouteData.Values["param2"] = "123";

            binder.BindModelAsync(bindingContext);

            var expectedModel = new GetValues.Request()
            {
                Param1 = "12345678", Param2 = "123"
            };

            bindingContext.Result.Model.Should().BeEquivalentTo(expectedModel);
        }
        public void Test_BinderType()
        {
            var binder = new ValuesRequestBinder();

            Assert.True(binder is IModelBinder);
        }