public void ElementAtOrDefault_WhenGroupDoesNotExist_ShouldReturnDefaultValue() { var groupedCollection = new ObservableGroupedCollection <string, int>(); groupedCollection.AddGroup("A", 23); var result = groupedCollection.ElementAtOrDefault("I do not exist", 0); result.Should().Be(0); }
public void ElementAt_WhenGroupDoesNotExist_ShouldThrow() { var groupedCollection = new ObservableGroupedCollection <string, int>(); groupedCollection.AddGroup("A", 23); Action action = () => groupedCollection.ElementAt("I do not exist", 0); action.Should().Throw <InvalidOperationException>(); }
public void FirstOrDefault_WhenGroupDoesNotExist_ShouldReturnNull() { var groupedCollection = new ObservableGroupedCollection <string, int>(); groupedCollection.AddGroup("A", 23); var result = groupedCollection.FirstOrDefault("I do not exist"); result.Should().BeNull(); }
public void RemoveGroup_WhenSeveralGroupsExist_ShouldRemoveFirstGroup() { var groupedCollection = new ObservableGroupedCollection <string, int>(); groupedCollection.AddGroup("A", 1, 2, 3); groupedCollection.AddGroup("B", 4, 5, 6); groupedCollection.AddGroup("B", 7, 8); groupedCollection.RemoveGroup("B"); groupedCollection.Should().HaveCount(2); groupedCollection.ElementAt(0).Key.Should().Be("A"); groupedCollection.ElementAt(0).Should().HaveCount(3); groupedCollection.ElementAt(0).Should().ContainInOrder(1, 2, 3); groupedCollection.ElementAt(1).Key.Should().Be("B"); groupedCollection.ElementAt(1).Should().HaveCount(2); groupedCollection.ElementAt(1).Should().ContainInOrder(7, 8); }
public void SetItem_WhenIndexOutOfRange_ShoudThrow(int index) { var groupedCollection = new ObservableGroupedCollection <string, int>(); groupedCollection.AddGroup("A", 1, 2, 3); Action action = () => groupedCollection.SetItem("A", index, 23); action.Should().Throw <ArgumentOutOfRangeException>(); }
public void InsertItem_WhenGroupDoesNotExist_ShoudThrow() { var groupedCollection = new ObservableGroupedCollection <string, int>(); groupedCollection.AddGroup("A", 1, 2, 3); Action action = () => groupedCollection.InsertItem("I do not exist", 0, 23); action.Should().Throw <InvalidOperationException>(); }
public void RemoveItem_WhenRemovingLastItem_ShouldRemoveGroupIfRequired(bool removeGroupIfEmpty, bool expectGroupRemoved) { var groupedCollection = new ObservableGroupedCollection <string, int>(); groupedCollection.AddGroup("A", 1, 2, 3); groupedCollection.AddGroup("B", 4); groupedCollection.RemoveItem("B", 4, removeGroupIfEmpty); groupedCollection.Should().HaveCount(expectGroupRemoved ? 1 : 2); groupedCollection.ElementAt(0).Key.Should().Be("A"); groupedCollection.ElementAt(0).Should().HaveCount(3); groupedCollection.ElementAt(0).Should().ContainInOrder(1, 2, 3); if (!expectGroupRemoved) { groupedCollection.ElementAt(1).Key.Should().Be("B"); groupedCollection.ElementAt(1).Should().BeEmpty(); } }
public void RemoveGroup_WhenGroupDoesNotExists_ShouldDoNothing() { var groupedCollection = new ObservableGroupedCollection <string, int>(); groupedCollection.AddGroup("A", 1, 2, 3); groupedCollection.RemoveGroup("I do not exist"); groupedCollection.Should().ContainSingle(); groupedCollection.ElementAt(0).Key.Should().Be("A"); groupedCollection.ElementAt(0).Should().HaveCount(3); groupedCollection.ElementAt(0).Should().ContainInOrder(1, 2, 3); }
public void AddGroup_WithParamsCollection_ShouldAddGroup() { var groupedCollection = new ObservableGroupedCollection <string, int>(); var addedGroup = groupedCollection.AddGroup("new key", 23, 10, 42); addedGroup.Should().NotBeNull(); addedGroup.Key.Should().Be("new key"); addedGroup.Should().HaveCount(3); addedGroup.Should().ContainInOrder(23, 10, 42); groupedCollection.Should().ContainSingle(); groupedCollection.Should().HaveElementAt(0, addedGroup); }