Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
0
        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);
        }
Пример #6
0
        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);
        }
Пример #7
0
        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);
        }
Пример #8
0
        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);
        }
Пример #9
0
        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);
        }