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(); }
public async Task ExecuteAsync_Throws_IfNoViewEngineCanBeResolved() { // Arrange var expected = $"No service for type '{typeof(ICompositeViewEngine).FullName}'" + " 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, TempData = _tempDataDictionary, }; 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 Task ExecuteAsync(ViewComponentContext context) { var result = new ViewViewComponentResult(); result.ViewData = ViewData?.GetDictionary(); result.ViewName = ViewName; return(result.ExecuteAsync(context)); }
public async Task ExecuteAsync_ThrowsIfPartialViewCannotBeFound() { // Arrange var expected = string.Join(Environment.NewLine, "The view 'Components/Invoke/some-view' was not found. The following locations were searched:", "view-location1", "view-location2", "view-location3", "view-location4"); 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", new[] { "view-location1", "view-location2" })) .Verifiable(); viewEngine .Setup(v => v.FindView(It.IsAny <ActionContext>(), "Components/Invoke/some-view", /*isMainPage*/ false)) .Returns(ViewEngineResult.NotFound( "Components/Invoke/some-view", new[] { "view-location3", "view-location4" })) .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 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(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(DiagnosticListener))) .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(); }
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(); }
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(); }
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(); }