public void ExpandEmbeddedItemVectorsSeparator() { Hashtable itemGroupsByType = this.GenerateTestItems(); XmlNode foo = new XmlDocument().CreateElement("Foo"); string evaluatedString = ItemExpander.ExpandEmbeddedItemVectors("@(Compile, '#')", foo, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup); Assertion.AssertEquals("a.cs#b.cs", evaluatedString); }
public void ExpandEmbeddedItemVectorsMultiple() { Hashtable itemGroupsByType = this.GenerateTestItems(); XmlNode foo = new XmlDocument().CreateElement("Foo"); string evaluatedString = ItemExpander.ExpandEmbeddedItemVectors("...@(Compile)...@(Resource)...", foo, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup); Assertion.AssertEquals("...a.cs;b.cs...c.resx...", evaluatedString); }
public void ItemizeItemVectorsWithLeadingAndTrailingSpaces() { Hashtable itemGroupsByType = this.GenerateTestItems(); // Spaces around are fine, but it's ignored for the item name BuildItemGroup items = ItemExpander.ItemizeItemVector("@( Compile )", null, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup); Assertion.AssertEquals("Resulting item group should have 2 items", 2, items.Count); }
public void ItemizeItemVectorWithSeparatorWithZeroItems1() { Hashtable itemGroupsByType = this.GenerateTestItems(); Match disposableMatch; BuildItemGroup zeroItems = ItemExpander.ItemizeItemVector("@(ItemThatDoesNotExist, ' ')", null, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup, out disposableMatch); Assertion.AssertEquals(0, zeroItems.Count); }
public void ItemizeItemVectorWithNoItemLists() { Hashtable itemGroupsByType = this.GenerateTestItems(); BuildItemGroup compileItems = ItemExpander.ItemizeItemVector("foobar", null, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup); // If the specified expression does not contain any item lists, then we expect ItemizeItemVector // to give us back null, but not throw an exception. Assertion.AssertNull(compileItems); }
public void ItemizeItemVectorWithSeparator() { Hashtable itemGroupsByType = this.GenerateTestItems(); Match disposableMatch; BuildItemGroup compileItems = ItemExpander.ItemizeItemVector("@(Compile, ' ')", null, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup, out disposableMatch); // @(Compile, ' ') is a scalar, so we should only have one item in the resulting item group Assertion.AssertEquals(1, compileItems.Count); Assertion.Assert(compileItems[0].Include == "a.cs b.cs"); }
public void ItemizeItemVectorNormal() { Hashtable itemGroupsByType = this.GenerateTestItems(); BuildItemGroup compileItems = ItemExpander.ItemizeItemVector("@(Compile)", null, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup); Assertion.AssertEquals("Resulting item group should have 2 items", 2, compileItems.Count); Assertion.AssertEquals("First item should be a.cs", "a.cs", compileItems[0].FinalItemSpecEscaped); Assertion.AssertEquals("First item WarningLevel should be 4", "4", compileItems[0].GetMetadata("WarningLevel")); Assertion.AssertEquals("First item should be b.cs", "b.cs", compileItems[1].FinalItemSpecEscaped); Assertion.AssertEquals("First item WarningLevel should be 3", "3", compileItems[1].GetMetadata("WarningLevel")); }
public void ItemizeItemVectorsWithValidNames() { Hashtable itemGroupsByType = this.GenerateTestItems(); foreach (string candidate in validItemVectors) { Assertion.AssertNotNull(candidate, ItemExpander.ItemizeItemVector(candidate, null, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup)); } foreach (string candidate in validItemVectorsWithTransforms) { Assertion.AssertNotNull(candidate, ItemExpander.ItemizeItemVector(candidate, null, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup)); } }
public void ItemizeItemVectorsWithInvalidNames() { Hashtable itemGroupsByType = this.GenerateTestItems(); // First, verify that a valid but simply non-existent item list returns an empty BuildItemGroup, // not just null. BuildItemGroup control = ItemExpander.ItemizeItemVector("@(nonexistent)", null, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup); Assertion.AssertEquals(0, control.Count); foreach (string candidate in invalidItemVectors) { Assertion.AssertNull(candidate, ItemExpander.ItemizeItemVector(candidate, null, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup)); } }
public void ItemizeItemVectorWithSeparatorBucketed() { Hashtable itemGroupsByType = this.GenerateTestItems(); Lookup lookup = LookupHelpers.CreateLookup(itemGroupsByType); lookup.EnterScope(); lookup.PopulateWithItem(new BuildItem("Compile", "c.cs")); lookup.PopulateWithItem(new BuildItem("Compile", "d.cs")); Match disposableMatch; BuildItemGroup compileItems = ItemExpander.ItemizeItemVector("@(Compile, ' ')", null, new ReadOnlyLookup(lookup), out disposableMatch); // @(Compile, ' ') is a scalar, so we should only have one item in the resulting item group Assertion.AssertEquals(1, compileItems.Count); Assertion.Assert(compileItems[0].Include == "c.cs d.cs"); }
public void ItemizeItemVectorWithConcatenation() { Hashtable itemGroupsByType = this.GenerateTestItems(); BuildItemGroup compileItems = ItemExpander.ItemizeItemVector("@(Compile)foo", null, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup); }