Add promt fix tests
All checks were successful
SonarQube / Build and analyze (push) Successful in 2m54s

This commit is contained in:
Leonid Pershin
2025-10-21 12:07:56 +03:00
parent ef71568579
commit 1996fec14f
18 changed files with 398 additions and 333 deletions

View File

@@ -37,7 +37,7 @@ public class ChatServiceTests : UnitTestBase
}
[Fact]
public void GetOrCreateSession_ShouldCreateNewSession_WhenSessionDoesNotExist()
public async Task GetOrCreateSession_ShouldCreateNewSession_WhenSessionDoesNotExist()
{
// Arrange
var chatId = 12345L;
@@ -45,7 +45,7 @@ public class ChatServiceTests : UnitTestBase
var chatTitle = "Test Chat";
// Act
var session = _chatService.GetOrCreateSession(chatId, chatType, chatTitle);
var session = await _chatService.GetOrCreateSessionAsync(chatId, chatType, chatTitle);
// Assert
session.Should().NotBeNull();
@@ -53,22 +53,22 @@ public class ChatServiceTests : UnitTestBase
session.ChatType.Should().Be(chatType);
session.ChatTitle.Should().Be(chatTitle);
_sessionStorageMock.Verify(x => x.GetOrCreate(chatId, chatType, chatTitle), Times.Once);
_sessionStorageMock.Verify(x => x.GetOrCreateAsync(chatId, chatType, chatTitle), Times.Once);
}
[Fact]
public void GetOrCreateSession_ShouldSetCompressionService_WhenCompressionIsEnabled()
public async Task GetOrCreateSession_ShouldSetCompressionService_WhenCompressionIsEnabled()
{
// Arrange
var chatId = 12345L;
_aiSettings.EnableHistoryCompression = true;
// Act
var session = _chatService.GetOrCreateSession(chatId);
var session = await _chatService.GetOrCreateSessionAsync(chatId);
// Assert
session.Should().NotBeNull();
_sessionStorageMock.Verify(x => x.GetOrCreate(chatId, "private", ""), Times.Once);
_sessionStorageMock.Verify(x => x.GetOrCreateAsync(chatId, "private", ""), Times.Once);
}
[Fact]
@@ -191,7 +191,7 @@ public class ChatServiceTests : UnitTestBase
var newModel = "llama3.2";
var session = TestDataBuilder.ChatSessions.CreateBasicSession(chatId);
_sessionStorageMock.Setup(x => x.Get(chatId)).Returns(session);
_sessionStorageMock.Setup(x => x.GetAsync(chatId)).ReturnsAsync(session);
// Act
await _chatService.UpdateSessionParametersAsync(chatId, newModel);
@@ -208,7 +208,7 @@ public class ChatServiceTests : UnitTestBase
var chatId = 12345L;
var newModel = "llama3.2";
_sessionStorageMock.Setup(x => x.Get(chatId)).Returns((ChatBot.Models.ChatSession?)null);
_sessionStorageMock.Setup(x => x.GetAsync(chatId)).ReturnsAsync((ChatBot.Models.ChatSession?)null);
// Act
await _chatService.UpdateSessionParametersAsync(chatId, newModel);
@@ -227,7 +227,7 @@ public class ChatServiceTests : UnitTestBase
var chatId = 12345L;
var session = TestDataBuilder.ChatSessions.CreateSessionWithMessages(chatId, 5);
_sessionStorageMock.Setup(x => x.Get(chatId)).Returns(session);
_sessionStorageMock.Setup(x => x.GetAsync(chatId)).ReturnsAsync(session);
// Act
await _chatService.ClearHistoryAsync(chatId);
@@ -238,82 +238,82 @@ public class ChatServiceTests : UnitTestBase
}
[Fact]
public void GetSession_ShouldReturnSession_WhenSessionExists()
public async Task GetSession_ShouldReturnSession_WhenSessionExists()
{
// Arrange
var chatId = 12345L;
var session = TestDataBuilder.ChatSessions.CreateBasicSession(chatId);
_sessionStorageMock.Setup(x => x.Get(chatId)).Returns(session);
_sessionStorageMock.Setup(x => x.GetAsync(chatId)).ReturnsAsync(session);
// Act
var result = _chatService.GetSession(chatId);
var result = await _chatService.GetSessionAsync(chatId);
// Assert
result.Should().Be(session);
}
[Fact]
public void GetSession_ShouldReturnNull_WhenSessionDoesNotExist()
public async Task GetSession_ShouldReturnNull_WhenSessionDoesNotExist()
{
// Arrange
var chatId = 12345L;
_sessionStorageMock.Setup(x => x.Get(chatId)).Returns((ChatBot.Models.ChatSession?)null);
_sessionStorageMock.Setup(x => x.GetAsync(chatId)).ReturnsAsync((ChatBot.Models.ChatSession?)null);
// Act
var result = _chatService.GetSession(chatId);
var result = await _chatService.GetSessionAsync(chatId);
// Assert
result.Should().BeNull();
}
[Fact]
public void RemoveSession_ShouldReturnTrue_WhenSessionExists()
public async Task RemoveSession_ShouldReturnTrue_WhenSessionExists()
{
// Arrange
var chatId = 12345L;
_sessionStorageMock.Setup(x => x.Remove(chatId)).Returns(true);
_sessionStorageMock.Setup(x => x.RemoveAsync(chatId)).ReturnsAsync(true);
// Act
var result = _chatService.RemoveSession(chatId);
var result = await _chatService.RemoveSessionAsync(chatId);
// Assert
result.Should().BeTrue();
_sessionStorageMock.Verify(x => x.Remove(chatId), Times.Once);
_sessionStorageMock.Verify(x => x.RemoveAsync(chatId), Times.Once);
}
[Fact]
public void GetActiveSessionsCount_ShouldReturnCorrectCount()
public async Task GetActiveSessionsCount_ShouldReturnCorrectCount()
{
// Arrange
var expectedCount = 5;
_sessionStorageMock.Setup(x => x.GetActiveSessionsCount()).Returns(expectedCount);
_sessionStorageMock.Setup(x => x.GetActiveSessionsCountAsync()).ReturnsAsync(expectedCount);
// Act
var result = _chatService.GetActiveSessionsCount();
var result = await _chatService.GetActiveSessionsCountAsync();
// Assert
result.Should().Be(expectedCount);
}
[Fact]
public void CleanupOldSessions_ShouldReturnCleanedCount()
public async Task CleanupOldSessions_ShouldReturnCleanedCount()
{
// Arrange
var hoursOld = 24;
var expectedCleaned = 3;
_sessionStorageMock.Setup(x => x.CleanupOldSessions(hoursOld)).Returns(expectedCleaned);
_sessionStorageMock.Setup(x => x.CleanupOldSessionsAsync(hoursOld)).ReturnsAsync(expectedCleaned);
// Act
var result = _chatService.CleanupOldSessions(hoursOld);
var result = await _chatService.CleanupOldSessionsAsync(hoursOld);
// Assert
result.Should().Be(expectedCleaned);
_sessionStorageMock.Verify(x => x.CleanupOldSessions(hoursOld), Times.Once);
_sessionStorageMock.Verify(x => x.CleanupOldSessionsAsync(hoursOld), Times.Once);
}
[Theory]
@@ -395,8 +395,8 @@ public class ChatServiceTests : UnitTestBase
var message = "Hello, bot!";
_sessionStorageMock
.Setup(x => x.GetOrCreate(It.IsAny<long>(), It.IsAny<string>(), It.IsAny<string>()))
.Throws(new Exception("Database connection failed"));
.Setup(x => x.GetOrCreateAsync(It.IsAny<long>(), It.IsAny<string>(), It.IsAny<string>()))
.ThrowsAsync(new Exception("Database connection failed"));
// Act
var result = await _chatService.ProcessMessageAsync(chatId, username, message);
@@ -585,9 +585,9 @@ public class ChatServiceTests : UnitTestBase
session.MaxHistoryLength = 5; // force small history limit
_sessionStorageMock
.Setup(x => x.GetOrCreate(chatId, It.IsAny<string>(), It.IsAny<string>()))
.Returns(session);
_sessionStorageMock.Setup(x => x.Get(chatId)).Returns(session);
.Setup(x => x.GetOrCreateAsync(chatId, It.IsAny<string>(), It.IsAny<string>()))
.ReturnsAsync(session);
_sessionStorageMock.Setup(x => x.GetAsync(chatId)).ReturnsAsync(session);
_aiServiceMock
.Setup(x =>
x.GenerateChatCompletionWithCompressionAsync(
@@ -620,9 +620,9 @@ public class ChatServiceTests : UnitTestBase
session.MaxHistoryLength = 50; // avoid trimming impacting compression assertion
_sessionStorageMock
.Setup(x => x.GetOrCreate(chatId, It.IsAny<string>(), It.IsAny<string>()))
.Returns(session);
_sessionStorageMock.Setup(x => x.Get(chatId)).Returns(session);
.Setup(x => x.GetOrCreateAsync(chatId, It.IsAny<string>(), It.IsAny<string>()))
.ReturnsAsync(session);
_sessionStorageMock.Setup(x => x.GetAsync(chatId)).ReturnsAsync(session);
_aiServiceMock
.Setup(x =>
x.GenerateChatCompletionWithCompressionAsync(
@@ -692,7 +692,7 @@ public class ChatServiceTests : UnitTestBase
var newModel = "llama3.2";
var session = TestDataBuilder.ChatSessions.CreateBasicSession(chatId);
_sessionStorageMock.Setup(x => x.Get(chatId)).Returns(session);
_sessionStorageMock.Setup(x => x.GetAsync(chatId)).ReturnsAsync(session);
_sessionStorageMock
.Setup(x => x.SaveSessionAsync(It.IsAny<ChatBot.Models.ChatSession>()))
.ThrowsAsync(new Exception("Database save failed"));
@@ -709,7 +709,7 @@ public class ChatServiceTests : UnitTestBase
var chatId = 12345L;
var session = TestDataBuilder.ChatSessions.CreateSessionWithMessages(chatId, 5);
_sessionStorageMock.Setup(x => x.Get(chatId)).Returns(session);
_sessionStorageMock.Setup(x => x.GetAsync(chatId)).ReturnsAsync(session);
_sessionStorageMock
.Setup(x => x.SaveSessionAsync(It.IsAny<ChatBot.Models.ChatSession>()))
.ThrowsAsync(new Exception("Database save failed"));
@@ -723,18 +723,18 @@ public class ChatServiceTests : UnitTestBase
[InlineData(0)]
[InlineData(-1)]
[InlineData(int.MinValue)]
public void CleanupOldSessions_ShouldHandleInvalidHoursOld(int hoursOld)
public async Task CleanupOldSessions_ShouldHandleInvalidHoursOld(int hoursOld)
{
// Arrange
var expectedCleaned = 0;
_sessionStorageMock.Setup(x => x.CleanupOldSessions(hoursOld)).Returns(expectedCleaned);
_sessionStorageMock.Setup(x => x.CleanupOldSessionsAsync(hoursOld)).ReturnsAsync(expectedCleaned);
// Act
var result = _chatService.CleanupOldSessions(hoursOld);
var result = await _chatService.CleanupOldSessionsAsync(hoursOld);
// Assert
result.Should().Be(expectedCleaned);
_sessionStorageMock.Verify(x => x.CleanupOldSessions(hoursOld), Times.Once);
_sessionStorageMock.Verify(x => x.CleanupOldSessionsAsync(hoursOld), Times.Once);
}
[Theory]
@@ -763,7 +763,7 @@ public class ChatServiceTests : UnitTestBase
// Assert
result.Should().Be(expectedResponse);
_sessionStorageMock.Verify(x => x.GetOrCreate(chatId, "private", ""), Times.Once);
_sessionStorageMock.Verify(x => x.GetOrCreateAsync(chatId, "private", ""), Times.Once);
}
[Fact]