public void GetFile_NotMappedPath_FallsBackToPreviousProvider() { var previousProviderStub = MockRepository.GenerateStub <VirtualPathProvider>(); var provider = new TestableResourceVirtualPathProvider(new[] { new ResourcePathMapping("test", "testResourceFolder") }, _testDirectory); provider.SetPrevious(previousProviderStub); var expectedFile = new ResourceVirtualFile("test", new FileInfo(Path.Combine(_testDirectory, "file.txt"))); previousProviderStub.Stub(_ => _.GetFile("~/res/UnknownDirectory/testfile.txt")).Return(expectedFile); var actual = (ResourceVirtualFile)provider.GetFile("~/res/UnknownDirectory/testfile.txt"); Assert.That(actual, Is.SameAs(expectedFile)); }
public void GetFile_FileInsideMappedSubdirectory() { var provider = new TestableResourceVirtualPathProvider(new[] { new ResourcePathMapping("test/subdirectory", "testResourceFolder") }, _testDirectory); provider.SetMakeRelativeVirtualPathOverride((a, b) => "testfile.txt"); provider.SetCombineVirtualPathOverride((a, b) => "~/res/test/subdirectory"); var expectedFilePath = Path.Combine(_testDirectory, "testResourceFolder\\testfile.txt"); Directory.CreateDirectory(Path.Combine(_testDirectory, "testResourceFolder")); File.WriteAllText(expectedFilePath, "hello"); var actual = (ResourceVirtualFile)provider.GetFile("~/res/test/subdirectory/testfile.txt"); Assert.That(actual.PhysicalPath, Is.EqualTo(expectedFilePath)); Assert.That(actual.Exists); }