Ejemplo n.º 1
0
        public void EnumerateDoesntExist()
        {
            var mountFs = new MountFileSystem();

            mountFs.Mount("/x", new MemoryFileSystem());
            Assert.Throws <DirectoryNotFoundException>(() => mountFs.EnumeratePaths("/y", "*", SearchOption.AllDirectories, SearchTarget.Both).ToList());
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
        }
Ejemplo n.º 5
0
        public void EnumerateFail()
        {
            var mountfs = new MountFileSystem();

            Assert.Throws <DirectoryNotFoundException>(() => mountfs.EnumeratePaths("/dir").ToList());
        }