示例#1
0
        public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)
        {
            string controllerName = controllerContext.RouteData.GetRequiredString("controller");
            object area;
            string viewArea = null;

            if (controllerContext.RouteData.DataTokens.TryGetValue("area", out area))
            {
                viewArea = area as string;
            }
            var loc = ViewLocationFormats
                      .Select(x => String.Format(x, viewName, controllerName, viewArea))
                      .FirstOrDefault(s => File.Exists(MockVirtualPathFactory.NormalizePath(s)));
            var masterLoc = MasterLocationFormats
                            .Select(x => String.Format(x, viewName, masterName, viewArea))
                            .FirstOrDefault(s => File.Exists(MockVirtualPathFactory.NormalizePath(s)));

            if (loc == null)
            {
                return(new ViewEngineResult(ViewLocationFormats));
            }
            else
            {
                var view = new MockView(MockVirtualPathFactory.NormalizePath(loc), loc, true, FileExtensions);
                return(new ViewEngineResult(view, this));
            }
        }
示例#2
0
        public void Render(ViewContext viewContext, TextWriter writer)
        {
            var template = (WebViewPage)MockVirtualPathFactory.InternalCreateInstance(_path);

            template.VirtualPath = _virtualPath;
            template.ViewContext = viewContext;
            template.ViewData    = viewContext.ViewData;
            WebPageRenderingBase currentPage = template;
            var pageDirectory = Path.GetDirectoryName(_path);

            if (_runViewStartPage)
            {
                while (!String.IsNullOrEmpty(pageDirectory) && pageDirectory != "/" && MockVirtualPathFactory.ViewPathContains(pageDirectory))
                {
                    foreach (var extension in _viewStartFileExtensions)
                    {
                        var path = Path.Combine(pageDirectory, "_ViewStart" + "." + extension);
                        if (MockVirtualPathFactory.InternalExists(path))
                        {
                            var parentStartPage = (StartPage)MockVirtualPathFactory.InternalCreateInstance(path);

                            parentStartPage.VirtualPath = path;
                            parentStartPage.ChildPage   = currentPage;
                            currentPage = parentStartPage;

                            break;
                        }
                    }
                    pageDirectory = Path.GetDirectoryName(pageDirectory);
                }
            }
            template.InitHelpers();
            template.ExecutePageHierarchy(new WebPageContext(viewContext.HttpContext, page: null, model: null), writer, currentPage); // , currentPage);
        }
        public override VirtualFile GetFile(string virtualPath)
        {
            var virtualMock = MockExtensions.Repository.Create <VirtualFile>(virtualPath);

            virtualMock.Setup(x => x.Open()).Returns(new FileStream(MockVirtualPathFactory.NormalizePath(virtualPath),
                                                                    FileMode.Open, FileAccess.Read, FileShare.Read));
            return(virtualMock.Object);
        }
示例#4
0
        public override ViewEngineResult FindPartialView(ControllerContext controllerContext, string partialViewName, bool useCache)
        {
            string controllerName = controllerContext.RouteData.GetRequiredString("controller");
            object area;
            string viewArea = null;

            if (controllerContext.RouteData.DataTokens.TryGetValue("area", out area))
            {
                viewArea = area as string;
            }
            var loc = PartialViewLocationFormats
                      .Select(x => String.Format(x, partialViewName, controllerName, viewArea))
                      .FirstOrDefault(s => File.Exists(s.Replace("~/", MockVirtualPathFactory.BaseDirectory + "\\EPICCentral\\")));

            if (loc == null)
            {
                return(new ViewEngineResult(ViewLocationFormats));
            }
            else
            {
                var view = new MockView(MockVirtualPathFactory.NormalizePath(loc), loc, false, FileExtensions);
                return(new ViewEngineResult(view, this));
            }
        }
 public override bool DirectoryExists(string virtualDir)
 {
     return(Directory.Exists(MockVirtualPathFactory.NormalizePath(virtualDir)));
 }
 public override bool FileExists(string virtualPath)
 {
     return(File.Exists(MockVirtualPathFactory.NormalizePath(virtualPath)));
 }