public void ReduceShouldWork_ForDictionaries() { var elem1 = new DictionaryItem { x = 1, y = new Dictionary <string, string> { { "a", "b" } } }; var elem2 = new DictionaryItem { x = 1, y = new Dictionary <string, string> { { "c", "d" } } }; var result = elem1.ReduceCollectionProperties(elem2); Assert.AreEqual(1, result.x); Assert.IsNotNull(result.y); Assert.AreEqual(2, result.y.Count); Assert.AreEqual("a", result.y.Keys.FirstOrDefault()); Assert.AreEqual("d", result.y.Values.LastOrDefault()); }