Exemplo n.º 1
0
        public void DefaultModelBindersProvider_ProvidesInstancesOfModelBinders()
        {
            // Arrange
            var service = Mock.Of<ITestService>();
            var binder = new TypeMatchModelBinder();
            var options = new MvcOptions();
            options.ModelBinders.Add(binder);
            options.ModelBinders.Add(typeof(TestModelBinder));
            var optionsAccessor = new Mock<IOptionsAccessor<MvcOptions>>();
            optionsAccessor.SetupGet(o => o.Options)
                           .Returns(options);
            var activator = new TypeActivator();
            var serviceProvider = new Mock<IServiceProvider>();
            serviceProvider.Setup(p => p.GetService(typeof(ITestService)))
                           .Returns(service);

            var provider = new DefaultModelBindersProvider(optionsAccessor.Object, activator, serviceProvider.Object);

            // Act
            var binders = provider.ModelBinders;

            // Assert
            Assert.Equal(2, binders.Count);
            Assert.Same(binder, binders[0]);
            var testModelBinder = Assert.IsType<TestModelBinder>(binders[1]);
            Assert.Same(service, testModelBinder.Service);
        }
        public void ViewEngine_ReturnsInstantiatedListOfViewEngines()
        {
            // Arrange
            var service = Mock.Of<ITestService>();
            var valueProviderFactory = Mock.Of<IValueProviderFactory>();
            var type = typeof(TestValueProviderFactory);
            var typeActivator = new TypeActivator();
            var serviceProvider = new Mock<IServiceProvider>();
            serviceProvider.Setup(p => p.GetService(typeof(ITestService)))
                           .Returns(service);
            var options = new MvcOptions();
            options.ValueProviderFactories.Add(valueProviderFactory);
            options.ValueProviderFactories.Add(type);
            var accessor = new Mock<IOptionsAccessor<MvcOptions>>();
            accessor.SetupGet(a => a.Options)
                    .Returns(options);
            var provider = new DefaultValueProviderFactoryProvider(accessor.Object,
                                                                   typeActivator,
                                                                   serviceProvider.Object);

            // Act
            var result = provider.ValueProviderFactories;

            // Assert
            Assert.Equal(2, result.Count);
            Assert.Same(valueProviderFactory, result[0]);
            var testValueProviderFactory = Assert.IsType<TestValueProviderFactory>(result[1]);
            Assert.Same(service, testValueProviderFactory.Service);
        }