public void Offline_Error_Fused() { var ms = new MonocastSubject <int>(); var ex = new IndexOutOfRangeException(); ms.OnNext(1); ms.OnNext(2); ms.OnNext(3); ms.OnError(ex); Assert.False(ms.HasObservers); Assert.True(ms.HasException()); Assert.False(ms.HasCompleted()); Assert.AreEqual(ex, ms.GetException()); var to = ms.Test(fusionMode: FusionSupport.Any); Assert.False(ms.HasObservers); to.AssertFuseable() .AssertFusionMode(FusionSupport.Async); to.AssertFailure(typeof(IndexOutOfRangeException), 1, 2, 3); ms.Test().AssertFailure(typeof(InvalidOperationException)); }
public void Offline_Basic_Fused() { var ms = new MonocastSubject <int>(); ms.OnNext(1); ms.OnNext(2); ms.OnNext(3); ms.OnCompleted(); Assert.False(ms.HasObservers); Assert.False(ms.HasException()); Assert.True(ms.HasCompleted()); Assert.Null(ms.GetException()); var to = ms.Test(fusionMode: FusionSupport.Any); to.AssertFuseable() .AssertFusionMode(FusionSupport.Async); Assert.False(ms.HasObservers); to.AssertResult(1, 2, 3); ms.Test().AssertFailure(typeof(InvalidOperationException)); }
public void Fused_Failure_Message() { var ms = new MonocastSubject <int>(); var to = ms.Test(fusionMode: FusionSupport.Any); to.AssertEmpty() .AssertFuseable() .AssertFusionMode(FusionSupport.Async); ms.OnNext(1); try { to.AssertEmpty(); Assert.Fail("Should have thrown"); } catch (AssertionException) { throw; } catch (Exception ex) { var msg = ex.Message; Assert.True(msg.Contains("fuseable!")); Assert.True(msg.Contains("fusion-requested")); Assert.True(msg.Contains("fusion-established")); } }
public void Online_Error() { var ms = new MonocastSubject <int>(); Assert.False(ms.HasObservers); Assert.False(ms.HasException()); Assert.False(ms.HasCompleted()); Assert.Null(ms.GetException()); var to = ms.Test(); ms.Test().AssertFailure(typeof(InvalidOperationException)); Assert.True(ms.HasObservers); Assert.False(ms.HasException()); Assert.False(ms.HasCompleted()); Assert.Null(ms.GetException()); to.AssertEmpty(); ms.OnNext(1); to.AssertValuesOnly(1); ms.OnNext(2); to.AssertValuesOnly(1, 2); ms.OnNext(3); to.AssertValuesOnly(1, 2, 3); var ex = new IndexOutOfRangeException(); ms.OnError(ex); to.AssertFailure(typeof(IndexOutOfRangeException), 1, 2, 3); Assert.False(ms.HasObservers); Assert.True(ms.HasException()); Assert.False(ms.HasCompleted()); Assert.AreEqual(ex, ms.GetException()); ms.Test().AssertFailure(typeof(InvalidOperationException)); }
public void OnTerminate_Dispose() { var count = 0; var ms = new MonocastSubject <int>(onTerminate: () => count++); ms.Test().Dispose(); Assert.AreEqual(1, count); }
public void Online_Basic() { var ms = new MonocastSubject <int>(); Assert.False(ms.HasObservers); Assert.False(ms.HasException()); Assert.False(ms.HasCompleted()); Assert.Null(ms.GetException()); var to = ms.Test(); ms.Test().AssertFailure(typeof(InvalidOperationException)); Assert.True(ms.HasObservers); Assert.False(ms.HasException()); Assert.False(ms.HasCompleted()); Assert.Null(ms.GetException()); to.AssertEmpty(); ms.OnNext(1); to.AssertValuesOnly(1); ms.OnNext(2); to.AssertValuesOnly(1, 2); ms.OnNext(3); to.AssertValuesOnly(1, 2, 3); ms.OnCompleted(); to.AssertResult(1, 2, 3); Assert.False(ms.HasObservers); Assert.False(ms.HasException()); Assert.True(ms.HasCompleted()); Assert.Null(ms.GetException()); ms.Test().AssertFailure(typeof(InvalidOperationException)); }