public void Array_First_Wins_Error() { var count = 0; var m = SingleSource.FromFunc <int>(() => ++ count); SingleSource.Amb( SingleSource.Error <int>(new InvalidOperationException()), m ) .Test() .AssertFailure(typeof(InvalidOperationException)); Assert.AreEqual(0, count); }
public void Array_Second_Wins_Error() { var count = 0; var m = SingleSource.FromFunc <int>(() => { count++; throw new InvalidOperationException(); }); SingleSource.Amb( SingleSource.Never <int>(), m ) .Test() .AssertFailure(typeof(InvalidOperationException)); Assert.AreEqual(1, count); }
public void Enumerable_MoveNext_Crash() { SingleSource.Amb(new FailingEnumerable <ISingleSource <int> >(false, true, false)) .Test() .AssertFailure(typeof(InvalidOperationException)); }