/// <summary> /// Removes a <ItemGroup> from the main project file. /// </summary> /// <param name="itemGroupToRemove"></param> /// <owner>RGoel</owner> public void RemoveItemGroup ( BuildItemGroup itemGroupToRemove ) { error.VerifyThrowArgumentNull(itemGroupToRemove, "itemGroupToRemove"); // Confirm that it's not an imported item group. error.VerifyThrowInvalidOperation(!itemGroupToRemove.IsImported, "CannotModifyImportedProjects"); // Confirm that it's actually a persisted BuildItemGroup in the current project. error.VerifyThrowInvalidOperation( (itemGroupToRemove.ParentProject == this) && (itemGroupToRemove.ItemGroupElement != null), "IncorrectObjectAssociation", "BuildItemGroup", "Project"); // Clear out the children of the BuildItemGroup. itemGroupToRemove.Clear(); XmlElement parentElement = itemGroupToRemove.ParentElement; ErrorUtilities.VerifyThrow(parentElement != null, "Why doesn't this IG have a parent XML element?"); parentElement.RemoveChild(itemGroupToRemove.ItemGroupElement); // Remove the item group from our collection. ErrorUtilities.VerifyThrow(itemGroupToRemove.ParentCollection != null, "Why doesn't this IG have a parent collection?"); itemGroupToRemove.ParentCollection.RemoveItemGroup(itemGroupToRemove); itemGroupToRemove.ClearParentProject(); this.MarkProjectAsDirty(); }
public void TestClear1 () { BuildItemGroup big = new BuildItemGroup (); big.AddNewItem ("a", "a"); big.AddNewItem ("b", "a"); Assert.AreEqual (2, big.Count, "A1"); big.Clear (); Assert.AreEqual (0, big.Count, "A2"); }
public void Clear() { XmlElement ig = CreatePersistedItemGroupElement(); BuildItemGroup group = new BuildItemGroup(ig, false, new Project()); BuildItem i1 = group[0]; group.Clear(); Assertion.AssertEquals(0, group.Count); Assertion.AssertEquals(0, ig.ChildNodes.Count); Assertion.AssertEquals(null, i1.ParentPersistedItemGroup); }