public void RazorViewEngineSetsViewPageActivator() { // Arrange Mock<IViewPageActivator> viewPageActivator = new Mock<IViewPageActivator>(); TestableRazorViewEngine viewEngine = new TestableRazorViewEngine(viewPageActivator.Object); //Act & Assert Assert.AreEqual(viewPageActivator.Object, viewEngine.ViewPageActivator); }
public void RazorViewEngineSetsViewPageActivator() { // Arrange Mock <IViewPageActivator> viewPageActivator = new Mock <IViewPageActivator>(); TestableRazorViewEngine viewEngine = new TestableRazorViewEngine(viewPageActivator.Object); //Act & Assert Assert.Equal(viewPageActivator.Object, viewEngine.ViewPageActivator); }
public void CreateView_PassesViewPageActivator() { // Arrange Mock<IViewPageActivator> viewPageActivator = new Mock<IViewPageActivator>(); TestableRazorViewEngine viewEngine = new TestableRazorViewEngine(viewPageActivator.Object); // Act RazorView result = (RazorView)viewEngine.CreateView("partial path", "master path"); // Assert Assert.AreEqual(viewEngine.ViewPageActivator, result._viewPageActivator); }
public void CreateView_PassesViewPageActivator() { // Arrange Mock <IViewPageActivator> viewPageActivator = new Mock <IViewPageActivator>(); TestableRazorViewEngine viewEngine = new TestableRazorViewEngine(viewPageActivator.Object); // Act RazorView result = (RazorView)viewEngine.CreateView("partial path", "master path"); // Assert Assert.Equal(viewEngine.ViewPageActivator, result.ViewPageActivator); }
public void CreatePartialView_ReturnsRazorView() { // Arrange TestableRazorViewEngine viewEngine = new TestableRazorViewEngine(); // Act RazorView result = (RazorView)viewEngine.CreatePartialView("partial path"); // Assert Assert.Equal("partial path", result.ViewPath); Assert.Equal(String.Empty, result.LayoutPath); Assert.False(result.RunViewStartPages); }
public void CreateView_ReturnsRazorView() { // Arrange TestableRazorViewEngine viewEngine = new TestableRazorViewEngine() { FileExtensions = new[] { "cshtml", "vbhtml", "razor" } }; // Act RazorView result = (RazorView)viewEngine.CreateView("partial path", "master path"); // Assert Assert.Equal("partial path", result.ViewPath); Assert.Equal("master path", result.LayoutPath); Assert.Equal(new[] { "cshtml", "vbhtml", "razor" }, result.ViewStartFileExtensions.ToArray()); Assert.True(result.RunViewStartPages); }
public void CreatePartialView_ReturnsRazorView() { // Arrange TestableRazorViewEngine viewEngine = new TestableRazorViewEngine(); // Act RazorView result = (RazorView)viewEngine.CreatePartialView("partial path"); // Assert Assert.AreEqual("partial path", result.ViewPath); Assert.AreEqual(String.Empty, result.LayoutPath); Assert.IsFalse(result.RunViewStartPages); }
public void CreateView_ReturnsRazorView() { // Arrange TestableRazorViewEngine viewEngine = new TestableRazorViewEngine() { FileExtensions = new[] { "cshtml", "vbhtml", "razor" } }; // Act RazorView result = (RazorView)viewEngine.CreateView("partial path", "master path"); // Assert Assert.AreEqual("partial path", result.ViewPath); Assert.AreEqual("master path", result.LayoutPath); CollectionAssert.AreEqual(new[] { "cshtml", "vbhtml", "razor" }, result.ViewStartFileExtensions.ToArray()); Assert.IsTrue(result.RunViewStartPages); }
public void GetPage_ResolvesRelativeToAppRoot_WithRelativePath_IfNoPageExecuting(string pageName) { // Arrange var expectedPageName = $"/{ pageName }"; var pageFactory = new Mock<IRazorPageFactoryProvider>(); var page = Mock.Of<IRazorPage>(); pageFactory .Setup(p => p.CreateFactory(expectedPageName)) .Returns(new RazorPageFactoryResult(() => page, new IChangeToken[0])) .Verifiable(); var viewEngine = new TestableRazorViewEngine( pageFactory.Object, GetOptionsAccessor()); // Act var result = viewEngine.GetPage(executingFilePath: null, pagePath: pageName); // Assert Assert.Same(page, result.Page); Assert.Equal(pageName, result.Name); pageFactory.Verify(); }
public void GetView_ResolvesRelativeToAppRoot_WithRelativePath_IfNoPageExecuting(string viewName) { // Arrange var expectedViewName = $"/{ viewName }"; var pageFactory = new Mock<IRazorPageFactoryProvider>(); var page = Mock.Of<IRazorPage>(); pageFactory .Setup(p => p.CreateFactory(expectedViewName)) .Returns(new RazorPageFactoryResult(() => page, new IChangeToken[0])) .Verifiable(); var viewEngine = new TestableRazorViewEngine( pageFactory.Object, GetOptionsAccessor()); // Act var result = viewEngine.GetView(executingFilePath: null, viewPath: viewName, isMainPage: true); // Assert Assert.True(result.Success); Assert.Equal(viewName, result.ViewName); pageFactory.Verify(); var view = Assert.IsType<RazorView>(result.View); Assert.Same(page, view.RazorPage); }
public void GetView_ResolvesRelativeToCurrentPage_WithRelativePath(string viewName) { // Arrange var expectedViewName = $"/Home/{ viewName }"; var pageFactory = new Mock<IRazorPageFactoryProvider>(); var page = Mock.Of<IRazorPage>(); pageFactory .Setup(p => p.CreateFactory(expectedViewName)) .Returns(new RazorPageFactoryResult(() => page, new IChangeToken[0])) .Verifiable(); var viewEngine = new TestableRazorViewEngine( pageFactory.Object, GetOptionsAccessor()); // Act var result = viewEngine.GetView("/Home/Page.cshtml", viewName, isMainPage: true); // Assert Assert.True(result.Success); Assert.Equal(viewName, result.ViewName); pageFactory.Verify(); }
public void GetView_UsesGivenPath_WithAppRelativePath(string viewName) { // Arrange var pageFactory = new Mock<IRazorPageFactoryProvider>(); var page = Mock.Of<IRazorPage>(); pageFactory .Setup(p => p.CreateFactory(viewName)) .Returns(new RazorPageFactoryResult(() => page, new IChangeToken[0])) .Verifiable(); var viewEngine = new TestableRazorViewEngine( pageFactory.Object, GetOptionsAccessor()); // Act var result = viewEngine.GetView(executingFilePath: null, viewPath: viewName, isMainPage: true); // Assert Assert.True(result.Success); Assert.Equal(viewName, result.ViewName); pageFactory.Verify(); }
public void GetView_DoesNotUseViewLocationFormat_WithRelativePath_IfRouteDoesNotContainArea(string viewName) { // Arrange var expectedViewName = "/Home/Test-View.cshtml"; var pageFactory = new Mock<IRazorPageFactoryProvider>(); var page = Mock.Of<IRazorPage>(); pageFactory .Setup(p => p.CreateFactory(expectedViewName)) .Returns(new RazorPageFactoryResult(() => page, new IChangeToken[0])) .Verifiable(); var viewEngine = new TestableRazorViewEngine( pageFactory.Object, GetOptionsAccessor()); // Act var result = viewEngine.GetView("/Home/Page.cshtml", viewName, isMainPage: true); // Assert Assert.True(result.Success); Assert.Equal(viewName, result.ViewName); pageFactory.Verify(); }
public void FindView_UsesAreaViewLocationFormat_IfRouteContainsArea() { // Arrange var viewName = "test-view2"; var expectedViewName = "fake-area-path/foo/bar/test-view2.rzr"; var pageFactory = new Mock<IRazorPageFactoryProvider>(); var page = Mock.Of<IRazorPage>(); pageFactory .Setup(p => p.CreateFactory(expectedViewName)) .Returns(new RazorPageFactoryResult(() => page, new IChangeToken[0])) .Verifiable(); var viewEngine = new TestableRazorViewEngine( pageFactory.Object, GetOptionsAccessor()); viewEngine.SetLocationFormats( new[] { "fake-path1/{1}/{0}.rzr" }, new[] { "fake-area-path/{2}/{1}/{0}.rzr" }); var context = GetActionContext(_areaTestContext); // Act var result = viewEngine.FindView(context, viewName, isMainPage: true); // Assert Assert.True(result.Success); Assert.Equal(viewName, result.ViewName); pageFactory.Verify(); }
public void FindView_UsesViewLocationFormat_IfRouteDoesNotContainArea() { // Arrange var pageFactory = new Mock<IRazorPageFactoryProvider>(); var page = Mock.Of<IRazorPage>(); pageFactory .Setup(p => p.CreateFactory("fake-path1/bar/test-view.rzr")) .Returns(new RazorPageFactoryResult(() => page, new IChangeToken[0])) .Verifiable(); var viewEngine = new TestableRazorViewEngine( pageFactory.Object, GetOptionsAccessor()); viewEngine.SetLocationFormats( new[] { "fake-path1/{1}/{0}.rzr" }, new[] { "fake-area-path/{2}/{1}/{0}.rzr" }); var context = GetActionContext(_controllerTestContext); // Act var result = viewEngine.FindView(context, "test-view", isMainPage: true); // Assert pageFactory.Verify(); var view = Assert.IsType<RazorView>(result.View); Assert.Same(page, view.RazorPage); }
public void FindView_CreatesDifferentCacheEntries_ForDifferentAreas(bool isMainPage) { // Arrange var pageFactory = new Mock<IRazorPageFactoryProvider>(); var areaPage1 = Mock.Of<IRazorPage>(); var areaPage2 = Mock.Of<IRazorPage>(); pageFactory .Setup(p => p.CreateFactory("/Areas/Marketing/Views/Home/Index.cshtml")) .Returns(new RazorPageFactoryResult(() => areaPage1, new IChangeToken[0])); pageFactory .Setup(p => p.CreateFactory("/Areas/Sales/Views/Home/Index.cshtml")) .Returns(new RazorPageFactoryResult(() => areaPage2, new IChangeToken[0])); var viewEngine = new TestableRazorViewEngine( pageFactory.Object, GetOptionsAccessor()); // Act 1 var areaContext1 = GetActionContext(new Dictionary<string, object>() { {"area", "Marketing"}, {"controller", "Home"}, }); var result1 = viewEngine.FindView(areaContext1, "Index", isMainPage); // Assert 1 Assert.NotNull(result1); pageFactory.Verify(p => p.CreateFactory("/Areas/Marketing/Views/Home/Index.cshtml"), Times.Once()); pageFactory.Verify(p => p.CreateFactory("/Areas/Sales/Views/Home/Index.cshtml"), Times.Never()); var view1 = Assert.IsType<RazorView>(result1.View); Assert.Same(areaPage1, view1.RazorPage); // Act 2 var areaContext2 = GetActionContext(new Dictionary<string, object>() { {"controller", "Home"}, {"area", "Sales"}, }); var result2 = viewEngine.FindView(areaContext2, "Index", isMainPage); // Assert 2 Assert.NotNull(result2); pageFactory.Verify(p => p.CreateFactory("/Areas/Marketing/Views/Home/Index.cshtml"), Times.Once()); pageFactory.Verify(p => p.CreateFactory("/Areas/Sales/Views/Home/Index.cshtml"), Times.Once()); var view2 = Assert.IsType<RazorView>(result2.View); Assert.Same(areaPage2, view2.RazorPage); // Act 3 // Ensure we're getting cached results. var result3 = viewEngine.FindView(areaContext1, "Index", isMainPage); var result4 = viewEngine.FindView(areaContext2, "Index", isMainPage); // Assert 4 pageFactory.Verify(p => p.CreateFactory("/Areas/Marketing/Views/Home/Index.cshtml"), Times.Once()); pageFactory.Verify(p => p.CreateFactory("/Areas/Sales/Views/Home/Index.cshtml"), Times.Once()); var view3 = Assert.IsType<RazorView>(result3.View); Assert.Same(areaPage1, view3.RazorPage); var view4 = Assert.IsType<RazorView>(result4.View); Assert.Same(areaPage2, view4.RazorPage); }
public void GetPage_UsesGivenPath_WithAppRelativePath(string pageName) { // Arrange var pageFactory = new Mock<IRazorPageFactoryProvider>(); var page = Mock.Of<IRazorPage>(); pageFactory .Setup(p => p.CreateFactory(pageName)) .Returns(new RazorPageFactoryResult(() => page, new IChangeToken[0])) .Verifiable(); var viewEngine = new TestableRazorViewEngine( pageFactory.Object, GetOptionsAccessor()); // Act var result = viewEngine.GetPage("~/Another/Place.cshtml", pagePath: pageName); // Assert Assert.Same(page, result.Page); Assert.Equal(pageName, result.Name); pageFactory.Verify(); }