Example #1
0
        public void when_no_exlude_nor_include_matches_result_is_None()
        {
            FileGroupTarget target = new FileGroupTarget();
            FileNameFilter  filter = new FileNameFilter();

            filter.Filters.AddRangeArray(new PathFilter(true, "**/*.inc"), new PathFilter(false, "**/*.exc"));
            target.Filters.Add(filter);

            FileGroupTarget.Result r;
            {
                Assert.That(target.IncludedFile("toto.exc", out r), Is.EqualTo(FilterMatchResult.Excluded));
                Assert.That(target.IncludedFile("a/b.toto.exc", out r), Is.EqualTo(FilterMatchResult.Excluded));
                Assert.That(target.IncludedFile("toto.inc", out r), Is.EqualTo(FilterMatchResult.Included));
                Assert.That(target.IncludedFile("a/b/b.toto.inc", out r), Is.EqualTo(FilterMatchResult.Included));

                Assert.That(target.IncludedFile(String.Empty, out r), Is.EqualTo(FilterMatchResult.None));
                Assert.That(target.IncludedFile("murfn", out r), Is.EqualTo(FilterMatchResult.None));
            }
        }
Example #2
0
        public void selecting_files_from_this_solution()
        {
            using (var fs = new VF())
            {
                FileGroupTarget fgt = new FileGroupTarget();

                fgt.MatchBehavior = FileFilterMatchBehavior.NoneIsIncluded;

                FileNameFilter filter = new FileNameFilter();
                filter.Filters.Add(new PathFilter(false, "/.git/"));
                filter.Filters.Add(new PathFilter(false, "/CK.Globbing/File*/"));
                filter.Filters.Add(new PathFilter(true, "/packages/**/Circles/*.jpg"));
                filter.Filters.Add(new PathFilter(false, "/packages/**/*.jpg"));
                filter.Filters.Add(new PathFilter(false, "/**/ob?/"));
                fgt.Filters.Add(filter);

                IList <string> result = fgt.IncludedFiles("E:\\Dev\\CK-FileFilter\\", fs).Select(r => r.FilePath).ToList();

                Assert.That(result.Count, Is.GreaterThan(1));

                Assert.That(result.Any(f => f.Contains("\\.git\\")), Is.False);

                Assert.That(result.Any(f => f.Contains("\\CK.Globbing\\File")), Is.False);

                Assert.That(result.Count(f => f.EndsWith(".jpg")), Is.GreaterThan(0));
                Assert.That(result.Where(f => f.EndsWith(".jpg")).All(f => f.Contains("\\Circles\\")));

                Assert.That(result.Any(f => f.Contains("\\obj\\")), Is.False);

                filter.Clear();
                filter.Filters.Add(new PathFilter(false, "**/NUnit.Runners.2.6.4/tools/lib/**/*/"));
                filter.Filters.Add(new PathFilter(true, "**/NUnit.Runners.2.6.4/tools/lib/"));

                fgt.MatchBehavior = FileFilterMatchBehavior.Default;
                result            = fgt.IncludedFiles("E:\\Dev\\CK-FileFilter\\", fs).Select(r => r.FilePath).ToList();

                Assert.That(result.Count(), Is.EqualTo(8));
            }
        }
Example #3
0
        public void PackFromList()
        {
            var t1 = new FileGroupTarget()
            {
                Target = "/Target1"
            };
            var fn1 = new FileNameFilter()
            {
                Root = "ForTarget1"
            };
            var pf1 = new PathFilter(true, "/**.txt");

            t1.Filters.Add(fn1);
            fn1.Filters.Add(pf1);

            var t2 = new FileGroupTarget()
            {
                Target = "/Target2"
            };
            var fn2 = new FileNameFilter()
            {
                Root = "ForTarget2"
            };
            var pf2 = new PathFilter(false, "/**.txt");

            t2.Filters.Add(fn2);
            fn2.Filters.Add(pf2);

            var t3 = new FileGroupTarget()
            {
                Target = "/Target3"
            };
            var fn3 = new FileNameFilter()
            {
                Root = "ForTarget3"
            };
            var pf3e = new PathFilter(false, "/File6.txt");
            var pf3i = new PathFilter(true, "/**.txt");

            t3.Filters.Add(fn3);
            fn3.Filters.Add(pf3e);
            fn3.Filters.Add(pf3i);

            var t4 = new FileGroupTarget()
            {
                Target = "/"
            };
            var fn4 = new FileNameFilter()
            {
                Root = "/"
            };
            var pf4 = new PathFilter(true, "/RootFile.txt");

            t4.Filters.Add(fn4);
            fn4.Filters.Add(pf4);

            var targets = new[] { t1, t2, t3, t4 };

            var outputFile = System.IO.Path.Combine(_outputDirectory, "PackFromList.zip");

            CKPackAliases.Pack(_context, targets, outputFile);

            Assert.IsTrue(File.Exists(outputFile), "Created zip - Output file not found");

            CheckZipContent(outputFile, new[] {
                "RootFile.txt",
                @"Target1\File1.txt",
                @"Target1\File2.txt",
                @"Target3\File5.txt"
            });
        }