本文整理汇总了C#中DomNode.RemoveFromParent方法的典型用法代码示例。如果您正苦于以下问题:C# DomNode.RemoveFromParent方法的具体用法?C# DomNode.RemoveFromParent怎么用?C# DomNode.RemoveFromParent使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DomNode
的用法示例。
在下文中一共展示了DomNode.RemoveFromParent方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: TestMoveDomNode
public void TestMoveDomNode()
{
var root = new DomNode(RootType.Type, RootElement);
root.InitializeExtensions();
var folderChild1 = new DomNode(FolderType.Type);
var folderChild2 = new DomNode(FolderType.Type);
var itemChild1 = new DomNode(ItemType.Type);
var itemChild2 = new DomNode(ItemType.Type);
var validationContext = root.As<ValidationContext>();
// Set up the tree:
// root
// folder
// item
// folder1
// item
validationContext.RaiseBeginning();
root.SetAttribute(RootType.NameAttribute, "root");
itemChild1.SetAttribute(ItemType.NameAttribute, "item");
itemChild2.SetAttribute(ItemType.NameAttribute, "item");
folderChild1.SetAttribute(FolderType.NameAttribute, "folder");
folderChild2.SetAttribute(FolderType.NameAttribute, "folder");
folderChild1.GetChildList(FolderType.ItemChild).Add(itemChild1);
folderChild2.GetChildList(FolderType.ItemChild).Add(itemChild2);
root.GetChildList(RootType.FolderChild).Add(folderChild1);
root.GetChildList(RootType.FolderChild).Add(folderChild2);
// renames all folders and items with unique paths
validationContext.RaiseEnding();
validationContext.RaiseEnded();
// Move item from first folder to second folder
// root
// folder
// folder1
// item
// item1
validationContext.RaiseBeginning();
itemChild1.RemoveFromParent();
folderChild2.GetChildList(FolderType.ItemChild).Add(itemChild1);
validationContext.RaiseEnding();
validationContext.RaiseEnded();
Assert.DoesNotThrow(() => ValidateSubtree(folderChild2));
// Make sure that the existing child wasn't renamed. Only the moved child should be renamed.
Assert.True((string)itemChild2.GetAttribute(ItemType.NameAttribute) == "item");
// Rename 'item_1' to 'item'.
validationContext.RaiseBeginning();
itemChild1.SetAttribute(ItemType.NameAttribute, "item");
validationContext.RaiseEnding();
validationContext.RaiseEnded();
Assert.DoesNotThrow(() => ValidateSubtree(folderChild2));
// Make sure that the existing child wasn't renamed. Only the moved child should be renamed.
Assert.True((string)itemChild2.GetAttribute(ItemType.NameAttribute) == "item");
// Rename the root.
validationContext.RaiseBeginning();
root.SetAttribute(RootType.NameAttribute, "new_root");
validationContext.RaiseEnding();
validationContext.RaiseEnded();
Assert.DoesNotThrow(() => ValidateSubtree(root));
Assert.True((string)root.GetAttribute(RootType.NameAttribute) == "new_root");
}
示例2: TestRemoveFromParent
public void TestRemoveFromParent()
{
DomNodeType type = new DomNodeType("type");
ChildInfo childInfo = new ChildInfo("child", type);
type.Define(childInfo);
DomNode parent = new DomNode(type);
DomNode child = new DomNode(type);
parent.SetChild(childInfo, child);
child.RemoveFromParent();
Assert.Null(parent.GetChild(childInfo));
Assert.Null(child.Parent);
// Make sure the removed child has a null Parent. http://tracker.ship.scea.com/jira/browse/WWSATF-1336
parent.SetChild(childInfo, child);
DomNode newChild = new DomNode(type);
parent.SetChild(childInfo, newChild);
Assert.Null(child.Parent);
Assert.True(newChild.Parent == parent);
}
示例3: TestRemoveFromParentList
public void TestRemoveFromParentList()
{
DomNodeType type = new DomNodeType("type");
ChildInfo childInfo = new ChildInfo("child", type, true);
type.Define(childInfo);
DomNode parent = new DomNode(type);
DomNode child = new DomNode(type);
parent.GetChildList(childInfo).Add(child);
child.RemoveFromParent();
CollectionAssert.IsEmpty(parent.Children);
Assert.Null(child.Parent);
}
示例4: TestAddChildAndModifyInTransaction
public void TestAddChildAndModifyInTransaction()
{
DomNode child = m_root.GetChild(ChildInfo);
DomNode grandchild = child.GetChild(ChildInfo);
var greatGrandchild = new DomNode(ChildType, ChildInfo);
// Add a great-grandchild and then modify it. The attribute changed events should be ignored.
m_transactionContext.DoTransaction(() =>
{
grandchild.SetChild(ChildInfo, greatGrandchild);
greatGrandchild.SetAttribute(StringAttrInfo, "foo1");
}, "test transaction 1");
Assert.IsTrue(m_events.Count == 1);
CheckChildInsertedEvent(m_events[0], grandchild, greatGrandchild);
// Make sure the TransactionReporter's state gets cleared for the next transaction.
m_events.Clear();
m_transactionContext.DoTransaction(() =>
{
grandchild.SetChild(ChildInfo, null);//remove great-grandchild
greatGrandchild.SetChild(ChildInfo, new DomNode(ChildType));
grandchild.SetChild(ChildInfo, greatGrandchild);//insert great-grandchild (and its child)
greatGrandchild.SetAttribute(StringAttrInfo, "foo2");
greatGrandchild.GetChild(ChildInfo).SetAttribute(StringAttrInfo, "child foo2");
}, "test transaction 2");
Assert.IsTrue(m_events.Count == 2);
CheckChildRemovedEvent(m_events[0], grandchild, greatGrandchild);
CheckChildInsertedEvent(m_events[1], grandchild, greatGrandchild);
// This time, make sure that removing the child of a newly inserted tree doesn't generate new events.
greatGrandchild.RemoveFromParent();
var great2Grandchild = new DomNode(ChildType);
greatGrandchild.SetChild(ChildInfo, great2Grandchild);
m_events.Clear();
m_transactionContext.DoTransaction(() =>
{
grandchild.SetChild(ChildInfo, greatGrandchild);//insert great-grandchild and great2Grandchild
greatGrandchild.SetAttribute(StringAttrInfo, "foo3");
great2Grandchild.SetAttribute(StringAttrInfo, "foo3");
great2Grandchild.RemoveFromParent();
}, "test transaction 3");
Assert.IsTrue(m_events.Count == 1);
CheckChildInsertedEvent(m_events[0], grandchild, greatGrandchild);
// This time, make sure that removing two children of a newly inserted tree doesn't generate new events.
grandchild.SetChild(ChildInfo, null);
greatGrandchild.SetChild(ChildInfo, great2Grandchild);
var great3Grandchild = new DomNode(ChildType);
great2Grandchild.SetChild(ChildInfo, great3Grandchild);
m_events.Clear();
m_transactionContext.DoTransaction(() =>
{
grandchild.SetChild(ChildInfo, greatGrandchild);
greatGrandchild.SetAttribute(StringAttrInfo, "foo4");
great2Grandchild.SetAttribute(StringAttrInfo, "foo4");
great3Grandchild.SetAttribute(StringAttrInfo, "foo4");
great3Grandchild.RemoveFromParent();
great2Grandchild.RemoveFromParent();
}, "test transaction 4");
Assert.IsTrue(m_events.Count == 1);
CheckChildInsertedEvent(m_events[0], grandchild, greatGrandchild);
// Check that removing all the inserted children generates no events.
grandchild.SetChild(ChildInfo, null);
greatGrandchild.SetChild(ChildInfo, great2Grandchild);
great2Grandchild.SetChild(ChildInfo, great3Grandchild);
m_events.Clear();
m_transactionContext.DoTransaction(() =>
{
grandchild.SetChild(ChildInfo, greatGrandchild);
greatGrandchild.SetAttribute(StringAttrInfo, "foo5");
great2Grandchild.SetAttribute(StringAttrInfo, "foo5");
great3Grandchild.SetAttribute(StringAttrInfo, "foo5");
great3Grandchild.RemoveFromParent();
great2Grandchild.RemoveFromParent();
greatGrandchild.RemoveFromParent();
}, "test transaction 5");
Assert.IsTrue(m_events.Count == 0);
}