public void ReturnFalseWhenModelTypeIsNotResolved()
        {
            this.dependencyResolverMock.Setup(d => d.GetService(It.IsAny <Type>()))
            .Returns(null);
            var fromServicesModeBinder = new FromServicesModelBinder();
            var modelBindingContext    = new ModelBindingContext
            {
                ModelMetadata = new ModelMetadata(new EmptyModelMetadataProvider(), null, null, typeof(IService), null)
            };

            var binded = fromServicesModeBinder.BindModel(this.httpActionContext, modelBindingContext);

            Assert.IsNull(modelBindingContext.Model);
            Assert.IsFalse(binded);
        }
        public void ReturnTrueWhenModelTypeIsResolved()
        {
            var expectedType = typeof(IService);

            this.dependencyResolverMock.Setup(d => d.GetService(expectedType))
            .Returns(new Service());
            var fromServicesModeBinder = new FromServicesModelBinder();
            var modelBindingContext    = new ModelBindingContext
            {
                ModelMetadata = new ModelMetadata(new EmptyModelMetadataProvider(), null, null, expectedType, null)
            };

            var binded = fromServicesModeBinder.BindModel(this.httpActionContext, modelBindingContext);

            Assert.IsInstanceOfType(modelBindingContext.Model, expectedType);
            Assert.IsTrue(binded);
        }
        public void ReturnInstanceOfModelType()
        {
            var expectedType           = typeof(IService);
            var dependencyResolverMock = new Mock <IDependencyResolver>();

            dependencyResolverMock.Setup(d => d.GetService(expectedType))
            .Returns(new Service());
            DependencyResolver.SetResolver(dependencyResolverMock.Object);

            var fromServicesModelBinder = new FromServicesModelBinder();
            var model = fromServicesModelBinder.BindModel(
                new ControllerContext(),
                new ModelBindingContext
            {
                ModelMetadata = ModelMetadataProviders.Current.GetMetadataForType(null, expectedType)
            });

            Assert.IsInstanceOfType(model, expectedType);
        }