public void WhenCollectionWithValuesWithMultipleKeysThenShouldGroupValuesWithSameKey()
        {
            //Arrange
            var list = new List <Foo>();

            list.Add(new Foo()
            {
                IntProp = 42, StringProp = "First object with ID 42"
            });
            list.Add(new Foo()
            {
                IntProp = 42, StringProp = "Second object with ID 42"
            });
            list.Add(new Foo()
            {
                IntProp = 21, StringProp = "First object with ID 21"
            });

            //Act
            var dictionary = DictionaryUtil.ToDictionaryList(list, ks => ks.IntProp);

            //Assert
            Assert.AreEqual(2, dictionary.Count);
            Assert.AreEqual(2, dictionary[42].Count);
            Assert.AreEqual(1, dictionary[21].Count);
        }
 public void WhenNullCollectionThenShouldThrowException()
 {
     Assert.ThrowsException <ArgumentNullException>(() => DictionaryUtil.ToDictionaryList <int, int>(null, ks => ks));
 }