122 lines
3.2 KiB
C#
122 lines
3.2 KiB
C#
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());
|
|
}
|
|
}
|