public void Should_Return_Paths_Not_Affected_By_Walker_Hints() { // Given var fixture = GlobberFixture.UnixLike(); var predicate = new Func <IFileSystemInfo, bool>(i => i.Path.FullPath != "/Working/Bar"); // When var result = fixture.Match("./**/Qux.h", predicate); // Then result.Length.ShouldBe(1); result.ShouldContainFilePath("/Working/Foo/Bar/Qux.h"); }
public void Should_Return_Single_Path_For_Relative_Directory_Path_Without_Glob_Pattern() { // Given var fixture = GlobberFixture.UnixLike(); fixture.SetWorkingDirectory("/Working/Foo"); // When var result = fixture.Match("./Bar"); // Then result.Length.ShouldBe(1); result.ShouldContainDirectoryPath("/Working/Foo/Bar"); }
public void Can_Traverse_Recursivly() { // Given var fixture = new GlobberFixture(); var globber = fixture.CreateGlobber(); // When var result = globber.Match("/Temp/**/*.txt").ToArray(); // Then Assert.Equal(2, result.Length); Assert.True(result.Any(p => p.FullPath == "/Temp/Hello/World/Text.txt")); Assert.True(result.Any(p => p.FullPath == "/Temp/Goodbye/OtherText.txt")); }
public void Should_Return_Single_Path_For_Relative_Directory_Path_Without_Glob_Pattern() { // Given var fixture = new GlobberFixture(); fixture.SetWorkingDirectory("/Working/Foo"); // When var result = fixture.Match("./Bar"); // Then Assert.Equal(1, result.Length); Assert.ContainsDirectoryPath(result, "/Working/Foo/Bar"); }
public void Should_Return_Single_Path_For_Relative_File_Path_Without_Glob_Pattern() { // Given var fixture = GlobberFixture.UnixLike(); fixture.SetWorkingDirectory("/Working/Foo"); // When var result = fixture.Match("./Bar/Qux.c"); // Then Assert.Single(result); AssertEx.ContainsFilePath(result, "/Working/Foo/Bar/Qux.c"); }
public void Should_Return_Single_Path_Glob_Pattern_With_Predicate() { // Given var fixture = new GlobberFixture(); var predicate = new Func <IFileSystemInfo, bool>( i => i.Path.FullPath == "/Working/Foo/Bar/Qux.c"); // When var result = fixture.Match("./**/*.c", predicate); // Then Assert.Equal(1, result.Length); Assert.ContainsFilePath(result, "/Working/Foo/Bar/Qux.c"); }
public void Should_Return_Single_Path_For_Absolute_Directory_Path_Without_Glob_Pattern() { // Given var fixture = new GlobberFixture(); var globber = fixture.CreateGlobber(); // When var result = globber.Match("/Temp/Hello/World").ToArray(); // Then Assert.Equal(1, result.Length); Assert.IsType <DirectoryPath>(result[0]); Assert.Equal("/Temp/Hello/World", result[0].FullPath); }
public void Should_Return_Paths_Not_Affected_By_Walker_Hints() { // Given var fixture = new GlobberFixture(); var predicate = new Func <IFileSystemInfo, bool>(i => i.Path.FullPath != "/Working/Bar"); // When var result = fixture.Match("./**/Qux.h", predicate); // Then Assert.Equal(1, result.Length); Assert.ContainsFilePath(result, "/Working/Foo/Bar/Qux.h"); }
public void Can_Traverse_Recursivly() { // Given var fixture = new GlobberFixture(); var globber = new Globber(fixture.FileSystem, fixture.Environment); // When var result = globber.Match("/Temp/**/*.txt").ToArray(); // Then Assert.Equal(2, result.Length); Assert.Equal("/Temp/Hello/World/Text.txt", result[0].FullPath); Assert.Equal("/Temp/Goodbye/OtherText.txt", result[1].FullPath); }
public void Will_Fix_Root_If_Drive_Is_Missing_By_Using_The_Drive_From_The_Working_Directory() { // Given var fixture = new GlobberFixture(); fixture.SetWorkingDirectory("C:/Working/"); var globber = fixture.CreateGlobber(); // When var result = globber.Match("/Temp/Hello/World/Text.txt").ToArray(); // Then Assert.Equal(1, result.Length); Assert.Equal("C:/Temp/Hello/World/Text.txt", result[0].FullPath); }
public void Will_Fix_Root_If_Drive_Is_Missing_By_Using_The_Drive_From_The_Working_Directory() { // Given var fixture = new GlobberFixture(isUnix: false); fixture.Environment.WorkingDirectory.Returns("C:/Working/"); var globber = new Globber(fixture.FileSystem, fixture.Environment); // When var result = globber.Match("/Temp/Hello/World/Text.txt").ToArray(); // Then Assert.Equal(1, result.Length); Assert.Equal("C:/Temp/Hello/World/Text.txt", result[0].FullPath); }
public void Should_Return_File_For_Recursive_Wildcard_Pattern_Ending_With_Wildcard_Regex() { // Given var fixture = GlobberFixture.UnixLike(); // When var result = fixture.Match("/Working/**/*.c"); // Then result.Length.ShouldBe(5); result.ShouldContainFilePath("/Working/Foo/Bar/Qux.c"); result.ShouldContainFilePath("/Working/Foo/Bar/Qex.c"); result.ShouldContainFilePath("/Working/Foo/Baz/Qux.c"); result.ShouldContainFilePath("/Working/Foo/Bar/Baz/Qux.c"); result.ShouldContainFilePath("/Working/Bar/Qux.c"); }
public void Should_Return_File_For_Recursive_Wildcard_Pattern_Ending_With_Wildcard_Regex() { // Given var fixture = GlobberFixture.Windows(); // When var result = fixture.Match(@"\\Server\**\*.c"); // Then result.Length.ShouldBe(5); result.ShouldContainFilePath(@"\\Server\Foo\Bar\Qux.c"); result.ShouldContainFilePath(@"\\Server\Foo\Bar\Qex.c"); result.ShouldContainFilePath(@"\\Server\Foo\Baz\Qux.c"); result.ShouldContainFilePath(@"\\Server\Foo\Bar\Baz\Qux.c"); result.ShouldContainFilePath(@"\\Server\Bar\Qux.c"); }
public void Should_Return_Single_Path_For_Relative_File_Path_Without_Glob_Pattern() { // Given var fixture = new GlobberFixture(); fixture.SetWorkingDirectory("/Temp/Hello"); var globber = fixture.CreateGlobber(); // When var result = globber.Match("./World/Text.txt").ToArray(); // Then Assert.Equal(1, result.Length); Assert.IsType <FilePath>(result[0]); Assert.Equal("/Temp/Hello/World/Text.txt", result[0].FullPath); }
public void Can_Traverse_Recursively() { // Given var fixture = GlobberFixture.Windows(); // When var result = fixture.Match(@"\\Server\**\*.c"); // Then Assert.Equal(5, result.Length); AssertEx.ContainsFilePath(result, @"\\Server\Foo\Bar\Qux.c"); AssertEx.ContainsFilePath(result, @"\\Server\Foo\Baz\Qux.c"); AssertEx.ContainsFilePath(result, @"\\Server\Foo\Bar\Qex.c"); AssertEx.ContainsFilePath(result, @"\\Server\Foo\Bar\Baz/Qux.c"); AssertEx.ContainsFilePath(result, @"\\Server\Bar\Qux.c"); }
public void Should_Return_Single_Path_Glob_Pattern_With_Predicate() { // Given var fixture = new GlobberFixture(); var globber = fixture.CreateGlobber(); // When var result = globber.Match( "./**/*.txt", predicate => predicate.Path is DirectoryPath || predicate.Path.FullPath == "/Temp/Hello/World/Text.txt").ToArray(); // Then Assert.Equal(1, result.Length); Assert.IsType <FilePath>(result[0]); Assert.Equal("/Temp/Hello/World/Text.txt", result[0].FullPath); }
public void Can_Traverse_Recursively() { // Given var fixture = GlobberFixture.UnixLike(); // When var result = fixture.Match("/Working/**/*.c"); // Then result.Length.ShouldBe(5); result.ShouldContainFilePath("/Working/Foo/Bar/Qux.c"); result.ShouldContainFilePath("/Working/Foo/Baz/Qux.c"); result.ShouldContainFilePath("/Working/Foo/Bar/Qex.c"); result.ShouldContainFilePath("/Working/Foo/Bar/Baz/Qux.c"); result.ShouldContainFilePath("/Working/Bar/Qux.c"); }
public void Can_Traverse_Recursively() { // Given var fixture = GlobberFixture.Windows(); // When var result = fixture.Match(@"\\Server\**\*.c"); // Then result.Length.ShouldBe(5); result.ShouldContainFilePath(@"\\Server\Foo\Bar\Qux.c"); result.ShouldContainFilePath(@"\\Server\Foo\Baz\Qux.c"); result.ShouldContainFilePath(@"\\Server\Foo\Bar\Qex.c"); result.ShouldContainFilePath(@"\\Server\Foo\Bar\Baz/Qux.c"); result.ShouldContainFilePath(@"\\Server\Bar\Qux.c"); }
public void Should_Return_File_For_Recursive_Wildcard_Pattern_Ending_With_Wildcard_Regex() { // Given var fixture = GlobberFixture.Windows(); // When var result = fixture.Match(@"\\Server\**\*.c"); // Then Assert.Equal(5, result.Length); AssertEx.ContainsFilePath(result, @"\\Server\Foo\Bar\Qux.c"); AssertEx.ContainsFilePath(result, @"\\Server\Foo\Bar\Qex.c"); AssertEx.ContainsFilePath(result, @"\\Server\Foo\Baz\Qux.c"); AssertEx.ContainsFilePath(result, @"\\Server\Foo\Bar\Baz\Qux.c"); AssertEx.ContainsFilePath(result, @"\\Server\Bar\Qux.c"); }
public void Should_Return_File_For_Recursive_Wildcard_Pattern_Ending_With_Wildcard_Regex() { // Given var fixture = new GlobberFixture(); // When var result = fixture.Match("/Working/**/*.c"); // Then Assert.Equal(5, result.Length); Assert.ContainsFilePath(result, "/Working/Foo/Bar/Qux.c"); Assert.ContainsFilePath(result, "/Working/Foo/Bar/Qex.c"); Assert.ContainsFilePath(result, "/Working/Foo/Baz/Qux.c"); Assert.ContainsFilePath(result, "/Working/Foo/Bar/Baz/Qux.c"); Assert.ContainsFilePath(result, "/Working/Bar/Qux.c"); }
public void Can_Traverse_Recursively() { // Given var fixture = new GlobberFixture(); // When var result = fixture.Match("/Working/**/*.c"); // Then Assert.Equal(5, result.Length); Assert.ContainsFilePath(result, "/Working/Foo/Bar/Qux.c"); Assert.ContainsFilePath(result, "/Working/Foo/Baz/Qux.c"); Assert.ContainsFilePath(result, "/Working/Foo/Bar/Qex.c"); Assert.ContainsFilePath(result, "/Working/Foo/Bar/Baz/Qux.c"); Assert.ContainsFilePath(result, "/Working/Bar/Qux.c"); }
public void Should_Return_Only_Folders_For_Pattern_Ending_With_Recursive_Wildcard() { // Given var fixture = new GlobberFixture(); // When var result = fixture.Match("/Working/**"); // Then Assert.Equal(6, result.Length); Assert.ContainsDirectoryPath(result, "/Working"); Assert.ContainsDirectoryPath(result, "/Working/Foo"); Assert.ContainsDirectoryPath(result, "/Working/Foo/Bar"); Assert.ContainsDirectoryPath(result, "/Working/Foo/Baz"); Assert.ContainsDirectoryPath(result, "/Working/Foo/Bar/Baz"); Assert.ContainsDirectoryPath(result, "/Working/Bar"); }
public void Should_Return_Only_Files_Matching_Predicate() { // Given var fixture = GlobberFixture.UnixLike(); var predicate = new Func <IFile, bool>(i => i.Path.FullPath.EndsWith(".c")); // When var result = fixture.Match("/Working/**/*.*", null, predicate); // Then Assert.Equal(5, result.Length); AssertEx.ContainsFilePath(result, "/Working/Foo/Bar/Qux.c"); AssertEx.ContainsFilePath(result, "/Working/Foo/Bar/Qex.c"); AssertEx.ContainsFilePath(result, "/Working/Foo/Baz/Qux.c"); AssertEx.ContainsFilePath(result, "/Working/Foo/Bar/Baz/Qux.c"); AssertEx.ContainsFilePath(result, "/Working/Bar/Qux.c"); }
public void Should_Return_Only_Folders_For_Pattern_Ending_With_Recursive_Wildcard() { // Given var fixture = GlobberFixture.UnixLike(); // When var result = fixture.Match("/Working/**"); // Then result.Length.ShouldBe(6); result.ShouldContainDirectoryPath("/Working"); result.ShouldContainDirectoryPath("/Working/Foo"); result.ShouldContainDirectoryPath("/Working/Foo/Bar"); result.ShouldContainDirectoryPath("/Working/Foo/Baz"); result.ShouldContainDirectoryPath("/Working/Foo/Bar/Baz"); result.ShouldContainDirectoryPath("/Working/Bar"); }
public void Should_Return_Only_Files_Matching_Predicate() { // Given var fixture = GlobberFixture.UnixLike(); var predicate = new Func <IFile, bool>(i => i.Path.FullPath.EndsWith(".c", StringComparison.OrdinalIgnoreCase)); // When var result = fixture.Match("/Working/**/*.*", null, predicate); // Then result.Length.ShouldBe(5); result.ShouldContainFilePath("/Working/Foo/Bar/Qux.c"); result.ShouldContainFilePath("/Working/Foo/Bar/Qex.c"); result.ShouldContainFilePath("/Working/Foo/Baz/Qux.c"); result.ShouldContainFilePath("/Working/Foo/Bar/Baz/Qux.c"); result.ShouldContainFilePath("/Working/Bar/Qux.c"); }
public void Should_Return_Only_Folders_For_Pattern_Ending_With_Recursive_Wildcard() { // Given var fixture = GlobberFixture.Windows(); // When var result = fixture.Match(@"\\Server\**"); // Then Assert.Equal(6, result.Length); AssertEx.ContainsDirectoryPath(result, @"\\Server"); AssertEx.ContainsDirectoryPath(result, @"\\Server\Foo"); AssertEx.ContainsDirectoryPath(result, @"\\Server\Foo\Bar"); AssertEx.ContainsDirectoryPath(result, @"\\Server\Foo\Baz"); AssertEx.ContainsDirectoryPath(result, @"\\Server\Foo\Bar\Baz"); AssertEx.ContainsDirectoryPath(result, @"\\Server\Bar"); }
public void Should_Return_Only_Folders_For_Pattern_Ending_With_Recursive_Wildcard() { // Given var fixture = GlobberFixture.Windows(); // When var result = fixture.Match(@"\\Server\**"); // Then result.Length.ShouldBe(6); result.ShouldContainDirectoryPath(@"\\Server"); result.ShouldContainDirectoryPath(@"\\Server\Foo"); result.ShouldContainDirectoryPath(@"\\Server\Foo\Bar"); result.ShouldContainDirectoryPath(@"\\Server\Foo\Baz"); result.ShouldContainDirectoryPath(@"\\Server\Foo\Bar\Baz"); result.ShouldContainDirectoryPath(@"\\Server\Bar"); }
public void Should_Return_Only_Files_Matching_Predicate() { // Given var fixture = GlobberFixture.UnixLike(); var directoryPredicate = new Func <IFileSystemInfo, bool>(i => i.Path.FullPath.Contains("/Working")); var filePredicate = new Func <IFile, bool>(i => !i.Path.FullPath.EndsWith(".dll")); // When var result = fixture.Match("./**/*.*", directoryPredicate, filePredicate); // Then Assert.Equal(10, result.Length); AssertEx.ContainsFilePath(result, "/Working/Foo/Bar/Qux.c"); AssertEx.ContainsFilePath(result, "/Working/Foo/Bar/Qex.c"); AssertEx.ContainsFilePath(result, "/Working/Foo/Bar/Qux.h"); AssertEx.ContainsFilePath(result, "/Working/Foo/Baz/Qux.c"); AssertEx.ContainsFilePath(result, "/Working/Foo/Bar/Baz/Qux.c"); AssertEx.ContainsFilePath(result, "/Working/Bar/Qux.c"); AssertEx.ContainsFilePath(result, "/Working/Bar/Qux.h"); AssertEx.ContainsFilePath(result, "/Working/foobar.rs"); AssertEx.ContainsFilePath(result, "/Working/foobaz.rs"); AssertEx.ContainsFilePath(result, "/Working/foobax.rs"); }
public void Should_Return_Only_Files_Matching_Predicate() { // Given var fixture = GlobberFixture.UnixLike(); var directoryPredicate = new Func <IFileSystemInfo, bool>(i => i.Path.FullPath.Contains("/Working", StringComparison.OrdinalIgnoreCase)); var filePredicate = new Func <IFile, bool>(i => !i.Path.FullPath.EndsWith(".dll", StringComparison.OrdinalIgnoreCase)); // When var result = fixture.Match("./**/*.*", directoryPredicate, filePredicate); // Then result.Length.ShouldBe(10); result.ShouldContainFilePath("/Working/Foo/Bar/Qux.c"); result.ShouldContainFilePath("/Working/Foo/Bar/Qex.c"); result.ShouldContainFilePath("/Working/Foo/Bar/Qux.h"); result.ShouldContainFilePath("/Working/Foo/Baz/Qux.c"); result.ShouldContainFilePath("/Working/Foo/Bar/Baz/Qux.c"); result.ShouldContainFilePath("/Working/Bar/Qux.c"); result.ShouldContainFilePath("/Working/Bar/Qux.h"); result.ShouldContainFilePath("/Working/foobar.rs"); result.ShouldContainFilePath("/Working/foobaz.rs"); result.ShouldContainFilePath("/Working/foobax.rs"); }
public void Should_Return_Files_And_Folders_For_Pattern_Ending_With_Wildcard() { // Given var fixture = new GlobberFixture(); // When var result = fixture.Match("/Working/**/*"); // Then Assert.Equal(12, result.Length); Assert.ContainsDirectoryPath(result, "/Working/Foo"); Assert.ContainsDirectoryPath(result, "/Working/Foo/Bar"); Assert.ContainsDirectoryPath(result, "/Working/Foo/Baz"); Assert.ContainsDirectoryPath(result, "/Working/Foo/Bar/Baz"); Assert.ContainsDirectoryPath(result, "/Working/Bar"); Assert.ContainsFilePath(result, "/Working/Foo/Bar/Qux.c"); Assert.ContainsFilePath(result, "/Working/Foo/Bar/Qex.c"); Assert.ContainsFilePath(result, "/Working/Foo/Bar/Qux.h"); Assert.ContainsFilePath(result, "/Working/Foo/Baz/Qux.c"); Assert.ContainsFilePath(result, "/Working/Foo/Bar/Baz/Qux.c"); Assert.ContainsFilePath(result, "/Working/Bar/Qux.c"); Assert.ContainsFilePath(result, "/Working/Bar/Qux.h"); }