add tests
All checks were successful
SonarQube / Build and analyze (push) Successful in 3m39s

This commit is contained in:
Leonid Pershin
2025-10-21 02:30:04 +03:00
parent 928ae0555e
commit 2a26e84100
15 changed files with 1837 additions and 61 deletions

View File

@@ -55,7 +55,7 @@ namespace ChatBot.Services
/// <summary>
/// Process a user message and get AI response
/// </summary>
public async Task<string> ProcessMessageAsync(
public virtual async Task<string> ProcessMessageAsync(
long chatId,
string username,
string message,
@@ -192,7 +192,7 @@ namespace ChatBot.Services
/// <summary>
/// Get session information
/// </summary>
public ChatSession? GetSession(long chatId)
public virtual ChatSession? GetSession(long chatId)
{
return _sessionStorage.Get(chatId);
}

View File

@@ -178,7 +178,14 @@ namespace ChatBot.Services
// Add messages to session
foreach (var messageEntity in entity.Messages.OrderBy(m => m.MessageOrder))
{
var role = Enum.Parse<ChatRole>(messageEntity.Role);
var role = messageEntity.Role.ToLowerInvariant() switch
{
"user" => ChatRole.User,
"assistant" => ChatRole.Assistant,
"system" => ChatRole.System,
"tool" => ChatRole.Tool,
_ => throw new ArgumentException($"Unknown role: {messageEntity.Role}")
};
var message = new ChatMessage { Content = messageEntity.Content, Role = role };
session.AddMessage(message);
}

View File

@@ -24,7 +24,7 @@ namespace ChatBot.Services.Telegram.Services
/// <summary>
/// Получает информацию о боте (с кэшированием и автоматической инвалидацией)
/// </summary>
public async Task<User?> GetBotInfoAsync(CancellationToken cancellationToken = default)
public virtual async Task<User?> GetBotInfoAsync(CancellationToken cancellationToken = default)
{
// Проверяем, есть ли валидный кэш
if (

View File

@@ -23,10 +23,16 @@ namespace ChatBot.Services.Telegram.Services
CancellationToken cancellationToken = default
)
{
ReplyParameters? replyParameters = null;
if (replyToMessageId > 0)
{
replyParameters = new ReplyParameters { MessageId = replyToMessageId };
}
return await _botClient.SendMessage(
chatId: chatId,
text: text,
replyParameters: replyToMessageId,
replyParameters: replyParameters,
cancellationToken: cancellationToken
);
}