public void PropertyInMetadataValue() { XmlElement group = XmlTestUtilities.CreateBasicElement("ItemDefinitionGroup"); XmlElement item = XmlTestUtilities.AddChildElement(group, "CCompile"); XmlElement meta = XmlTestUtilities.AddChildElementWithInnerText(item, "Defines", "$(p1)"); ItemDefinitionLibrary library = new ItemDefinitionLibrary(new Project()); library.Add(group); BuildPropertyGroup pg1 = new BuildPropertyGroup(); pg1.SetProperty("p1", "v1"); library.Evaluate(pg1); Assertion.AssertEquals("v1", library.GetDefaultMetadataValue("ccompile", "defines")); // Change the original property group -- should not affect the metadata value which was // already evaluated pg1.SetProperty("p1", "v1b"); Assertion.AssertEquals("v1", library.GetDefaultMetadataValue("ccompile", "defines")); // Reevaluate with another property value BuildPropertyGroup pg2 = new BuildPropertyGroup(); pg2.SetProperty("p1", "v2"); library.Evaluate(pg2); Assertion.AssertEquals("v2", library.GetDefaultMetadataValue("ccompile", "defines")); }
public void SameGroupTwoChildrenSameItemTypeDifferentMetadata() { XmlElement group = XmlTestUtilities.CreateBasicElement("ItemDefinitionGroup"); XmlElement item1 = XmlTestUtilities.AddChildElement(group, "CCompile"); XmlElement meta1 = XmlTestUtilities.AddChildElementWithInnerText(item1, "Defines", "DEBUG"); XmlElement item2 = XmlTestUtilities.AddChildElement(group, "CCompile"); XmlElement meta2 = XmlTestUtilities.AddChildElementWithInnerText(item1, "WarningLevel", "W4"); ItemDefinitionLibrary library = new ItemDefinitionLibrary(new Project()); library.Add(group); library.Evaluate(null); Assertion.AssertEquals("DEBUG", library.GetDefaultMetadataValue("ccompile", "defines")); Assertion.AssertEquals("W4", library.GetDefaultMetadataValue("ccompile", "warninglevel")); }
public void Basic() { XmlElement group = GetBasicItemDefinitionGroupWithOneDefinitionAndOneMetadatum(); ItemDefinitionLibrary definitions = NewAndEvaluateItemDefinitionLibraryXml(group); Assertion.AssertEquals(1, definitions.GetDefaultedMetadataCount("CCompile")); Assertion.AssertEquals("DEBUG", definitions.GetDefaultMetadataValue("CCompile", "Defines")); }
public void GetMetadataBeforeEvaluate() { XmlElement group = XmlTestUtilities.CreateBasicElement("ItemDefinitionGroup"); ItemDefinitionLibrary library = new ItemDefinitionLibrary(new Project()); library.Add(group); library.GetDefaultMetadataValue("ccompile", "defines"); }
public void ExpandPropertiesInMetadatumValue() { XmlElement group = GetBasicItemDefinitionGroupWithOneDefinitionAndOneMetadatum(); group["CCompile"]["Defines"].InnerText = "A_$(p1)_$(p2)_B"; ItemDefinitionLibrary definitions = NewAndEvaluateItemDefinitionLibraryXml(group); Assertion.AssertEquals(1, definitions.GetDefaultedMetadataCount("CCompile")); Assertion.AssertEquals("A_v1__B", definitions.GetDefaultMetadataValue("CCompile", "Defines")); }
public void DuplicateMetadataLastOneWins() { XmlElement group = GetBasicItemDefinitionGroupWithOneDefinitionAndOneMetadatum(); XmlElement meta2 = XmlTestUtilities.AddChildElement(group.ChildNodes[0], "Defines"); meta2.InnerText = "RETAIL"; ItemDefinitionLibrary definitions = NewAndEvaluateItemDefinitionLibraryXml(group); Assertion.AssertEquals(1, definitions.GetDefaultedMetadataCount("CCompile")); Assertion.AssertEquals("RETAIL", definitions.GetDefaultMetadataValue("CCompile", "Defines")); }
public void TrueConditionOnEverything() { XmlElement group = GetBasicItemDefinitionGroupWithOneDefinitionAndOneMetadatum(); XmlTestUtilities.AddAttribute(group.ChildNodes[0], "Condition", "'v1'=='$(p1)'"); XmlTestUtilities.AddAttribute(group.ChildNodes[0].ChildNodes[0], "Condition", "'v1'=='$(p1)'"); XmlTestUtilities.AddAttribute(group.ChildNodes[0].ChildNodes[0], "Condition", "'v1'=='$(p1)'"); ItemDefinitionLibrary definitions = NewAndEvaluateItemDefinitionLibraryXml(group); Assertion.AssertEquals(1, definitions.GetDefaultedMetadataCount("CCompile")); Assertion.AssertEquals("DEBUG", definitions.GetDefaultMetadataValue("CCompile", "Defines")); }
public void Basic() { XmlElement group = XmlTestUtilities.CreateBasicElement("ItemDefinitionGroup"); XmlElement item = XmlTestUtilities.AddChildElement(group, "CCompile"); XmlElement meta = XmlTestUtilities.AddChildElementWithInnerText(item, "Defines", "DEBUG"); ItemDefinitionLibrary library = new ItemDefinitionLibrary(new Project()); library.Add(group); library.Evaluate(null); Assertion.AssertEquals("DEBUG", library.GetDefaultMetadataValue("ccompile", "defines")); }