public static void When_I_modify_an_ObservedCollection() { var observingClass = new CollectionObservingClass(); var observedCollection = observingClass.ObservedCollection; var propertiesThatChanged = observingClass.ObservePropertyChanges(); observedCollection.Add(1.0M); "it should only notify once that ObservingProperty, ObservingCalulatedProperty and ObservingMethodCallCalculatedProperty on the ObservingClass have changed" .AssertThat(propertiesThatChanged, Is.EquivalentTo(new[] { "ObservingProperty", "ObservingCalculatedProperty", "ObservingMethodCallCalculatedProperty" })); "it should update the backing field for the ObservedCollection property" .AssertThat(observingClass.ObservingProperty, Is.EqualTo(observedCollection.Sum())); }