public void NotifyObservers_ObserverDetached_ObserverIsNoLongerNotified() { // Setup var mocks = new MockRepository(); var observer = mocks.StrictMock <IObserver>(); mocks.ReplayAll(); var equalitySource = new object(); var sourceObject = new SimpleObservable(equalitySource); var context = new SimpleObservableWrappedObjectContext(sourceObject); context.Attach(observer); context.Detach(observer); // Call context.NotifyObservers(); // Assert mocks.VerifyAll(); // Expect no UpdateObserver calls on 'observer' }
public void GivenContextWithAttachedObserver_WhenWrappedDataNotifiesObservers_ThenObserverIsNotified() { // Given var mocks = new MockRepository(); var observer = mocks.StrictMock <IObserver>(); observer.Expect(o => o.UpdateObserver()); mocks.ReplayAll(); var equalitySource = new object(); var sourceObject = new SimpleObservable(equalitySource); var context = new SimpleObservableWrappedObjectContext(sourceObject); context.Attach(observer); // When sourceObject.NotifyObservers(); // Then mocks.VerifyAll(); // Expect call UpdateObserver on 'observer' }