public void ShouldRestrictTwoCategoriesWithSameNames() { GridEntryCollection <CategoryItemMock> collection = new GridEntryCollection <CategoryItemMock>(); collection.Add(new CategoryItemMock("one")); collection.Add(new CategoryItemMock("one")); }
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"]); }
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())); }
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"]); }
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]); }
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"]); }
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); }
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"]); }
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); } }