Пример #1
0
        private void Add(INodeInfo nodeInfo)
        {
            //insert nodeInfo to FCategoryList
            bool added = false;

            foreach (CategoryEntry ce in FCategoryList)
            {
                if (ce.Name == nodeInfo.Category)
                {
                    ce.Add(nodeInfo);
                    added = true;
                    break;
                }
            }

            //category not yet present. create a new one
            if (!added)
            {
                string description;
                if (FCategoryDict.ContainsKey(nodeInfo.Category))
                {
                    description = FCategoryDict[nodeInfo.Category];
                }
                else
                {
                    description = "";
                }

                var ce = new CategoryEntry(nodeInfo.Category, description);
                ce.Add(nodeInfo);
                FCategoryList.Add(ce);
            }

            //            NeedsUpdate = true;
        }
Пример #2
0
        public void TestObjectLifetime()
        {
            int createCount  = 0;
            int destroyCount = 0;

            var source = new SortedEditableList <MockObject, int>(mo => mo.Order);
            var target = new EditableCollection <MockObject>();

            Func <MockObject, MockObject> createMo = mo =>
            {
                createCount++;
                return(new MockObject(mo.Order));
            };

            Action <MockObject> destroyMo = mo =>
            {
                destroyCount++;
            };

            target.SyncWith(source, createMo, destroyMo);

            source.Add(new MockObject(0));

            Assert.AreEqual(1, createCount, "Create count");
            Assert.AreEqual(0, destroyCount, "Destroy count");

            var mock = new MockObject(-1);

            source.Add(mock);
            source.Add(new MockObject(-2));
            source.Add(new MockObject(10));

            Assert.AreEqual(4, createCount, "Create count");
            Assert.AreEqual(0, destroyCount, "Destroy count");

            source.Remove(mock);

            Assert.AreEqual(4, createCount, "Create count");
            Assert.AreEqual(1, destroyCount, "Destroy count");

            Assert.AreEqual(source.Count, target.Count);

            source.Clear();

            Assert.AreEqual(source.Count, target.Count);
            Assert.AreEqual(createCount, destroyCount, "Create count doesn't match destroy count after source.Clear()");
        }