public override async Task Execute(Message message, TelegramBotClient client) { var chatId = message.Chat.Id; var text = CommandsResources.NoExchangeRateFound; await client.SendChatActionAsync(chatId, ChatAction.Typing); try { var exchangeRate = service.LoadExchangeRateAsync(DateTime.Parse(message.Text)).Result.ToList(); if (exchangeRate.Any()) { var filteredExchangeRate = await service.FilterExchangeRatesAsync(message.From.Id, exchangeRate); text = ConvertExchangeRates(filteredExchangeRate); } await client.SendTextMessageAsync(chatId, text, ParseMode.Markdown); } catch (ExchangeRateNotFoundException) { await client.SendTextMessageAsync(chatId, text); } }
public async Task FilterExchangeRatesAsync_BothFilteredAndNotFoundIsPresented_CorrectFiltering() { mockUserService.Setup(x => x.FindUserAsync(It.IsAny <int>())).ReturnsAsync(userFixture.UserWithCurrencies); var filtered = await service.FilterExchangeRatesAsync(userFixture.UserId, fixture.NotFilteredExchangeRates); mockUserService.Verify(x => x.FindUserAsync(userFixture.UserId), Times.Once); Assert.Collection(filtered.Filtered, item => Assert.Equal("EUR", item.Currency)); Assert.Collection(filtered.NotFound, item => Assert.Equal(Currencies.USD, item.Currency)); }