예제 #1
0
        public void RemoveDirectoryWithDSStoreFileSucceeds()
        {
            string path = Path.Combine(TemporaryDirectory, "dir");

            Directory.CreateDirectory(path);

            WriteFile(PathGeneratorUtilities.GetRelativePath("dir", FileSystemUnix.DsStoreMetaFileName), string.Empty);
            WriteFile(PathGeneratorUtilities.GetRelativePath("dir", "someFile"), string.Empty);

            try
            {
                FileUtilities.DeleteDirectoryContents(path, deleteRootDirectory: true);
            }
#pragma warning disable ERP022 // Unobserved exception in generic exception handler
            catch
            {
                // Deleting a directory should enumerate the .DS_Store files and delete them too
                Assert.True(false);
            }
#pragma warning restore ERP022 // Unobserved exception in generic exception handler
        }
예제 #2
0
        public void EnumerationIndicatesDirectories()
        {
            string path = Path.Combine(TemporaryDirectory, "dir");

            Directory.CreateDirectory(path);

            Directory.CreateDirectory(GetFullPath(PathGeneratorUtilities.GetRelativePath("dir", "childDir")));
            Directory.CreateDirectory(GetFullPath(PathGeneratorUtilities.GetRelativePath("dir", "childDir2")));

            var names = new List <string>();
            EnumerateDirectoryResult result = FileUtilities.EnumerateDirectoryEntries(
                path,
                (name, attr) =>
            {
                XAssert.IsTrue((attr & FileAttributes.Directory) != 0, "All children are directories.");
                names.Add(name);
            });

            XAssert.IsTrue(result.Succeeded);
            XAssert.AreEqual(EnumerateDirectoryStatus.Success, result.Status);
            Assert.Equal(new[] { "childDir", "childDir2" }, names);
        }
예제 #3
0
        public void EnumerationSkipsDSStoreFiles()
        {
            string path = Path.Combine(TemporaryDirectory, "dir");

            Directory.CreateDirectory(path);

            WriteFile(PathGeneratorUtilities.GetRelativePath("dir", FileSystemUnix.DsStoreMetaFileName), string.Empty);
            WriteFile(PathGeneratorUtilities.GetRelativePath("dir", "someFile"), string.Empty);

            var names = new List <string>();

            // Plain enumeration should NOT include .DS_Store meta files
            var result = FileUtilities.EnumerateDirectoryEntries(
                path,
                (name, attr) =>
            {
                XAssert.IsTrue((attr & FileAttributes.Directory) == 0, "All children are files.");
                names.Add(name);
            });

            XAssert.IsTrue(result.Succeeded);
            XAssert.AreEqual(EnumerateDirectoryStatus.Success, result.Status);
            XAssert.SetEqual(new[] { "someFile" }, names);
        }
예제 #4
0
 public void NormalizesExtraSeparators()
 {
     Assert.Equal(PathGeneratorUtilities.GetRelativePath("some", "dir", "file.txt"), new RelativePath(@"some\\\dir//file.txt").Path);
 }
예제 #5
0
 public void ConvertsBackSlash()
 {
     Assert.Equal(PathGeneratorUtilities.GetRelativePath("some", "dir", "file.txt"), new RelativePath(@"some\dir\file.txt").Path);
 }
예제 #6
0
 public void ConvertsForwardSlash()
 {
     Assert.Equal(PathGeneratorUtilities.GetRelativePath("some", "dir", "file.txt"), new RelativePath("some/dir/file.txt").Path);
 }
예제 #7
0
        public void Succeeds()
        {
            string expected = PathGeneratorUtilities.GetRelativePath(Constants.ValidLevelOneRelativePath, "segment");

            Assert.Equal(expected, new RelativePath(Constants.ValidLevelOneRelativePath).ConcatenateWith <RelativePath>("segment").Path);
        }