using ChatBot.Services.Telegram.Services; using ChatBot.Tests.TestUtilities; using Microsoft.Extensions.Logging; using Moq; using Telegram.Bot; using Telegram.Bot.Types; namespace ChatBot.Tests.Services.Telegram; public class TelegramServicesTests : UnitTestBase { [Fact] public void TelegramBotService_ShouldCreateInstance() { // Arrange var loggerMock = new Mock>(); var botClientMock = new Mock(); var serviceProviderMock = new Mock(); // Act var service = new TelegramBotService( loggerMock.Object, botClientMock.Object, serviceProviderMock.Object ); // Assert Assert.NotNull(service); } [Fact] public void TelegramMessageHandler_ShouldCreateInstance() { // Arrange var loggerMock = new Mock>(); var commandProcessorMock = new Mock(); var messageSenderMock = new Mock(); // Act var handler = new TelegramMessageHandler( loggerMock.Object, commandProcessorMock.Object, messageSenderMock.Object ); // Assert Assert.NotNull(handler); } [Fact] public void TelegramErrorHandler_ShouldCreateInstance() { // Arrange var loggerMock = new Mock>(); // Act var handler = new TelegramErrorHandler(loggerMock.Object); // Assert Assert.NotNull(handler); } [Fact] public void TelegramMessageSender_ShouldCreateInstance() { // Arrange var loggerMock = new Mock>(); // Act var sender = new TelegramMessageSender(loggerMock.Object); // Assert Assert.NotNull(sender); } [Fact] public void BotInfoService_ShouldCreateInstance() { // Arrange var botClientMock = new Mock(); var loggerMock = new Mock>(); // Act var service = new BotInfoService(botClientMock.Object, loggerMock.Object); // Assert Assert.NotNull(service); } [Fact] public void BotInfoService_IsCacheValid_ShouldReturnFalseInitially() { // Arrange var botClientMock = new Mock(); var loggerMock = new Mock>(); var service = new BotInfoService(botClientMock.Object, loggerMock.Object); // Act var isValid = service.IsCacheValid(); // Assert Assert.False(isValid); } [Fact] public void BotInfoService_InvalidateCache_ShouldWork() { // Arrange var botClientMock = new Mock(); var loggerMock = new Mock>(); var service = new BotInfoService(botClientMock.Object, loggerMock.Object); // Act service.InvalidateCache(); // Assert Assert.False(service.IsCacheValid()); } }