public void When_adding_or_replacing_items() { var p1 = new Person("A", 1); var p2 = new Person("A", 11); EasyDictionary <string, Person> dic = new EasyDictionary <string, Person>(p => p.Id); dic.Count.ShouldBe(0); dic.AddOrReplace(p1).ShouldBeTrue(); dic.Count.ShouldBe(1); dic["A"].ShouldBe(p1); dic.AddOrReplace(p1).ShouldBeFalse(); dic.Count.ShouldBe(1); dic["A"].ShouldBe(p1); dic.AddOrReplace(p2).ShouldBeTrue(); dic.Count.ShouldBe(1); dic["A"].ShouldNotBe(p1); dic["A"].ShouldBe(p2); }