add tests

This commit is contained in:
Leonid Pershin
2025-10-17 05:47:18 +03:00
parent f7e3024e7e
commit 03eb0f22a2
41 changed files with 4001 additions and 30 deletions

View File

@@ -0,0 +1,186 @@
using ChatBot.Models;
using ChatBot.Models.Dto;
using FluentAssertions;
using OllamaSharp.Models.Chat;
namespace ChatBot.Tests.Models;
public class ChatSessionTests
{
[Fact]
public void Constructor_ShouldInitializeProperties()
{
// Arrange & Act
var session = new ChatSession();
// Assert
session.ChatId.Should().Be(0);
session.SessionId.Should().NotBeNullOrEmpty();
session.ChatType.Should().Be("private");
session.ChatTitle.Should().Be(string.Empty);
session.Model.Should().Be(string.Empty);
session.CreatedAt.Should().BeCloseTo(DateTime.UtcNow, TimeSpan.FromSeconds(1));
session.LastUpdatedAt.Should().BeCloseTo(DateTime.UtcNow, TimeSpan.FromSeconds(1));
session.GetAllMessages().Should().NotBeNull();
session.GetAllMessages().Should().BeEmpty();
}
[Fact]
public void AddUserMessage_ShouldAddMessageToSession()
{
// Arrange
var session = new ChatSession();
var content = "Hello";
var username = "testuser";
// Act
session.AddUserMessage(content, username);
// Assert
session.GetAllMessages().Should().HaveCount(1);
var message = session.GetAllMessages().First();
message.Role.Should().Be(ChatRole.User);
message.Content.Should().Be(content);
}
[Fact]
public void AddAssistantMessage_ShouldAddMessageToSession()
{
// Arrange
var session = new ChatSession();
var content = "Hello! How can I help you?";
// Act
session.AddAssistantMessage(content);
// Assert
session.GetAllMessages().Should().HaveCount(1);
var message = session.GetAllMessages().First();
message.Role.Should().Be(ChatRole.Assistant);
message.Content.Should().Be(content);
}
[Fact]
public void AddMessage_ShouldAddMessageToSession()
{
// Arrange
var session = new ChatSession();
var content = "You are a helpful assistant.";
var message = new ChatMessage { Role = ChatRole.System, Content = content };
// Act
session.AddMessage(message);
// Assert
session.GetAllMessages().Should().HaveCount(1);
var addedMessage = session.GetAllMessages().First();
addedMessage.Role.Should().Be(ChatRole.System);
addedMessage.Content.Should().Be(content);
}
[Fact]
public void ClearHistory_ShouldRemoveAllMessages()
{
// Arrange
var session = new ChatSession();
session.AddUserMessage("Hello", "testuser");
session.AddAssistantMessage("Hi there!");
// Act
session.ClearHistory();
// Assert
session.GetAllMessages().Should().BeEmpty();
}
[Fact]
public void GetMessageCount_ShouldReturnCorrectCount()
{
// Arrange
var session = new ChatSession();
session.AddUserMessage("Hello", "testuser");
session.AddAssistantMessage("Hi there!");
session.AddUserMessage("How are you?", "testuser");
// Act
var count = session.GetMessageCount();
// Assert
count.Should().Be(3);
}
[Fact]
public void GetLastMessage_ShouldReturnLastMessage()
{
// Arrange
var session = new ChatSession();
session.AddUserMessage("Hello", "testuser");
session.AddAssistantMessage("Hi there!");
session.AddUserMessage("How are you?", "testuser");
// Act
var messages = session.GetAllMessages();
var lastMessage = messages.LastOrDefault();
// Assert
lastMessage.Should().NotBeNull();
lastMessage!.Content.Should().Be("How are you?");
lastMessage.Role.Should().Be(ChatRole.User);
}
[Fact]
public void GetLastMessage_ShouldReturnNull_WhenNoMessages()
{
// Arrange
var session = new ChatSession();
// Act
var messages = session.GetAllMessages();
var lastMessage = messages.LastOrDefault();
// Assert
lastMessage.Should().BeNull();
}
[Fact]
public void AddMessage_ShouldUpdateLastUpdatedAt()
{
// Arrange
var session = new ChatSession();
var originalTime = session.LastUpdatedAt;
var message = new ChatMessage { Role = ChatRole.User, Content = "Test" };
// Act
session.AddMessage(message);
// Assert
session.LastUpdatedAt.Should().BeAfter(originalTime);
}
[Fact]
public void GetMessageCount_ShouldReturnZero_WhenNoMessages()
{
// Arrange
var session = new ChatSession();
// Act
var count = session.GetMessageCount();
// Assert
count.Should().Be(0);
}
[Fact]
public void GetMessageCount_ShouldReturnCorrectCount_WhenHasMessages()
{
// Arrange
var session = new ChatSession();
session.AddUserMessage("Hello", "testuser");
// Act
var count = session.GetMessageCount();
// Assert
count.Should().Be(1);
}
}