Exemple #1
0
        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);
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #5
0
        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);
        }
Exemple #6
0
        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");
        }
Exemple #7
0
        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"));
        }
Exemple #8
0
        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));
            }
        }
Exemple #9
0
        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));
            }
        }
Exemple #10
0
        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");
        }
Exemple #11
0
        public void ItemizeItemVectorWithConcatenation()
        {
            Hashtable itemGroupsByType = this.GenerateTestItems();

            BuildItemGroup compileItems = ItemExpander.ItemizeItemVector("@(Compile)foo", null, LookupHelpers.CreateLookup(itemGroupsByType).ReadOnlyLookup);
        }