public void AddChildrenDouble() { NpcChatProject project = new NpcChatProject(); DialogTree tree = project.ProjectDialogs.CreateNewDialogTree(); DialogTreeBranch start = tree.GetStart(); DialogTreeBranch aBranch = tree.CreateNewBranch(); Assert.NotNull(aBranch); Assert.IsTrue(start.AddChild(aBranch)); Assert.IsFalse(start.AddChild(aBranch)); Assert.IsTrue(aBranch.Parents.Contains(start)); Assert.AreEqual(1, aBranch.Parents.Count); Assert.AreEqual(0, aBranch.Children.Count); Assert.IsTrue(start.Children.Contains(aBranch)); Assert.AreEqual(0, start.Parents.Count); Assert.AreEqual(1, start.Children.Count); }
public void AddSelf() { NpcChatProject project = new NpcChatProject(); DialogTree tree = project.ProjectDialogs.CreateNewDialogTree(); DialogTreeBranch start = tree.GetStart(); DialogTreeBranch aBranch = tree.CreateNewBranch(); Assert.NotNull(aBranch); Assert.IsFalse(start.AddChild(start), "Should be able to add self"); Assert.IsFalse(start.AddParent(start), "Should be able to add self"); }
public void DependencyCheckBranched() { NpcChatProject project = new NpcChatProject(); DialogTree tree = project.ProjectDialogs.CreateNewDialogTree(); DialogTreeBranch a = tree.GetStart(); DialogTreeBranch b = tree.CreateNewBranch(); DialogTreeBranch c = tree.CreateNewBranch(); DialogTreeBranch d = tree.CreateNewBranch(); a.Name = "a"; b.Name = "b"; c.Name = "c"; c.Name = "d"; a.AddChild(b); a.AddChild(c); Assert.IsTrue(DialogUtilities.CheckForCircularDependency(tree, c, a)); Assert.IsFalse(DialogUtilities.CheckForCircularDependency(tree, c, d)); Assert.IsFalse(DialogUtilities.CheckForCircularDependency(tree, c, b)); }
public void AddChildCallback() { NpcChatProject project = new NpcChatProject(); DialogTree tree = project.ProjectDialogs.CreateNewDialogTree(); DialogTreeBranch start = tree.GetStart(); DialogTreeBranch aBranch = tree.CreateNewBranch(); bool parentCallback = false, childCallback = false; aBranch.OnBranchParentAdded += id => parentCallback = true; start.OnBranchChildAdded += id => childCallback = true; Assert.IsTrue(start.AddChild(aBranch)); Assert.IsTrue(parentCallback, "Parent Added Callback failed"); Assert.IsTrue(childCallback, "Child Added Callback failed"); }
public void RemoveChildCallback() { NpcChatProject project = new NpcChatProject(); DialogTree tree = project.ProjectDialogs.CreateNewDialogTree(); DialogTreeBranch start = tree.GetStart(); DialogTreeBranch aBranch = tree.CreateNewBranch(); Assert.IsTrue(start.AddChild(aBranch), "Cannot test removal if you can't add branches"); Assert.AreEqual(1, start.Children.Count); Assert.AreEqual(1, aBranch.Parents.Count); bool parentCallback = false, childCallback = false; aBranch.OnBranchParentRemoved += id => parentCallback = true; start.OnBranchChildRemoved += id => childCallback = true; Assert.IsTrue(start.RemoveChild(aBranch)); Assert.IsTrue(parentCallback, "Parent Added Callback failed"); Assert.IsTrue(childCallback, "Child Added Callback failed"); }
public void DependencyCheckBranchedChildren() { NpcChatProject project = new NpcChatProject(); DialogTree tree = project.ProjectDialogs.CreateNewDialogTree(); DialogTreeBranch start = tree.GetStart(); DialogTreeBranch a1 = tree.CreateNewBranch(); DialogTreeBranch a2 = tree.CreateNewBranch(); DialogTreeBranch b1 = tree.CreateNewBranch(); DialogTreeBranch b2 = tree.CreateNewBranch(); start.Name = nameof(start); a1.Name = nameof(a1); a2.Name = nameof(a2); b1.Name = nameof(b1); b2.Name = nameof(b2); start.AddChild(a1); a1.AddChild(a2); b1.AddChild(b2); Assert.IsFalse(DialogUtilities.CheckForCircularDependency(tree, a2, b1)); a2.AddChild(b1); Assert.IsTrue(DialogUtilities.CheckForCircularDependency(tree, b2, a1)); }
protected override void RelationshipCreate(DialogTreeBranch parent, DialogTreeBranch child) { parent.AddChild(child); }