public async Task ExecuteAsync_Throws_IfNoViewEngineCanBeResolved()
        {
            // Arrange
            var expected = "No service for type 'Microsoft.AspNet.Mvc.Rendering.ICompositeViewEngine'" +
                           " has been registered.";

            var view = Mock.Of <IView>();

            var serviceProvider = new ServiceCollection().BuildServiceProvider();

            var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider());

            var result = new ViewViewComponentResult
            {
                ViewName = "some-view",
                ViewData = viewData
            };

            var viewComponentContext = GetViewComponentContext(view, viewData);

            viewComponentContext.ViewContext.HttpContext.RequestServices = serviceProvider;

            // Act and Assert
            var ex = await Assert.ThrowsAsync <InvalidOperationException>(
                () => result.ExecuteAsync(viewComponentContext));

            Assert.Equal(expected, ex.Message);
        }
        public async Task ExecuteAsync_ThrowsIfPartialViewCannotBeFound()
        {
            // Arrange
            var expected = string.Join(Environment.NewLine,
                                       "The view 'Components/Object/some-view' was not found. The following locations were searched:",
                                       "view-location1",
                                       "view-location2.");

            var view = Mock.Of <IView>();

            var viewEngine = new Mock <IViewEngine>(MockBehavior.Strict);

            viewEngine.Setup(e => e.FindPartialView(It.IsAny <ActionContext>(), It.IsAny <string>()))
            .Returns(ViewEngineResult.NotFound(
                         "Components/Object/some-view",
                         new[] { "view-location1", "view-location2" }))
            .Verifiable();

            var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider());

            var result = new ViewViewComponentResult
            {
                ViewEngine = viewEngine.Object,
                ViewName   = "some-view",
                ViewData   = viewData
            };

            var viewComponentContext = GetViewComponentContext(view, viewData);

            // Act and Assert
            var ex = await Assert.ThrowsAsync <InvalidOperationException>(
                () => result.ExecuteAsync(viewComponentContext));

            Assert.Equal(expected, ex.Message);
        }
        public async Task ExecuteAsync_ResolvesViewEngineFromServiceProvider_IfNoViewEngineIsExplicitlyProvided()
        {
            // Arrange
            var view = Mock.Of <IView>();

            var viewEngine = new Mock <ICompositeViewEngine>(MockBehavior.Strict);

            viewEngine.Setup(e => e.FindPartialView(It.IsAny <ActionContext>(), It.IsAny <string>()))
            .Returns(ViewEngineResult.Found("some-view", view))
            .Verifiable();

            var serviceProvider = new Mock <IServiceProvider>();

            serviceProvider.Setup(p => p.GetService(typeof(ICompositeViewEngine)))
            .Returns(viewEngine.Object);

            var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider());

            var result = new ViewViewComponentResult
            {
                ViewName = "some-view",
                ViewData = viewData
            };

            var viewComponentContext = GetViewComponentContext(view, viewData);

            viewComponentContext.ViewContext.HttpContext.RequestServices = serviceProvider.Object;

            // Act
            await result.ExecuteAsync(viewComponentContext);

            // Assert
            viewEngine.Verify();
            serviceProvider.Verify();
        }
        public async Task ExecuteAsync_RendersPartialViews()
        {
            // Arrange
            var view = Mock.Of <IView>();

            var viewEngine = new Mock <IViewEngine>(MockBehavior.Strict);

            viewEngine.Setup(e => e.FindPartialView(It.IsAny <ActionContext>(), It.IsAny <string>()))
            .Returns(ViewEngineResult.Found("some-view", view))
            .Verifiable();

            var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider());

            var result = new ViewViewComponentResult
            {
                ViewEngine = viewEngine.Object,
                ViewName   = "some-view",
                ViewData   = viewData
            };

            var viewComponentContext = GetViewComponentContext(view, viewData);

            // Act
            await result.ExecuteAsync(viewComponentContext);

            // Assert
            viewEngine.Verify();
        }
Ejemplo n.º 5
0
        public async Task ExecuteAsync_RendersPartialViews()
        {
            // Arrange
            var view = Mock.Of <IView>();

            var viewEngine = new Mock <IViewEngine>(MockBehavior.Strict);

            viewEngine
            .Setup(v => v.GetView(/*executingFilePath*/ null, "some-view", /*isMainPage*/ false))
            .Returns(ViewEngineResult.NotFound("some-view", Enumerable.Empty <string>()))
            .Verifiable();
            viewEngine
            .Setup(v => v.FindView(It.IsAny <ActionContext>(), "Components/Invoke/some-view", /*isMainPage*/ false))
            .Returns(ViewEngineResult.Found("Components/Invoke/some-view", view))
            .Verifiable();

            var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider());

            var result = new ViewViewComponentResult
            {
                ViewEngine = viewEngine.Object,
                ViewName   = "some-view",
                ViewData   = viewData,
                TempData   = _tempDataDictionary,
            };

            var viewComponentContext = GetViewComponentContext(view, viewData);

            // Act
            await result.ExecuteAsync(viewComponentContext);

            // Assert
            viewEngine.Verify();
        }
Ejemplo n.º 6
0
        public async Task ExecuteAsync_ResolvesViewEngineFromServiceProvider_IfNoViewEngineIsExplicitlyProvided()
        {
            // Arrange
            var view = Mock.Of <IView>();

            var viewEngine = new Mock <ICompositeViewEngine>(MockBehavior.Strict);

            viewEngine
            .Setup(v => v.GetView(/*executingFilePath*/ null, "some-view", /*isMainPage*/ false))
            .Returns(ViewEngineResult.NotFound("some-view", Enumerable.Empty <string>()))
            .Verifiable();
            viewEngine
            .Setup(v => v.FindView(It.IsAny <ActionContext>(), "Components/Invoke/some-view", /*isMainPage*/ false))
            .Returns(ViewEngineResult.Found("Components/Invoke/some-view", view))
            .Verifiable();

            var serviceProvider = new Mock <IServiceProvider>();

            serviceProvider.Setup(p => p.GetService(typeof(ICompositeViewEngine)))
            .Returns(viewEngine.Object);
            serviceProvider.Setup(p => p.GetService(typeof(DiagnosticSource)))
            .Returns(new DiagnosticListener("Test"));

            var viewData = new ViewDataDictionary(new EmptyModelMetadataProvider());

            var result = new ViewViewComponentResult
            {
                ViewName = "some-view",
                ViewData = viewData,
                TempData = _tempDataDictionary,
            };

            var viewComponentContext = GetViewComponentContext(view, viewData);

            viewComponentContext.ViewContext.HttpContext.RequestServices = serviceProvider.Object;

            // Act
            await result.ExecuteAsync(viewComponentContext);

            // Assert
            viewEngine.Verify();
            serviceProvider.Verify();
        }