public void WhenSubscriberIsAlive_ThenObserverIsAlive() { var subscriber = new Mock<ISubscriber>(); var observer = new WeakObserverEvent<EventArgs>(subscriber.Object.OnNext, null, null); Assert.True(observer.IsAlive); }
public void WhenSubscriberIsAlive_ThenObserverIsAlive() { var subscriber = new Mock <ISubscriber>(); var observer = new WeakObserverEvent <EventArgs>(subscriber.Object.OnNext, null, null); Assert.True(observer.IsAlive); }
public void WhenCompleted_ThenInvokesCallback() { var subscriber = new Mock<ISubscriber>(); var observer = new WeakObserverEvent<EventArgs>(subscriber.Object.OnNext, subscriber.Object.OnError, subscriber.Object.OnCompleted); observer.OnCompleted(); subscriber.Verify(x => x.OnCompleted()); }
public void WhenCompleted_ThenInvokesCallback() { var subscriber = new Mock <ISubscriber>(); var observer = new WeakObserverEvent <EventArgs>(subscriber.Object.OnNext, subscriber.Object.OnError, subscriber.Object.OnCompleted); observer.OnCompleted(); subscriber.Verify(x => x.OnCompleted()); }
public void WhenError_ThenInvokesCallback() { var subscriber = new Mock<ISubscriber>(); var observer = new WeakObserverEvent<EventArgs>(subscriber.Object.OnNext, subscriber.Object.OnError, subscriber.Object.OnCompleted); var exception = new InvalidOperationException(); observer.OnError(exception); subscriber.Verify(x => x.OnError(exception)); }
public void WhenError_ThenInvokesCallback() { var subscriber = new Mock <ISubscriber>(); var observer = new WeakObserverEvent <EventArgs>(subscriber.Object.OnNext, subscriber.Object.OnError, subscriber.Object.OnCompleted); var exception = new InvalidOperationException(); observer.OnError(exception); subscriber.Verify(x => x.OnError(exception)); }
public void WhenSourceEventRaisedAndWeakSubscriberDisposed_ThenRemovesSubscriber() { EventHandler raiseHandler = null; var removed = 0; var observer = new Mock <IObserver <IEvent <EventArgs> > >(); var weakSubscriber = new WeakObserverEvent <EventArgs>(observer.Object.OnNext, observer.Object.OnError, observer.Object.OnCompleted); var observable = new WeakObservableEvent <EventHandler, EventArgs>( handler => new EventHandler(handler.Invoke), handler => raiseHandler = handler, handler => removed++); observable.Subscribe(weakSubscriber); Assert.NotNull(raiseHandler); Assert.Equal(0, removed); observer = null; GC.Collect(); raiseHandler(this, EventArgs.Empty); Assert.Equal(1, removed); }
public void WhenSourceEventRaisedAndWeakSubscriberDisposed_ThenRemovesSubscriber() { EventHandler raiseHandler = null; var removed = 0; var observer = new Mock<IObserver<IEvent<EventArgs>>>(); var weakSubscriber = new WeakObserverEvent<EventArgs>(observer.Object.OnNext, observer.Object.OnError, observer.Object.OnCompleted); var observable = new WeakObservableEvent<EventHandler, EventArgs>( handler => new EventHandler(handler.Invoke), handler => raiseHandler = handler, handler => removed++); observable.Subscribe(weakSubscriber); Assert.NotNull(raiseHandler); Assert.Equal(0, removed); observer = null; GC.Collect(); raiseHandler(this, EventArgs.Empty); Assert.Equal(1, removed); }