示例#1
0
                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");
                }
示例#2
0
            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");
            }
示例#3
0
            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"));
            }
示例#4
0
            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");
            }
示例#5
0
            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");
            }
示例#6
0
                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");
                }
示例#7
0
            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);
            }
示例#8
0
                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");
                }
示例#9
0
            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);
            }
示例#10
0
            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);
            }
示例#11
0
            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);
            }
示例#12
0
            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");
            }
示例#13
0
        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");
        }
示例#14
0
            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);
            }
示例#15
0
        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");
        }
示例#16
0
            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);
            }
示例#17
0
            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");
            }
示例#18
0
        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");
        }
示例#19
0
        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");
        }
示例#20
0
            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");
            }
示例#21
0
            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");
            }
示例#22
0
            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");
            }
示例#23
0
                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");
                }
示例#24
0
            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");
            }
示例#25
0
                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");
                }
示例#26
0
        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");
        }
示例#27
0
        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");
        }
示例#28
0
                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");
                }
示例#29
0
                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");
                }
示例#30
0
            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");
            }