コード例 #1
0
        public void TestSourceSealPatterns()
        {
            var pt   = new PathTable();
            var st   = pt.StringTable;
            var dir1 = AbsolutePath.Create(pt, X("/c/sourceseal"));

            var f1 = dir1.Combine(pt, "file1");
            var f2 = dir1.Combine(pt, "file2");
            var f3 = dir1.Combine(pt, "file3.txt");
            var f4 = dir1.Combine(pt, "file4.txt");
            var f5 = dir1.Combine(pt, "file5.txt");
            var f6 = dir1.Combine(pt, "a");

            var nestedDir = AbsolutePath.Create(pt, X("/c/sourceseal/nested"));
            var nestedf1  = nestedDir.Combine(pt, "nested1");
            var nestedf2  = nestedDir.Combine(pt, "nested2.cs");

            var pattern1 = StringId.Create(st, "*");
            var pattern2 = StringId.Create(st, "*.txt");
            var pattern3 = StringId.Create(st, "*.cs");
            var pattern4 = StringId.Create(st, "file5.txt");
            var pattern5 = StringId.Create(st, "file1*");

            SourceSealWithPatterns sourceSeal1 = new SourceSealWithPatterns(dir1, ReadOnlyArray <StringId> .From(new[] { pattern1, pattern2 }), true);

            // Wildcard matches everything
            AssertTrue(sourceSeal1.Contains(pt, f1));
            AssertTrue(sourceSeal1.Contains(pt, f2));
            AssertTrue(sourceSeal1.Contains(pt, f3));
            AssertTrue(sourceSeal1.Contains(pt, f4));
            AssertTrue(sourceSeal1.Contains(pt, f5));
            AssertTrue(sourceSeal1.Contains(pt, f6));

            AssertTrue(!sourceSeal1.Contains(pt, nestedf1));
            AssertTrue(!sourceSeal1.Contains(pt, nestedf2));
            AssertTrue(sourceSeal1.Contains(pt, nestedf1, isTopDirectoryOnlyOverride: false));
            AssertTrue(sourceSeal1.Contains(pt, nestedf2, isTopDirectoryOnlyOverride: false));

            SourceSealWithPatterns sourceSeal2 = new SourceSealWithPatterns(dir1, ReadOnlyArray <StringId> .From(new[] { pattern3, pattern4, pattern5 }), true);

            // *.cs, file5.txt, file1*
            AssertTrue(sourceSeal2.Contains(pt, f1));
            AssertTrue(!sourceSeal2.Contains(pt, f2));
            AssertTrue(!sourceSeal2.Contains(pt, f3));
            AssertTrue(!sourceSeal2.Contains(pt, f4));
            AssertTrue(sourceSeal2.Contains(pt, f5));
            AssertTrue(!sourceSeal2.Contains(pt, f6));
            AssertTrue(!sourceSeal2.Contains(pt, nestedf1));
            AssertTrue(!sourceSeal2.Contains(pt, nestedf2));
            AssertTrue(!sourceSeal2.Contains(pt, nestedf1, isTopDirectoryOnlyOverride: false));
            AssertTrue(sourceSeal2.Contains(pt, nestedf2, isTopDirectoryOnlyOverride: false));
        }
コード例 #2
0
        public void SingleWildcardPatternMatchTestsWithEmptyString()
        {
            string filename = "";

            string[] passingPatterns = new string[] { "*" };
            foreach (var pattern in passingPatterns)
            {
                AssertTrue(SourceSealWithPatterns.SingleWildcardPatternMatch(filename, pattern), $"File name, '{filename}' does not pass the pattern, '{pattern}'");
            }

            string[] notPassingPatterns = new string[] { "*a", "i*", "f*axt", "file1.txt", "file", "file.tx", "abcdefgyhu" };
            foreach (var pattern in notPassingPatterns)
            {
                AssertTrue(!SourceSealWithPatterns.SingleWildcardPatternMatch(filename, pattern), $"File name, '{filename}' passes the pattern, '{pattern}'");
            }
        }