コード例 #1
0
        public void It_should_call_current_context_GetById_and_convert_type(string idParameterNameInput, string idParameterNameModelBinder)
        {
            var formCollection = new NameValueCollection { { idParameterNameInput, "2" } };

            var valueProvider = new NameValueCollectionValueProvider(formCollection, null);
            var modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, typeof(TheEntity));

            var bindingContext = new ModelBindingContext
            {
                ModelName = string.Empty,
                ValueProvider = valueProvider,
                ModelMetadata = modelMetadata
            };

            var modelBinder = new GetFromContextModelBinder(idParameterNameModelBinder, typeof(int));
            var controllerContext = new ControllerContext();

            var returnedObject = new TheEntity();
            this.contextProviderMock.Setup(x => x.GetById(typeof(TheEntity), 2)).Returns(returnedObject);

            var result = modelBinder.BindModel(controllerContext, bindingContext);

            result.Should().Be(returnedObject);
        }
コード例 #2
0
        public void It_should_throw_if_no_value_found()
        {
            var formCollection = new NameValueCollection { { "foo", "2" } };

            var valueProvider = new NameValueCollectionValueProvider(formCollection, null);
            var modelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, typeof(TheEntity));

            var bindingContext = new ModelBindingContext
            {
                ModelName = string.Empty,
                ValueProvider = valueProvider,
                ModelMetadata = modelMetadata
            };

            var modelBinder = new GetFromContextModelBinder();
            var controllerContext = new ControllerContext();

            modelBinder.Invoking(x => x.BindModel(controllerContext, bindingContext))
                       .ShouldThrow<BackstageException>()
                       .WithMessage("*id*");
        }