Пример #1
0
        public void MSBuildGlobVisitorShouldFindAllLeaves()
        {
            var g1 = MSBuildGlob.Parse("1*");
            var g2 = MSBuildGlob.Parse("2*");
            var g3 = MSBuildGlob.Parse("3*");
            var g4 = MSBuildGlob.Parse("4*");

            var expectedCollectedGlobs = new[]
            {
                g1,
                g2,
                g3,
                g4
            };

            var composite = new CompositeGlob(
                g1,
                g2,
                new CompositeGlob(
                    new MSBuildGlobWithGaps(g3, MSBuildGlob.Parse("x*")),
                    new CompositeGlob(
                        g4
                        )
                    )
                );

            var leafGlobs = composite.GetParsedGlobs().ToArray();

            Assert.Equal(4, leafGlobs.Length);

            foreach (var expectedGlob in expectedCollectedGlobs)
            {
                Assert.Contains(expectedGlob, leafGlobs);
            }
        }
Пример #2
0
        public void CreateShouldReturnSingleChildUnchanged()
        {
            var glob = MSBuildGlob.Parse("");

            IMSBuildGlob composite = CompositeGlob.Create(new[] { glob });

            Assert.Same(glob, composite);
        }
Пример #3
0
        public IMSBuildGlob ToMSBuildGlob()
        {
            if (Fragments.Count == 1)
            {
                // Optimize the common case, avoiding allocation of enumerable/enumerator.
                return(Fragments[0].ToMSBuildGlob());
            }

            return(CompositeGlob.Create(Fragments.Select(f => f.ToMSBuildGlob())));
        }
Пример #4
0
            protected override IMSBuildGlob CreateMsBuildGlob()
            {
                if (ReferencedItems.Count == 1)
                {
                    // Optimize the common case, avoiding allocation of enumerable/enumerator.
                    return(ReferencedItems[0].ItemAsValueFragment.ToMSBuildGlob());
                }

                return(CompositeGlob.Create(ReferencedItems.Select(i => i.ItemAsValueFragment.ToMSBuildGlob())));
            }
Пример #5
0
 public void CompositeMatching(CompositeGlob compositeGlob, string stringToMatch, bool shouldMatch)
 {
     if (shouldMatch)
     {
         Assert.True(compositeGlob.IsMatch(stringToMatch));
     }
     else
     {
         Assert.False(compositeGlob.IsMatch(stringToMatch));
     }
 }
Пример #6
0
        public bool ContainsItems(CompositeGlob items, string[] projectItemTypes = null)
        {
            IEnumerable <ProjectItem> projectItems = _project.Items;

            if (projectItemTypes != null && projectItemTypes.Length > 0)
            {
                projectItems = projectItems.Where(i => projectItemTypes.Contains(i.ItemType));
            }

            return(projectItems.Any(i => items.IsMatch(i.GetFullPath())));
        }
Пример #7
0
        public void CreateShouldReturnNewCompositeWhenMultipleProvided()
        {
            var glob1 = MSBuildGlob.Parse("");
            var glob2 = MSBuildGlob.Parse("");

            IMSBuildGlob result = CompositeGlob.Create(new[] { glob1, glob2 });

            var composite = Assert.IsType <CompositeGlob>(result);

            Assert.Same(glob1, composite.Globs.First());
            Assert.Same(glob2, composite.Globs.Skip(1).First());
            Assert.Equal(2, composite.Globs.Count());
        }
Пример #8
0
 public bool ContainsItems(CompositeGlob items, string[] projectItemTypes = null) => false;
Пример #9
0
        public void CreateShouldHandleZeroChildren()
        {
            IMSBuildGlob composite = CompositeGlob.Create(Enumerable.Empty <IMSBuildGlob>());

            Assert.False(composite.IsMatch(""));
        }
Пример #10
0
 protected virtual void VisitCompositeGlob(CompositeGlob compositeGlob)
 {
 }