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); }