public void EnumerateDoesntExist() { var mountFs = new MountFileSystem(); mountFs.Mount("/x", new MemoryFileSystem()); Assert.Throws <DirectoryNotFoundException>(() => mountFs.EnumeratePaths("/y", "*", SearchOption.AllDirectories, SearchTarget.Both).ToList()); }
public void EnumerateMountsOverride() { var baseFs = new MemoryFileSystem(); baseFs.CreateDirectory("/foo/bar"); baseFs.WriteAllText("/base.txt", "test"); baseFs.WriteAllText("/foo/base.txt", "test"); baseFs.WriteAllText("/foo/bar/base.txt", "test"); var mountedFs = new MemoryFileSystem(); mountedFs.WriteAllText("/mounted.txt", "test"); var deepMountedFs = new MemoryFileSystem(); deepMountedFs.WriteAllText("/deep_mounted.txt", "test"); var mountFs = new MountFileSystem(baseFs); mountFs.Mount("/foo", mountedFs); mountFs.Mount("/foo/bar", deepMountedFs); var expected = new List <UPath> { "/base.txt", "/foo", "/foo/bar", "/foo/mounted.txt", "/foo/bar/deep_mounted.txt" }; var actual = mountFs.EnumeratePaths("/", "*", SearchOption.AllDirectories).ToList(); Assert.Equal(expected, actual); }
public void EnumerateEmptyOnRoot() { var mountFs = new MountFileSystem(); var expected = Array.Empty <UPath>(); var actual = mountFs.EnumeratePaths("/", "*", SearchOption.AllDirectories, SearchTarget.Both).ToList(); Assert.Equal(expected, actual); }
public void EnumerateDeepMountPartial() { var fs = GetCommonMemoryFileSystem(); var mountFs = new MountFileSystem(); mountFs.Mount("/x/y/z", fs); Assert.True(mountFs.FileExists("/x/y/z/A.txt")); var expected = new List <UPath> { "/x/y", "/x/y/z", "/x/y/z/a", "/x/y/z/A.txt" }; // only concerned with the first few because it should list the mount parts first var actual = mountFs.EnumeratePaths("/x", "*", SearchOption.AllDirectories).Take(4).ToList(); Assert.Equal(expected, actual); }
public void EnumerateFail() { var mountfs = new MountFileSystem(); Assert.Throws <DirectoryNotFoundException>(() => mountfs.EnumeratePaths("/dir").ToList()); }