Files
ChatBot/ChatBot.Tests/Services/Telegram/TelegramServicesTests.cs
Leonid Pershin c9eac74e35
Some checks failed
SonarQube / Build and analyze (push) Failing after 3m2s
Unit Tests / Run Tests (push) Failing after 2m23s
Add more tests
2025-10-20 08:20:55 +03:00

124 lines
3.4 KiB
C#

using ChatBot.Services.Telegram.Interfaces;
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 messageSenderWrapperMock = new Mock<ITelegramMessageSenderWrapper>();
var sender = new TelegramMessageSender(loggerMock.Object, messageSenderWrapperMock.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());
}
}