public void SetDefaultForUnknownKeyThrowsException() { var mapper = new TelegramBotMapper(new TelegramBotClient(ApiKey), this.responseFactory); var result = JsonConvert.DeserializeObject <Response <Error> >(mapper.SetDefaultValue($"UnknownStuff", "test")); Assert.Equal(typeof(KeyNotFoundException).Name, result.Content.ExceptionType); }
public void TaskExceptionReturnsError() { var mapper = new TelegramBotMapper(new TelegramBotClient(ApiKey), this.responseFactory); var result = mapper.ProxyCall(this.ThrowingTaskAsync()); var errorResponse = JsonConvert.DeserializeObject <Response <Error> >(result); Assert.Equal(typeof(AccessViolationException).Name, errorResponse.Content.ExceptionType); }
public void FireAndForgetReturnsSuccessEvenIfTaskFails() { var mapper = new TelegramBotMapper(new TelegramBotClient(ApiKey), this.responseFactory); var result = mapper.FireAndForgetProxyCall(this.ThrowingTaskAsync()); var successResponse = JsonConvert.DeserializeObject <Response <string> >(result); Assert.True(successResponse.IsSuccess); }
public void SetDefaultForDisableNotificationIsHandled(string actual, bool expected) { var mapper = new TelegramBotMapper(new TelegramBotClient(ApiKey), this.responseFactory); JsonConvert.DeserializeObject <Response <string> >(mapper.SetDefaultValue($"{nameof(mapper.DisableNotifications)}", actual)); Assert.Equal(expected, mapper.DisableNotifications); var result = JsonConvert.DeserializeObject <Response <Error> >(mapper.SetDefaultValue($"{nameof(mapper.DisableNotifications)}", "unknown")); Assert.Equal(typeof(ArgumentException).Name, result.Content.ExceptionType); }
public void LongRunningTaskGetsCancelled() { var mapper = new TelegramBotMapper(new TelegramBotClient(ApiKey), this.responseFactory); var cts = new CancellationTokenSource(1000); var result = mapper.ProxyCall(this.LongRunningTaskAsync(cts.Token)); var errorResponse = JsonConvert.DeserializeObject <Response <Error> >(result); Assert.Equal(typeof(OperationCanceledException).Name, errorResponse.Content.ExceptionType); }
public void FireAndForgetErrorAddsMessageToStore() { var mapper = new TelegramBotMapper(new TelegramBotClient(ApiKey), this.responseFactory); mapper.HandleFireAndForgetError(new ArgumentException("something went wrong for testing purpose"), "testCorrelationId"); var result = mapper.GetMessageByCorrelationId("testCorrelationId"); var errorResponse = JsonConvert.DeserializeObject <Response <Error> >(result); Assert.Equal(typeof(ArgumentException).Name, errorResponse.Content.ExceptionType); }
public void MessageStoreReturnsErrorIfCorrelationKeyIsNotFound() { var mapper = new TelegramBotMapper(new TelegramBotClient(ApiKey), this.responseFactory); var result = mapper.GetMessageByCorrelationId("testCorrelationId"); var errorResponse = JsonConvert.DeserializeObject <Response <Error> >(result); Assert.Equal(typeof(KeyNotFoundException).Name, errorResponse.Content.ExceptionType); Assert.Equal("testCorrelationId", errorResponse.CorrelationKey); }
public void FireAndForgetSuccessAddsMessageToStore() { var mapper = new TelegramBotMapper(new TelegramBotClient(ApiKey), this.responseFactory); mapper.HandleFireAndForgetSuccess("successTest", "testCorrelationId"); var result = mapper.GetMessageByCorrelationId("testCorrelationId"); var successResponse = JsonConvert.DeserializeObject <Response <string> >(result); Assert.Equal("successTest", successResponse.Content); Assert.Equal("testCorrelationId", successResponse.CorrelationKey); }
public async Task LongRunningFireAndForgetTaskGetsCancelledAsync() { var mapper = new TelegramBotMapper(new TelegramBotClient(ApiKey), this.responseFactory); var cts = new CancellationTokenSource(3000); var result = mapper.FireAndForgetProxyCall(this.LongRunningTaskAsync(cts.Token)); var successResponse = JsonConvert.DeserializeObject <Response <string> >(result); Assert.True(successResponse.IsSuccess); Assert.False(string.IsNullOrWhiteSpace(successResponse.CorrelationKey)); var messageStoreResult = await this.WaitForMessageStoreAsync(mapper, successResponse.CorrelationKey); var correlatedResponse = JsonConvert.DeserializeObject <Response <Error> >(messageStoreResult); Assert.Equal(typeof(OperationCanceledException).Name, correlatedResponse.Content.ExceptionType); }