add tests

This commit is contained in:
Leonid Pershin
2025-10-18 04:52:42 +03:00
parent c62edeea39
commit ee1ac75cf2
5 changed files with 1184 additions and 0 deletions

View File

@@ -0,0 +1,121 @@
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<ILogger<TelegramBotService>>();
var botClientMock = new Mock<ITelegramBotClient>();
var serviceProviderMock = new Mock<IServiceProvider>();
// 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<ILogger<TelegramMessageHandler>>();
var commandProcessorMock =
new Mock<ChatBot.Services.Telegram.Interfaces.ITelegramCommandProcessor>();
var messageSenderMock =
new Mock<ChatBot.Services.Telegram.Interfaces.ITelegramMessageSender>();
// 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<ILogger<TelegramErrorHandler>>();
// Act
var handler = new TelegramErrorHandler(loggerMock.Object);
// Assert
Assert.NotNull(handler);
}
[Fact]
public void TelegramMessageSender_ShouldCreateInstance()
{
// Arrange
var loggerMock = new Mock<ILogger<TelegramMessageSender>>();
// Act
var sender = new TelegramMessageSender(loggerMock.Object);
// Assert
Assert.NotNull(sender);
}
[Fact]
public void BotInfoService_ShouldCreateInstance()
{
// Arrange
var botClientMock = new Mock<ITelegramBotClient>();
var loggerMock = new Mock<ILogger<BotInfoService>>();
// Act
var service = new BotInfoService(botClientMock.Object, loggerMock.Object);
// Assert
Assert.NotNull(service);
}
[Fact]
public void BotInfoService_IsCacheValid_ShouldReturnFalseInitially()
{
// Arrange
var botClientMock = new Mock<ITelegramBotClient>();
var loggerMock = new Mock<ILogger<BotInfoService>>();
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<ITelegramBotClient>();
var loggerMock = new Mock<ILogger<BotInfoService>>();
var service = new BotInfoService(botClientMock.Object, loggerMock.Object);
// Act
service.InvalidateCache();
// Assert
Assert.False(service.IsCacheValid());
}
}