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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 10
0
        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
            });
        }