public void SetException_Should_RunContinuationIfOneIsPresent() { var taskSlim = new TaskSlim(null); taskSlim.IsCompleted.Should().BeFalse(); taskSlim.HasContinuation.Should().BeFalse(); taskSlim.HasException.Should().BeFalse(); taskSlim.RunContinuationAsync.Should().BeFalse(); var runCont = false; taskSlim.OnCompleted(() => { runCont = true; Assert.Throws <Exception>(() => { taskSlim.GetResult(); // throws the exception }); }); taskSlim.SetException(new Exception("nope"), runContinuationAsync: false); runCont.Should().BeTrue(); }
public void OnCompleted_Should_RunContinuationIfCompleted() { var taskSlim = new TaskSlim(null); taskSlim.IsCompleted.Should().BeFalse(); taskSlim.HasContinuation.Should().BeFalse(); taskSlim.HasException.Should().BeFalse(); taskSlim.RunContinuationAsync.Should().BeFalse(); taskSlim.SetCompleted(runContinuationAsync: false); var runCont = false; taskSlim.OnCompleted(() => { runCont = true; taskSlim.GetResult(); }); runCont.Should().BeTrue(); }
public void OnCompleted_Should_RunContinuationIfCompletedWithException() { var taskSlim = new TaskSlim(null); taskSlim.IsCompleted.Should().BeFalse(); taskSlim.HasContinuation.Should().BeFalse(); taskSlim.HasException.Should().BeFalse(); taskSlim.RunContinuationAsync.Should().BeFalse(); taskSlim.SetException(new Exception("nope"), runContinuationAsync: false); var runCont = false; taskSlim.OnCompleted(() => { runCont = true; Assert.Throws<Exception>(() => { taskSlim.GetResult(); // throws the exception }); }); runCont.Should().BeTrue(); }