public void TestConstructor_SetsSafeTask() { var objectUnderTest = new TestAsyncPropertyBase(_tcs.Task); Assert.IsNotNull(objectUnderTest.SafeTask); Assert.AreNotEqual(_tcs.Task, objectUnderTest.SafeTask); }
public async Task TestIsPending_CompletedTask() { var objectUnderTest = new TestAsyncPropertyBase(Task.CompletedTask); await objectUnderTest.SafeTask; Assert.IsFalse(objectUnderTest.IsPending); }
public async Task TestErrorMessage_IsAggregateMessageWithOnlyNullEmptyMessages() { var objectUnderTest = new TestAsyncPropertyBase(Task.FromException(new ExceptionWithNullMessage())); await objectUnderTest.SafeTask; Assert.AreEqual(new AggregateException(new ExceptionWithNullMessage()).Message, objectUnderTest.ErrorMessage); }
public void TestGetTaskResultSafe_Result() { const string expectedResult = "Expected Result"; string actualResult = TestAsyncPropertyBase.GetTaskResultSafe2(Task.FromResult(expectedResult)); Assert.AreEqual(expectedResult, actualResult); }
public async Task TestIsError_FaultedTask() { var objectUnderTest = new TestAsyncPropertyBase(Task.FromException(new Exception())); await objectUnderTest.SafeTask; Assert.IsTrue(objectUnderTest.IsError); }
public void TestGetTaskResultSafe_ErrorDefaultValue() { const string expectedDefaultValue = "Expected Default Value"; string actualResult = TestAsyncPropertyBase.GetTaskResultSafe2(Task.FromException <string>(new Exception()), expectedDefaultValue); Assert.AreEqual(expectedDefaultValue, actualResult); }
public async Task TestIsCanceled_CanceledTask() { var objectUnderTest = new TestAsyncPropertyBase(Task.FromCanceled(new CancellationToken(true))); await objectUnderTest.SafeTask; Assert.IsTrue(objectUnderTest.IsCanceled); }
public async Task TestIsSuccess_CompletedTask() { var objectUnderTest = new TestAsyncPropertyBase(Task.CompletedTask); await objectUnderTest.SafeTask; Assert.IsTrue(objectUnderTest.IsSuccess); }
public async Task TestOnTaskComplete_NotCalledForNullask() { var objectUnderTest = new TestAsyncPropertyBase(null); await objectUnderTest.SafeTask; Assert.AreEqual(0, objectUnderTest.OnTaskCompleteCallCount); }
public async Task TestOnTaskComplete_CalledForSuccessTask() { var objectUnderTest = new TestAsyncPropertyBase(_tcs.Task); _tcs.SetResult(null); await objectUnderTest.SafeTask; Assert.AreEqual(1, objectUnderTest.OnTaskCompleteCallCount); }
public async Task TestErrorMessage_SingleException() { const string testExceptionMessage = "Test Exception Message"; var objectUnderTest = new TestAsyncPropertyBase(Task.FromException(new Exception(testExceptionMessage))); await objectUnderTest.SafeTask; Assert.AreEqual(testExceptionMessage, objectUnderTest.ErrorMessage); }
public async Task TestOnTaskComplete_CalledForCanceledTask() { var objectUnderTest = new TestAsyncPropertyBase(_tcs.Task); _tcs.SetCanceled(); await objectUnderTest.SafeTask; Assert.AreEqual(1, objectUnderTest.OnTaskCompleteCallCount); }
public async Task TestSafeTask_DoesNotThrowOnPropertyChangedHandlerError() { var objectUnderTest = new TestAsyncPropertyBase(_tcs.Task); objectUnderTest.PropertyChanged += (sender, args) => throw new Exception(); _tcs.SetResult(null); await objectUnderTest.SafeTask; }
public async Task TestOnTaskComplete_CalledForFaultedTask() { var objectUnderTest = new TestAsyncPropertyBase(_tcs.Task); _tcs.SetException(new Exception()); await objectUnderTest.SafeTask; Assert.AreEqual(1, objectUnderTest.OnTaskCompleteCallCount); }
public void TestPropertyChangedRaised_PendingTask() { var objectUnderTest = new TestAsyncPropertyBase(_tcs.Task); var changedProperties = new List <string>(); objectUnderTest.PropertyChanged += (sender, args) => changedProperties.Add(args.PropertyName); CollectionAssert.AreEquivalent(new string[] { }, changedProperties); }
public async Task TestErrorMessage_IsFirstNonNullEmptyMessageOfAggregateInnerExceptions() { const string testExceptionMessage = "Test Multi Exception Message"; var objectUnderTest = new TestAsyncPropertyBase(_tcs.Task); _tcs.SetException(new[] { new ExceptionWithNullMessage(), new Exception(testExceptionMessage) }); await objectUnderTest.SafeTask; Assert.AreEqual(testExceptionMessage, objectUnderTest.ErrorMessage); }
public async Task TestPropertyChangedRaised_NullTask() { var objectUnderTest = new TestAsyncPropertyBase(null); var changedProperties = new List <string>(); objectUnderTest.PropertyChanged += (sender, args) => changedProperties.Add(args.PropertyName); await objectUnderTest.SafeTask; CollectionAssert.AreEquivalent(new string[] { }, changedProperties); }
public void TestAllProperties_PendingTaskDefaults() { var objectUnderTest = new TestAsyncPropertyBase(_tcs.Task); Assert.IsTrue(objectUnderTest.IsPending); Assert.IsFalse(objectUnderTest.IsCompleted); Assert.IsFalse(objectUnderTest.IsSuccess); Assert.IsFalse(objectUnderTest.IsCanceled); Assert.IsFalse(objectUnderTest.IsError); Assert.IsNull(objectUnderTest.ErrorMessage); }
public async Task TestPropertyChangedRaised_CanceledTask() { var objectUnderTest = new TestAsyncPropertyBase(_tcs.Task); var changedProperties = new List <string>(); objectUnderTest.PropertyChanged += (sender, args) => changedProperties.Add(args.PropertyName); _tcs.SetCanceled(); await objectUnderTest.SafeTask; CollectionAssert.AreEquivalent( new[] { nameof(objectUnderTest.IsPending), nameof(objectUnderTest.IsCompleted), nameof(objectUnderTest.IsCanceled) }, changedProperties); }
public async Task TestSafeTask_DoesNotThrowWithNullTask() { var objectUnderTest = new TestAsyncPropertyBase(null); await objectUnderTest.SafeTask; }
public void TestOnTaskComplete_NotCalledForPendingTask() { var objectUnderTest = new TestAsyncPropertyBase(_tcs.Task); Assert.AreEqual(0, objectUnderTest.OnTaskCompleteCallCount); }
public void TestConstructor_SetsActualTask() { var objectUnderTest = new TestAsyncPropertyBase(_tcs.Task); Assert.AreEqual(_tcs.Task, objectUnderTest.ActualTask); }
public void TestGetTaskResultSafe_Error() { string actualResult = TestAsyncPropertyBase.GetTaskResultSafe2(Task.FromException <string>(new Exception())); Assert.AreEqual(default(string), actualResult); }