public void ExecuteAsync_Error() { var handler = new ErrorMessageHanlder(); var initializer = new BaseClientService.Initializer { HttpClientFactory = new MockHttpClientFactory(handler) }; using (var service = new MockClientService(initializer)) { var request = new TestClientServiceRequest(service, "GET", null); AutoResetEvent resetEvent = new AutoResetEvent(false); var task = request.ExecuteAsync(); var error = string.Empty; task.ContinueWith(t => { // should not ENTER this code, the task should fail resetEvent.Set(); }, TaskContinuationOptions.OnlyOnRanToCompletion); task.ContinueWith(t => { // catch the error error = t.Exception.InnerException.ToString(); resetEvent.Set(); }, TaskContinuationOptions.NotOnRanToCompletion); resetEvent.WaitOne(); Assert.True(error.Contains(handler.ExpectedError), "Error message is invalid"); Assert.That(handler.Calls, Is.EqualTo(1)); } }
public void Execute_Error() { var handler = new ErrorMessageHanlder(); var initializer = new BaseClientService.Initializer() { HttpClientFactory = new MockHttpClientFactory(handler) }; using (var service = new MockClientService(initializer)) { var request = new TestClientServiceRequest(service, "GET", null); try { request.Execute(); Assert.Fail(); } catch (Exception ex) { Assert.True(ex.Message.Contains(handler.ExpectedError), "Error message is invalid"); } Assert.That(handler.Calls, Is.EqualTo(1)); } }