CitizenMatt.ReSharper.ExtensionManager.Tests.Implementation.FakeFileSystem.GetDirectories C# (CSharp) Method

GetDirectories() public method

public GetDirectories ( string path ) : IEnumerable
path string
return IEnumerable
        public IEnumerable<string> GetDirectories(string path)
        {
            if (path != string.Empty && path[path.Length-1] != Path.DirectorySeparatorChar)
                path = path + Path.DirectorySeparatorChar;

            var rootPaths = from file in Files
                            where file.StartsWith(path, StringComparison.InvariantCultureIgnoreCase)
                            select Path.GetDirectoryName(file.Substring(path.Length));

            return rootPaths.Distinct();
        }

Usage Example

        public void ShouldGetDirectoriesAtRootLevel()
        {
            var fileSystem = new FakeFileSystem(@"C:\temp\repo");
            fileSystem.Files.Add("Matt\\file1.txt");
            fileSystem.Files.Add("Matt\\file2.txt");
            fileSystem.Files.Add("Matt\\file3.txt");
            fileSystem.Files.Add("Matt2\\file3.txt");

            var directories = fileSystem.GetDirectories(string.Empty).ToList();

            Assert.Equal(2, directories.Count);
            Assert.Equal(new[] { "Matt", "Matt2" }, directories.ToArray());
        }