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);
        }