public void FileExistsReturnsTrueForExistingPath_VPPRegistrationChanging()
        {
            AppDomainUtils.RunInSeparateAppDomain(() =>
            {
                // Arrange
                AppDomainUtils.SetAppData();
                new HostingEnvironment();

                // Expect null beforeProvider since hosting environment hasn't been initialized
                VirtualPathProvider beforeProvider = HostingEnvironment.VirtualPathProvider;
                string testPath = "/Path.txt";
                VirtualPathProvider afterProvider       = CreatePathProvider(testPath);
                Mock <VirtualPathProvider> mockProvider = Mock.Get(afterProvider);

                TestableBuildManagerViewEngine engine = new TestableBuildManagerViewEngine();

                // Act
                VirtualPathProvider beforeEngineProvider = engine.VirtualPathProvider;
                HostingEnvironment.RegisterVirtualPathProvider(afterProvider);

                bool result = engine.FileExists(testPath);
                VirtualPathProvider afterEngineProvider = engine.VirtualPathProvider;

                // Assert
                Assert.True(result);
                Assert.Equal(beforeProvider, beforeEngineProvider);
                Assert.Equal(afterProvider, afterEngineProvider);

                mockProvider.Verify();
                mockProvider.Verify(c => c.FileExists(It.IsAny <String>()), Times.Once());
            });
        }
Example #2
0
        public static void SetupVirtualPathInAppDomain(string vpath, string contents)
        {
            var file = new Mock <VirtualFile>(vpath);

            file.Setup(f => f.Open()).Returns(new MemoryStream(ASCIIEncoding.Default.GetBytes(contents)));
            var vpp = new Mock <VirtualPathProvider>();

            vpp.Setup(p => p.FileExists(vpath)).Returns(true);
            vpp.Setup(p => p.GetFile(vpath)).Returns(file.Object);
            AppDomainUtils.SetAppData();
            var env = new HostingEnvironment();

            var register = typeof(HostingEnvironment).GetMethod("RegisterVirtualPathProviderInternal", BindingFlags.Static | BindingFlags.NonPublic);

            register.Invoke(null, new object[] { vpp.Object });
        }
Example #3
0
        public void FileExistsTest()
        {
            AppDomainUtils.RunInSeparateAppDomain(() => {
                var env = new HostingEnvironment();
                AppDomainUtils.SetAppData();
                var vpp    = new Mock <VirtualPathProvider>();
                var vpath1 = "/website1/default.cshtml";
                var vpath2 = "/website2/default.cshtml";
                vpp.Setup(p => p.FileExists(vpath1)).Returns(true).Verifiable();
                vpp.Setup(p => p.FileExists(vpath2)).Returns(false).Verifiable();

                var register = typeof(HostingEnvironment).GetMethod("RegisterVirtualPathProviderInternal", BindingFlags.Static | BindingFlags.NonPublic);
                register.Invoke(null, new object[] { vpp.Object });

                var initPage = new Mock <StartPage>().Object;
                Assert.IsTrue(initPage.FileExists(vpath1));
                Assert.IsFalse(initPage.FileExists(vpath2));
                vpp.Verify();
            });
        }