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); } }
public void CreateShouldReturnSingleChildUnchanged() { var glob = MSBuildGlob.Parse(""); IMSBuildGlob composite = CompositeGlob.Create(new[] { glob }); Assert.Same(glob, composite); }
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()))); }
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()))); }
public void CompositeMatching(CompositeGlob compositeGlob, string stringToMatch, bool shouldMatch) { if (shouldMatch) { Assert.True(compositeGlob.IsMatch(stringToMatch)); } else { Assert.False(compositeGlob.IsMatch(stringToMatch)); } }
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()))); }
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()); }
public bool ContainsItems(CompositeGlob items, string[] projectItemTypes = null) => false;
public void CreateShouldHandleZeroChildren() { IMSBuildGlob composite = CompositeGlob.Create(Enumerable.Empty <IMSBuildGlob>()); Assert.False(composite.IsMatch("")); }
protected virtual void VisitCompositeGlob(CompositeGlob compositeGlob) { }