public void Broadcaster_Catches_Exception_In_OnComplete() { var b = new Broadcaster <int>(); var reflectedValue = -1; b.Subscribe( x => { throw new Exception(); }, ex => { throw new Exception(); }, () => { reflectedValue = 1; throw new Exception(); }); b.Subscribe(x => { reflectedValue = x; }); b.OnCompleted(); Assert.Equal(1, reflectedValue); }
public void Broadcaster_Completed_Does_Not_Fire_OnCompleted() { var b = new Broadcaster <int>(); int count = 0; var sub = b.Subscribe(x => { }, () => { count++; }); Assert.NotNull(sub); //Dispose will call complete once b.OnCompleted(); //ensure it's not called again b.OnCompleted(); Assert.Equal(1, count); }
public void Broadcaster_Completed_Subscribe_Does_Not_Add_Observer() { var b = new Broadcaster <int>(); b.OnCompleted(); b.Subscribe(x => { }); Assert.True(b.IsComplete); Assert.False(b.HasObservers); }
public void Broadcaster_OnCompleted() { var b = new Broadcaster <int>(); bool complete = false; var sub = b.Subscribe(x => { }, () => { complete = true; }); Assert.NotNull(sub); b.OnCompleted(); Assert.True(complete); }
public void DelegateObserver_Disposed_Does_Not_Fire_OnComplete() { var b = new Broadcaster <int>(); int result = 0; var sub = b.Subscribe(x => { }, () => { result = 5; }); sub.Dispose(); b.OnCompleted(); Assert.Equal(0, result); }
public void Broadcaster_Completed_Does_Not_Fire_OnNext() { var b = new Broadcaster <int>(); int result = -1; var sub = b.Subscribe(x => { result = x; }); Assert.NotNull(sub); b.OnCompleted(); b.OnNext(2); Assert.NotEqual(2, result); Assert.Equal(-1, result); }