示例#1
0
        private void AssertSynchronized(NbtTreeView view, NbtTreeModel model)
        {
            var view_queue  = new Queue <TreeNodeAdv>();
            var model_queue = new Queue <INode>();

            foreach (var root in view.Root.Children)
            {
                view_queue.Enqueue(root);
            }
            foreach (var root in model.Root.Children)
            {
                model_queue.Enqueue(root);
            }
            while (view_queue.Any() || model_queue.Any())
            {
                Assert.AreEqual(view_queue.Count, model_queue.Count);
                var view_item  = view_queue.Dequeue();
                var model_item = model_queue.Dequeue();
                Assert.AreEqual(view_item.DescendantsCount, model_item.DescendantsCount);
                foreach (var child in view_item.Children)
                {
                    view_queue.Enqueue(child);
                }
                foreach (var child in model_item.Children)
                {
                    model_queue.Enqueue(child);
                }
                Assert.AreEqual(view_item.Tag, model_item);
            }
        }
示例#2
0
        public void CheckSynchronized()
        {
            var root  = new NbtCompound("test");
            var view  = new NbtTreeView();
            var model = new NbtTreeModel((object)root);

            view.Model = model;
            Assert.AreEqual(model.Root.Children.Count(), 1);
            Assert.AreEqual(view.Root.Children.Count, 1);
            AssertSynchronized(view, model);
            root.Add(new NbtByte("test1"));
            AssertSynchronized(view, model);
            root.Add(new NbtByte("test2"));
            AssertSynchronized(view, model);
            root.Add(new NbtCompound("test3"));
            AssertSynchronized(view, model);
            root.Get <NbtCompound>("test3").Add(new NbtShort("test4"));
            Assert.AreEqual(view.Root.DescendantsCount, 5);
            Assert.AreEqual(model.Root.DescendantsCount, 5);
            AssertSynchronized(view, model);
            root.Remove("test2");
            AssertSynchronized(view, model);
            root.Get <NbtCompound>("test3").Clear();
            Assert.AreEqual(view.Root.DescendantsCount, 3);
            Assert.AreEqual(model.Root.DescendantsCount, 3);
            AssertSynchronized(view, model);
            root.Clear();
            AssertSynchronized(view, model);
        }