public void Then_Should_Throw_Exception_After_Tasks_Fail() { var exceptionToThrow = new ArgumentNullException(); var firstTask = new PandaTask(); var secondTask = new PandaTask(); var continiueTask = firstTask.Then(() => secondTask).Fail(_ => throw exceptionToThrow); Assert.IsNull(continiueTask.Error); Exception finalException = null; try { secondTask.Reject(); firstTask.Reject(); } catch (Exception e) when(e is ArgumentNullException nullException) { finalException = nullException; } Assert.That(exceptionToThrow, Is.EqualTo(finalException)); Assert.IsAssignableFrom <TaskRejectedException>(continiueTask.Error); }
public void RejectTest() { //arrange var testTask = new PandaTask <int>(); //act Exception testException = new Exception(); testTask.Reject(testException); //assert Assert.AreEqual(testException, testTask.Error); Exception realException = null; try { var _ = testTask.Result; } catch (Exception exception) { realException = exception; } Assert.AreEqual(testException, realException); }
public void SetValueAfterRejectTest() { //arrange var testTask = new PandaTask <int>(); testTask.Reject(); //act-assert Assert.Throws <InvalidOperationException>(() => testTask.SetValue(0)); }
public void DoubleRejectTest() { //arrange var testTask = new PandaTask <int>(); testTask.Reject(); //act-assert Assert.Throws <InvalidOperationException>(testTask.Reject); }
public void RejectTest() { //act Exception testError = new Exception(); _task.Reject(testError); //assert Assert.AreEqual(testError, _task.Error); Assert.AreEqual(PandaTaskStatus.Rejected, _task.Status); Assert.False(_taskSuccess); Assert.AreEqual(testError, _realException); }
public void Then_Should_Save_Exception_In_Stack_After_Tasks_Fail() { var rejectException = new Exception("some text"); var firstTask = new PandaTask(); var secondTask = new PandaTask(); var continiueTask = firstTask.Then(() => secondTask).Fail(_ => throw new ArgumentNullException()); try { secondTask.Reject(rejectException); firstTask.Reject(rejectException); } catch {} Assert.That(continiueTask.Error, Is.EqualTo(rejectException)); }
public void ThenResultRejectFirstTest() { //arrange var firstTask = new PandaTask(); var nextTask = new PandaTask <int>(); IPandaTask <int> resultTask = firstTask.Then(() => nextTask); //act var testError = new Exception(); firstTask.Reject(testError); //assert Assert.AreEqual(PandaTaskStatus.Rejected, resultTask.Status); Assert.AreEqual(testError, resultTask.Error); }
public void ResolveFromRejectTest() { //arrange var firstTask = new PandaTask <int>(); var secondTask = new PandaTask <int>(); const int realResult = 3; PandaTask <int> testTask = ConstructTask(firstTask, true, () => { secondTask.SetValue(realResult); return(secondTask); }); //act firstTask.Reject(); //assert Assert.AreEqual(realResult, testTask.Result); Assert.AreEqual(PandaTaskStatus.Resolved, testTask.Status); }
public void ChangeCollectionCompleteWithErrorTest() { //arrange var source = new PandaTask(); var tasks = new List <IPandaTask> { PandaTasksUtilities.CompletedTask, source }; var allTask = new WhenAllPandaTask(tasks, CancellationStrategy.Aggregate); tasks.Add(PandaTasksUtilities.CanceledTask); //act var testError = new Exception(); source.Reject(testError); //assert Assert.AreEqual(PandaTaskStatus.Rejected, allTask.Status); Assert.IsInstanceOf <AggregateException>(allTask.Error); CollectionAssert.AreEqual(new[] { testError }, (( AggregateException )allTask.Error).InnerExceptions); }