public void AddItem_WhenSeveralTargetGroupsAlreadyExist_ShouldAddItemToFirstExistingGroup() { var groupedCollection = new ObservableGroupedCollection <string, int>(); groupedCollection.AddGroup("A", 1, 2, 3); var targetGroup = groupedCollection.AddGroup("B", 4, 5, 6); groupedCollection.AddGroup("B", 7, 8, 9); groupedCollection.AddGroup("C", 10, 11); var addedGroup = groupedCollection.AddItem("B", 23); addedGroup.Should().BeSameAs(targetGroup); addedGroup.Key.Should().Be("B"); addedGroup.Should().HaveCount(4); addedGroup.Should().ContainInOrder(4, 5, 6, 23); groupedCollection.Should().HaveCount(4); 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(4); groupedCollection.ElementAt(1).Should().ContainInOrder(4, 5, 6, 23); groupedCollection.ElementAt(2).Key.Should().Be("B"); groupedCollection.ElementAt(2).Should().HaveCount(3); groupedCollection.ElementAt(2).Should().ContainInOrder(7, 8, 9); groupedCollection.ElementAt(3).Key.Should().Be("C"); groupedCollection.ElementAt(3).Should().HaveCount(2); groupedCollection.ElementAt(3).Should().ContainInOrder(10, 11); }
public void AddItem_WhenTargetGroupDoesNotExists_ShouldCreateAndAddNewGroup() { var groupedCollection = new ObservableGroupedCollection <string, int>(); var addedGroup = groupedCollection.AddItem("new key", 23); addedGroup.Should().NotBeNull(); addedGroup.Key.Should().Be("new key"); addedGroup.Should().ContainSingle(); addedGroup.Should().ContainInOrder(23); groupedCollection.Should().ContainSingle(); groupedCollection.Should().HaveElementAt(0, addedGroup); }