public void AddAll_triggers_both_add_events_for_each_item() { // Arrange int beforeAddCalls = 0, afterAddCalls = 0; var sut = new EventRaisingSet <Person> (_source); EventHandler <BeforeModifyEventArgs <Person> > incrementBefore = (sender, e) => beforeAddCalls++; EventHandler <AfterModifyEventArgs <Person> > incrementAfter = (sender, e) => afterAddCalls++; int itemCount = 3; var items = Enumerable.Range(0, 3).Select(x => new Person()); sut.BeforeAdd += incrementBefore; sut.AfterAdd += incrementAfter; // Act sut.AddAll(items); sut.BeforeAdd -= incrementBefore; sut.AfterAdd -= incrementAfter; // Assert Assert.AreEqual(itemCount, beforeAddCalls, "Before add"); Assert.AreEqual(itemCount, afterAddCalls, "After add"); }