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");
        }
Example #3
0
        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");
        }
Example #6
0
        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));
        }
Example #7
0
 protected override void RelationshipCreate(DialogTreeBranch parent, DialogTreeBranch child)
 {
     parent.AddChild(child);
 }