Add promt fix tests
All checks were successful
SonarQube / Build and analyze (push) Successful in 2m54s
All checks were successful
SonarQube / Build and analyze (push) Successful in 2m54s
This commit is contained in:
@@ -5,6 +5,7 @@ using ChatBot.Services;
|
||||
using ChatBot.Tests.TestUtilities;
|
||||
using FluentAssertions;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.EntityFrameworkCore.Diagnostics;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Moq;
|
||||
@@ -27,6 +28,7 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
// Add in-memory database
|
||||
services.AddDbContext<ChatBotDbContext>(options =>
|
||||
options.UseInMemoryDatabase("TestDatabase")
|
||||
.ConfigureWarnings(w => w.Ignore(InMemoryEventId.TransactionIgnoredWarning))
|
||||
);
|
||||
|
||||
// Add mocked repository
|
||||
@@ -52,7 +54,7 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetOrCreate_ShouldReturnExistingSession_WhenSessionExists()
|
||||
public async Task GetOrCreateAsync_ShouldReturnExistingSession_WhenSessionExists()
|
||||
{
|
||||
// Arrange
|
||||
var existingSession = TestDataBuilder.Mocks.CreateChatSessionEntity();
|
||||
@@ -61,7 +63,7 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
.ReturnsAsync(existingSession);
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.GetOrCreate(12345, "private", "Test Chat");
|
||||
var result = await _sessionStorage.GetOrCreateAsync(12345, "private", "Test Chat");
|
||||
|
||||
// Assert
|
||||
result.Should().NotBeNull();
|
||||
@@ -70,14 +72,14 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Get_ShouldReturnSession_WhenSessionExists()
|
||||
public async Task GetAsync_ShouldReturnSession_WhenSessionExists()
|
||||
{
|
||||
// Arrange
|
||||
var sessionEntity = TestDataBuilder.Mocks.CreateChatSessionEntity();
|
||||
_repositoryMock.Setup(x => x.GetByChatIdAsync(12345)).ReturnsAsync(sessionEntity);
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.Get(12345);
|
||||
var result = await _sessionStorage.GetAsync(12345);
|
||||
|
||||
// Assert
|
||||
result.Should().NotBeNull();
|
||||
@@ -86,7 +88,7 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Get_ShouldReturnNull_WhenSessionDoesNotExist()
|
||||
public async Task GetAsync_ShouldReturnNull_WhenSessionDoesNotExist()
|
||||
{
|
||||
// Arrange
|
||||
_repositoryMock
|
||||
@@ -94,7 +96,7 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
.ReturnsAsync((ChatSessionEntity?)null);
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.Get(12345);
|
||||
var result = await _sessionStorage.GetAsync(12345);
|
||||
|
||||
// Assert
|
||||
result.Should().BeNull();
|
||||
@@ -120,13 +122,13 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Remove_ShouldReturnTrue_WhenSessionExists()
|
||||
public async Task RemoveAsync_ShouldReturnTrue_WhenSessionExists()
|
||||
{
|
||||
// Arrange
|
||||
_repositoryMock.Setup(x => x.DeleteAsync(12345)).ReturnsAsync(true);
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.Remove(12345);
|
||||
var result = await _sessionStorage.RemoveAsync(12345);
|
||||
|
||||
// Assert
|
||||
result.Should().BeTrue();
|
||||
@@ -134,13 +136,13 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Remove_ShouldReturnFalse_WhenSessionDoesNotExist()
|
||||
public async Task RemoveAsync_ShouldReturnFalse_WhenSessionDoesNotExist()
|
||||
{
|
||||
// Arrange
|
||||
_repositoryMock.Setup(x => x.DeleteAsync(12345)).ReturnsAsync(false);
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.Remove(12345);
|
||||
var result = await _sessionStorage.RemoveAsync(12345);
|
||||
|
||||
// Assert
|
||||
result.Should().BeFalse();
|
||||
@@ -148,14 +150,14 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetActiveSessionsCount_ShouldReturnCorrectCount()
|
||||
public async Task GetActiveSessionsCountAsync_ShouldReturnCorrectCount()
|
||||
{
|
||||
// Arrange
|
||||
var expectedCount = 5;
|
||||
_repositoryMock.Setup(x => x.GetActiveSessionsCountAsync()).ReturnsAsync(expectedCount);
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.GetActiveSessionsCount();
|
||||
var result = await _sessionStorage.GetActiveSessionsCountAsync();
|
||||
|
||||
// Assert
|
||||
result.Should().Be(expectedCount);
|
||||
@@ -163,14 +165,14 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CleanupOldSessions_ShouldReturnCorrectCount()
|
||||
public async Task CleanupOldSessionsAsync_ShouldReturnCorrectCount()
|
||||
{
|
||||
// Arrange
|
||||
var expectedCount = 3;
|
||||
_repositoryMock.Setup(x => x.CleanupOldSessionsAsync(24)).ReturnsAsync(expectedCount);
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.CleanupOldSessions(24);
|
||||
var result = await _sessionStorage.CleanupOldSessionsAsync(24);
|
||||
|
||||
// Assert
|
||||
result.Should().Be(expectedCount);
|
||||
@@ -178,34 +180,32 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetOrCreate_ShouldThrowInvalidOperationException_WhenRepositoryThrows()
|
||||
public async Task GetOrCreateAsync_ShouldThrowInvalidOperationException_WhenRepositoryThrows()
|
||||
{
|
||||
// Arrange
|
||||
_repositoryMock
|
||||
.Setup(x => x.GetOrCreateAsync(12345, "private", "Test Chat"))
|
||||
.Setup(x => x.GetOrCreateAsync(It.IsAny<long>(), It.IsAny<string>(), It.IsAny<string>()))
|
||||
.ThrowsAsync(new Exception("Database error"));
|
||||
|
||||
// Act
|
||||
var act = () => _sessionStorage.GetOrCreate(12345, "private", "Test Chat");
|
||||
Func<Task> act = async () => await _sessionStorage.GetOrCreateAsync(12345, "private", "Test Chat");
|
||||
|
||||
// Assert
|
||||
act.Should()
|
||||
.Throw<InvalidOperationException>()
|
||||
.WithMessage("Failed to get or create session for chat 12345")
|
||||
.WithInnerException<Exception>()
|
||||
.WithMessage("Database error");
|
||||
await act.Should()
|
||||
.ThrowAsync<InvalidOperationException>()
|
||||
.WithMessage("Failed to get or create session for chat 12345");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Get_ShouldReturnNull_WhenRepositoryThrows()
|
||||
public async Task GetAsync_ShouldReturnNull_WhenRepositoryThrows()
|
||||
{
|
||||
// Arrange
|
||||
_repositoryMock
|
||||
.Setup(x => x.GetByChatIdAsync(12345))
|
||||
.Setup(x => x.GetByChatIdAsync(It.IsAny<long>()))
|
||||
.ThrowsAsync(new Exception("Database error"));
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.Get(12345);
|
||||
var result = await _sessionStorage.GetAsync(12345);
|
||||
|
||||
// Assert
|
||||
result.Should().BeNull();
|
||||
@@ -238,7 +238,7 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
.ThrowsAsync(new Exception("Database error"));
|
||||
|
||||
// Act
|
||||
var act = async () => await _sessionStorage.SaveSessionAsync(session);
|
||||
Func<Task> act = async () => await _sessionStorage.SaveSessionAsync(session);
|
||||
|
||||
// Assert
|
||||
var exception = await act.Should()
|
||||
@@ -284,22 +284,22 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Remove_ShouldReturnFalse_WhenRepositoryThrows()
|
||||
public async Task RemoveAsync_ShouldReturnFalse_WhenRepositoryThrows()
|
||||
{
|
||||
// Arrange
|
||||
_repositoryMock
|
||||
.Setup(x => x.DeleteAsync(12345))
|
||||
.Setup(x => x.DeleteAsync(It.IsAny<long>()))
|
||||
.ThrowsAsync(new Exception("Database error"));
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.Remove(12345);
|
||||
var result = await _sessionStorage.RemoveAsync(12345);
|
||||
|
||||
// Assert
|
||||
result.Should().BeFalse();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetActiveSessionsCount_ShouldReturnZero_WhenRepositoryThrows()
|
||||
public async Task GetActiveSessionsCountAsync_ShouldReturnZero_WhenRepositoryThrows()
|
||||
{
|
||||
// Arrange
|
||||
_repositoryMock
|
||||
@@ -307,14 +307,14 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
.ThrowsAsync(new Exception("Database error"));
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.GetActiveSessionsCount();
|
||||
var result = await _sessionStorage.GetActiveSessionsCountAsync();
|
||||
|
||||
// Assert
|
||||
result.Should().Be(0);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CleanupOldSessions_ShouldReturnZero_WhenRepositoryThrows()
|
||||
public async Task CleanupOldSessionsAsync_ShouldReturnZero_WhenRepositoryThrows()
|
||||
{
|
||||
// Arrange
|
||||
_repositoryMock
|
||||
@@ -322,20 +322,21 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
.ThrowsAsync(new Exception("Database error"));
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.CleanupOldSessions(24);
|
||||
var result = await _sessionStorage.CleanupOldSessionsAsync(24);
|
||||
|
||||
// Assert
|
||||
result.Should().Be(0);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetOrCreate_WithCompressionService_ShouldSetCompressionService()
|
||||
public async Task GetOrCreateAsync_WithCompressionService_ShouldSetCompressionService()
|
||||
{
|
||||
// Arrange
|
||||
var compressionServiceMock = TestDataBuilder.Mocks.CreateCompressionServiceMock();
|
||||
var storageWithCompression = new DatabaseSessionStorage(
|
||||
_repositoryMock.Object,
|
||||
Mock.Of<ILogger<DatabaseSessionStorage>>(),
|
||||
_dbContext,
|
||||
compressionServiceMock.Object
|
||||
);
|
||||
|
||||
@@ -345,7 +346,7 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
.ReturnsAsync(sessionEntity);
|
||||
|
||||
// Act
|
||||
var result = storageWithCompression.GetOrCreate(12345, "private", "Test Chat");
|
||||
var result = await storageWithCompression.GetOrCreateAsync(12345, "private", "Test Chat");
|
||||
|
||||
// Assert
|
||||
result.Should().NotBeNull();
|
||||
@@ -353,7 +354,7 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Get_WithCompressionService_ShouldSetCompressionService()
|
||||
public async Task GetAsync_WithCompressionService_ShouldSetCompressionService()
|
||||
{
|
||||
// Arrange
|
||||
var loggerMock = new Mock<ILogger<DatabaseSessionStorage>>();
|
||||
@@ -361,6 +362,7 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
var storageWithCompression = new DatabaseSessionStorage(
|
||||
_repositoryMock.Object,
|
||||
loggerMock.Object,
|
||||
_dbContext,
|
||||
compressionServiceMock.Object
|
||||
);
|
||||
|
||||
@@ -380,7 +382,7 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
_repositoryMock.Setup(x => x.GetByChatIdAsync(12345)).ReturnsAsync(sessionEntity);
|
||||
|
||||
// Act
|
||||
var result = storageWithCompression.Get(12345);
|
||||
var result = await storageWithCompression.GetAsync(12345);
|
||||
|
||||
// Assert
|
||||
_repositoryMock.Verify(x => x.GetByChatIdAsync(12345), Times.Once);
|
||||
@@ -422,7 +424,7 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetOrCreate_WithDefaultParameters_ShouldUseDefaults()
|
||||
public async Task GetOrCreateAsync_WithDefaultParameters_ShouldUseDefaults()
|
||||
{
|
||||
// Arrange
|
||||
var sessionEntity = TestDataBuilder.Mocks.CreateChatSessionEntity();
|
||||
@@ -431,7 +433,7 @@ public class DatabaseSessionStorageTests : TestBase
|
||||
.ReturnsAsync(sessionEntity);
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.GetOrCreate(12345);
|
||||
var result = await _sessionStorage.GetOrCreateAsync(12345);
|
||||
|
||||
// Assert
|
||||
result.Should().NotBeNull();
|
||||
|
||||
Reference in New Issue
Block a user