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);
        }