public void ViewEngines_ReturnsInstantiatedListOfViewEngines() { // Arrange var service = Mock.Of <ITestService>(); var viewEngine = Mock.Of <IViewEngine>(); var type = typeof(TestViewEngine); var serviceProvider = new Mock <IServiceProvider>(); serviceProvider.Setup(p => p.GetService(typeof(ITestService))) .Returns(service); var typeActivatorCache = new DefaultTypeActivatorCache(); var optionsAccessor = new MockMvcViewOptionsAccessor(); optionsAccessor.Options.ViewEngines.Add(viewEngine); optionsAccessor.Options.ViewEngines.Add(type); var compositeViewEngine = new CompositeViewEngine( optionsAccessor, typeActivatorCache, serviceProvider.Object); // Act var result = compositeViewEngine.ViewEngines; // Assert Assert.Collection(result, actual => Assert.Same(viewEngine, actual), actual => { var testViewEngine = Assert.IsType <TestViewEngine>(actual); Assert.Same(service, testViewEngine.Service); }); }
public void ViewLocationExpanders_ReturnsActivatedListOfExpanders() { // Arrange var service = Mock.Of <ITestService>(); var expander = Mock.Of <IViewLocationExpander>(); var type = typeof(TestViewLocationExpander); var serviceProvider = new Mock <IServiceProvider>(); serviceProvider.Setup(p => p.GetService(typeof(ITestService))) .Returns(service); var typeActivatorCache = new DefaultTypeActivatorCache(); var options = new RazorViewEngineOptions(); options.ViewLocationExpanders.Add(type); options.ViewLocationExpanders.Add(expander); var accessor = new Mock <IOptions <RazorViewEngineOptions> >(); accessor.SetupGet(a => a.Options) .Returns(options); var provider = new DefaultViewLocationExpanderProvider(accessor.Object, typeActivatorCache, serviceProvider.Object); // Act var result = provider.ViewLocationExpanders; // Assert Assert.Equal(2, result.Count); var testExpander = Assert.IsType <TestViewLocationExpander>(result[0]); Assert.Same(service, testExpander.Service); Assert.Same(expander, result[1]); }
public void ValidationProviders_ReturnsInstantiatedListOfValueProviders() { // Arrange var service = Mock.Of <ITestService>(); var validationProvider = Mock.Of <IModelValidatorProvider>(); var type = typeof(TestModelValidationProvider); var serviceProvider = new Mock <IServiceProvider>(); serviceProvider.Setup(p => p.GetService(typeof(ITestService))) .Returns(service); var typeActivatorCache = new DefaultTypeActivatorCache(); var options = new MvcOptions(); options.ModelValidatorProviders.Add(type); options.ModelValidatorProviders.Add(validationProvider); var accessor = new Mock <IOptions <MvcOptions> >(); accessor.SetupGet(a => a.Options) .Returns(options); var provider = new DefaultModelValidatorProviderProvider(accessor.Object, typeActivatorCache, serviceProvider.Object); // Act var result = provider.ModelValidatorProviders; // Assert Assert.Equal(2, result.Count); var testModelValidationProvider = Assert.IsType <TestModelValidationProvider>(result[0]); Assert.Same(service, testModelValidationProvider.Service); Assert.Same(validationProvider, result[1]); }
public void ViewEngine_ReturnsInstantiatedListOfViewEngines() { // Arrange var service = Mock.Of <ITestService>(); var valueProviderFactory = Mock.Of <IValueProviderFactory>(); var type = typeof(TestValueProviderFactory); var serviceProvider = new Mock <IServiceProvider>(); serviceProvider.Setup(p => p.GetService(typeof(ITestService))) .Returns(service); var typeActivatorCache = new DefaultTypeActivatorCache(); var options = new MvcOptions(); options.ValueProviderFactories.Add(valueProviderFactory); options.ValueProviderFactories.Add(type); var accessor = new Mock <IOptions <MvcOptions> >(); accessor.SetupGet(a => a.Options) .Returns(options); var provider = new DefaultValueProviderFactoryProvider(accessor.Object, typeActivatorCache, 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); }
public void ViewEngines_ReturnsInstantiatedListOfViewEngines() { // Arrange var service = Mock.Of<ITestService>(); var viewEngine = Mock.Of<IViewEngine>(); var type = typeof(TestViewEngine); var serviceProvider = new Mock<IServiceProvider>(); serviceProvider.Setup(p => p.GetService(typeof(ITestService))) .Returns(service); var typeActivatorCache = new DefaultTypeActivatorCache(); var optionsAccessor = new MockMvcOptionsAccessor(); optionsAccessor.Options.ViewEngines.Add(viewEngine); optionsAccessor.Options.ViewEngines.Add(type); var compositeViewEngine = new CompositeViewEngine( optionsAccessor, typeActivatorCache, serviceProvider.Object); // Act var result = compositeViewEngine.ViewEngines; // Assert Assert.Collection(result, actual => Assert.Same(viewEngine, actual), actual => { var testViewEngine = Assert.IsType<TestViewEngine>(actual); Assert.Same(service, testViewEngine.Service); }); }
public void ValidationProviders_ReturnsInstantiatedListOfValueProviders() { // Arrange var service = Mock.Of<ITestService>(); var validationProvider = Mock.Of<IModelValidatorProvider>(); var type = typeof(TestModelValidationProvider); var serviceProvider = new Mock<IServiceProvider>(); serviceProvider.Setup(p => p.GetService(typeof(ITestService))) .Returns(service); var typeActivatorCache = new DefaultTypeActivatorCache(); var options = new MvcOptions(); options.ModelValidatorProviders.Add(type); options.ModelValidatorProviders.Add(validationProvider); var accessor = new Mock<IOptions<MvcOptions>>(); accessor.SetupGet(a => a.Options) .Returns(options); var provider = new DefaultModelValidatorProviderProvider(accessor.Object, typeActivatorCache, serviceProvider.Object); // Act var result = provider.ModelValidatorProviders; // Assert Assert.Equal(2, result.Count); var testModelValidationProvider = Assert.IsType<TestModelValidationProvider>(result[0]); Assert.Same(service, testModelValidationProvider.Service); Assert.Same(validationProvider, result[1]); }
public void ViewEngine_ReturnsInstantiatedListOfViewEngines() { // Arrange var service = Mock.Of<ITestService>(); var valueProviderFactory = Mock.Of<IValueProviderFactory>(); var type = typeof(TestValueProviderFactory); var serviceProvider = new Mock<IServiceProvider>(); serviceProvider.Setup(p => p.GetService(typeof(ITestService))) .Returns(service); var typeActivatorCache = new DefaultTypeActivatorCache(); var options = new MvcOptions(); options.ValueProviderFactories.Add(valueProviderFactory); options.ValueProviderFactories.Add(type); var accessor = new Mock<IOptions<MvcOptions>>(); accessor.SetupGet(a => a.Options) .Returns(options); var provider = new DefaultValueProviderFactoryProvider(accessor.Object, typeActivatorCache, 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); }
public void ViewLocationExpanders_ReturnsActivatedListOfExpanders() { // Arrange var service = Mock.Of<ITestService>(); var expander = Mock.Of<IViewLocationExpander>(); var type = typeof(TestViewLocationExpander); var serviceProvider = new Mock<IServiceProvider>(); serviceProvider.Setup(p => p.GetService(typeof(ITestService))) .Returns(service); var typeActivatorCache = new DefaultTypeActivatorCache(); var options = new RazorViewEngineOptions(); options.ViewLocationExpanders.Add(type); options.ViewLocationExpanders.Add(expander); var accessor = new Mock<IOptions<RazorViewEngineOptions>>(); accessor.SetupGet(a => a.Options) .Returns(options); var provider = new DefaultViewLocationExpanderProvider(accessor.Object, typeActivatorCache, serviceProvider.Object); // Act var result = provider.ViewLocationExpanders; // Assert Assert.Equal(2, result.Count); var testExpander = Assert.IsType<TestViewLocationExpander>(result[0]); Assert.Same(service, testExpander.Service); Assert.Same(expander, result[1]); }
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 <IOptions <MvcOptions> >(); optionsAccessor.SetupGet(o => o.Options) .Returns(options); var serviceProvider = new Mock <IServiceProvider>(); serviceProvider.Setup(p => p.GetService(typeof(ITestService))) .Returns(service); var typeActivatorCache = new DefaultTypeActivatorCache(); var provider = new DefaultModelBindersProvider(optionsAccessor.Object, typeActivatorCache, 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); }
private static TestRazorPage CreateTestRazorPage() { var activator = new RazorPageActivator(new EmptyModelMetadataProvider()); var serviceProvider = new Mock <IServiceProvider>(); var typeActivator = new DefaultTypeActivatorCache(); var myService = new MyService(); serviceProvider.Setup(mock => mock.GetService(typeof(MyService))) .Returns(myService); serviceProvider.Setup(mock => mock.GetService(typeof(ITagHelperActivator))) .Returns(new DefaultTagHelperActivator()); serviceProvider.Setup(mock => mock.GetService(typeof(ITypeActivatorCache))) .Returns(typeActivator); serviceProvider.Setup(mock => mock.GetService(It.Is <Type>(serviceType => serviceType.GetTypeInfo().IsGenericType&& serviceType.GetGenericTypeDefinition() == typeof(IEnumerable <>)))) .Returns <Type>(serviceType => { var enumerableType = serviceType.GetGenericArguments().First(); return(typeof(Enumerable).GetMethod("Empty").MakeGenericMethod(enumerableType).Invoke(null, null)); }); var httpContext = new Mock <HttpContext>(); httpContext.SetupGet(c => c.RequestServices) .Returns(serviceProvider.Object); var actionContext = new ActionContext(httpContext.Object, new RouteData(), new ActionDescriptor()); var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider()); var viewContext = new ViewContext( actionContext, Mock.Of <IView>(), viewData, Mock.Of <ITempDataDictionary>(), TextWriter.Null, new HtmlHelperOptions()); return(new TestRazorPage { ViewContext = viewContext }); }