Example #1
0
        public void ShouldRestrictTwoCategoriesWithSameNames()
        {
            GridEntryCollection <CategoryItemMock> collection = new GridEntryCollection <CategoryItemMock>();

            collection.Add(new CategoryItemMock("one"));
            collection.Add(new CategoryItemMock("one"));
        }
Example #2
0
        public void ShouldReturnItemByName()
        {
            CategoryItemMock category1 = new CategoryItemMock("one");
            CategoryItemMock category2 = new CategoryItemMock("two");

            GridEntryCollection <CategoryItemMock> collection = new GridEntryCollection <CategoryItemMock>();

            collection.Add(category1);
            collection.Add(category2);

            Assert.AreEqual(category1, collection["one"]);
            Assert.AreEqual(category2, collection["two"]);
        }
Example #3
0
        public void ShouldPerformBinarySearchWithComparer()
        {
            CategoryItemMock item1 = new CategoryItemMock("a");
            CategoryItemMock item2 = new CategoryItemMock("b");

            GridEntryCollection <CategoryItemMock> list = new GridEntryCollection <CategoryItemMock>();

            list.Add(item1);
            list.Add(item2);

            Assert.AreEqual <int>(0, list.BinarySearch(item1, new CategoryItemMockComparer()));
            Assert.AreEqual <int>(1, list.BinarySearch(item2, new CategoryItemMockComparer()));
        }
Example #4
0
        public void ShouldRemoveItemByIndex()
        {
            GridEntryCollection <CategoryItemMock> collection = new GridEntryCollection <CategoryItemMock>();

            collection.Add(new CategoryItemMock("name1"));
            collection.Add(new CategoryItemMock("name2"));

            Assert.AreEqual <int>(2, collection.Count);

            collection.RemoveAt(0);

            Assert.AreEqual <int>(1, collection.Count);
            Assert.IsNull(collection["name1"]);
        }
Example #5
0
        public void ShouldPerformItemsSort()
        {
            CategoryItemMock item1 = new CategoryItemMock("a");
            CategoryItemMock item2 = new CategoryItemMock("b");

            GridEntryCollection <CategoryItemMock> list = new GridEntryCollection <CategoryItemMock>();

            list.Add(item2);
            list.Add(item1);

            list.Sort(new CategoryItemMockComparer());

            Assert.AreEqual(item1, list[0]);
            Assert.AreEqual(item2, list[1]);
        }
Example #6
0
        public void ShouldRemoveAllItems()
        {
            GridEntryCollection <CategoryItemMock> collection = new GridEntryCollection <CategoryItemMock>();

            collection.Add(new CategoryItemMock("name1"));
            collection.Add(new CategoryItemMock("name2"));

            Assert.AreEqual <int>(2, collection.Count);

            collection.Clear();

            Assert.AreEqual <int>(0, collection.Count);
            Assert.IsNull(collection["name1"]);
            Assert.IsNull(collection["name2"]);
        }
Example #7
0
        public void ShouldPerformBinarySearch()
        {
            CategoryItemMock item1 = new CategoryItemMock("a");
            CategoryItemMock item2 = new CategoryItemMock("b");

            GridEntryCollection <CategoryItemMock> list = new GridEntryCollection <CategoryItemMock>();

            list.Add(item1);
            list.Add(item2);

            int result = list.BinarySearch(item1);

            Assert.AreEqual <int>(0, result);

            result = list.BinarySearch(item2);
            Assert.AreEqual <int>(1, result);
        }
Example #8
0
        public void ShouldRemplaceExistingItemByIndex()
        {
            GridEntryCollection <CategoryItemMock> collection = new GridEntryCollection <CategoryItemMock>();

            collection.Add(new CategoryItemMock("name1"));
            Assert.AreEqual <int>(1, collection.Count);

            CategoryItemMock item = new CategoryItemMock("name2");

            collection[0] = item;

            Assert.AreEqual <int>(1, collection.Count);
            Assert.IsNull(collection["name1"]);
            Assert.AreEqual(item, collection[0]);
            Assert.AreEqual(item, collection["name2"]);
        }
Example #9
0
        public CollectionItemValue(PropertyItemValue propertyItemValue, int index)
        {
            _propertyItemValue = propertyItemValue;
            _index             = index;

            var expandable = PropertyGridUtils.GetAttributes <ExpandableObjectAttribute>(Value);

            if (expandable.Any())
            {
                var descriptors = MetadataRepository.GetProperties(Value).Select(prop => prop.Descriptor);

                if (descriptors.Any())
                {
                    object objectValue;
                    if (Value is ICloneable valueToClone)
                    {
                        objectValue = valueToClone.Clone();
                    }
                    else
                    {
                        objectValue = Value;
                    }


                    HasSubProperties = true;

                    var properties = new GridEntryCollection <PropertyItem>();
                    foreach (PropertyDescriptor d in descriptors)
                    {
                        var item = new PropertyItem(_propertyItemValue.ParentProperty.Owner, objectValue, d);
                        item.IsBrowsable   = ShouldDisplayProperty(d);
                        item.ValueChanged += ItemOnValueChanged;
                        properties.Add(item);
                    }

                    if (_propertyItemValue.ParentProperty.Owner.PropertyComparer != null)
                    {
                        properties.Sort(_propertyItemValue.ParentProperty.Owner.PropertyComparer);
                    }

                    SubProperties = properties;
                }

                MetadataRepository.Remove(Value);
            }
        }