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:
@@ -17,13 +17,13 @@ public class InMemorySessionStorageTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetOrCreate_ShouldReturnExistingSession_WhenSessionExists()
|
||||
public async Task GetOrCreateAsync_ShouldReturnExistingSession_WhenSessionExists()
|
||||
{
|
||||
// Arrange
|
||||
_sessionStorage.GetOrCreate(12345, "private", "Test Chat");
|
||||
await _sessionStorage.GetOrCreateAsync(12345, "private", "Test Chat");
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.GetOrCreate(12345, "private", "Test Chat");
|
||||
var result = await _sessionStorage.GetOrCreateAsync(12345, "private", "Test Chat");
|
||||
|
||||
// Assert
|
||||
result.Should().NotBeNull();
|
||||
@@ -32,10 +32,10 @@ public class InMemorySessionStorageTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetOrCreate_ShouldCreateNewSession_WhenSessionDoesNotExist()
|
||||
public async Task GetOrCreateAsync_ShouldCreateNewSession_WhenSessionDoesNotExist()
|
||||
{
|
||||
// Act
|
||||
var result = _sessionStorage.GetOrCreate(12345, "group", "Test Group");
|
||||
var result = await _sessionStorage.GetOrCreateAsync(12345, "group", "Test Group");
|
||||
|
||||
// Assert
|
||||
result.Should().NotBeNull();
|
||||
@@ -45,10 +45,10 @@ public class InMemorySessionStorageTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetOrCreate_ShouldUseDefaultValues_WhenParametersNotProvided()
|
||||
public async Task GetOrCreateAsync_ShouldUseDefaultValues_WhenParametersNotProvided()
|
||||
{
|
||||
// Act
|
||||
var result = _sessionStorage.GetOrCreate(12345);
|
||||
var result = await _sessionStorage.GetOrCreateAsync(12345);
|
||||
|
||||
// Assert
|
||||
result.Should().NotBeNull();
|
||||
@@ -58,23 +58,23 @@ public class InMemorySessionStorageTests
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Get_ShouldReturnSession_WhenSessionExists()
|
||||
public async Task GetAsync_ShouldReturnSession_WhenSessionExists()
|
||||
{
|
||||
// Arrange
|
||||
var session = _sessionStorage.GetOrCreate(12345, "private", "Test Chat");
|
||||
var session = await _sessionStorage.GetOrCreateAsync(12345, "private", "Test Chat");
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.Get(12345);
|
||||
var result = await _sessionStorage.GetAsync(12345);
|
||||
|
||||
// Assert
|
||||
result.Should().BeSameAs(session);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Get_ShouldReturnNull_WhenSessionDoesNotExist()
|
||||
public async Task GetAsync_ShouldReturnNull_WhenSessionDoesNotExist()
|
||||
{
|
||||
// Act
|
||||
var result = _sessionStorage.Get(99999);
|
||||
var result = await _sessionStorage.GetAsync(99999);
|
||||
|
||||
// Assert
|
||||
result.Should().BeNull();
|
||||
@@ -84,7 +84,7 @@ public class InMemorySessionStorageTests
|
||||
public async Task SaveSessionAsync_ShouldUpdateExistingSession()
|
||||
{
|
||||
// Arrange
|
||||
var session = _sessionStorage.GetOrCreate(12345, "private", "Original Title");
|
||||
var session = await _sessionStorage.GetOrCreateAsync(12345, "private", "Original Title");
|
||||
session.ChatTitle = "Updated Title";
|
||||
session.LastUpdatedAt = DateTime.UtcNow;
|
||||
|
||||
@@ -92,7 +92,7 @@ public class InMemorySessionStorageTests
|
||||
await _sessionStorage.SaveSessionAsync(session);
|
||||
|
||||
// Assert
|
||||
var savedSession = _sessionStorage.Get(12345);
|
||||
var savedSession = await _sessionStorage.GetAsync(12345);
|
||||
savedSession.Should().NotBeNull();
|
||||
savedSession!.ChatTitle.Should().Be("Updated Title");
|
||||
}
|
||||
@@ -101,121 +101,123 @@ public class InMemorySessionStorageTests
|
||||
public async Task SaveSessionAsync_ShouldAddNewSession()
|
||||
{
|
||||
// Arrange
|
||||
var session = _sessionStorage.GetOrCreate(12345, "private", "Original Title");
|
||||
var session = await _sessionStorage.GetOrCreateAsync(12345, "private", "Original Title");
|
||||
session.ChatTitle = "New Session";
|
||||
|
||||
// Act
|
||||
await _sessionStorage.SaveSessionAsync(session);
|
||||
|
||||
// Assert
|
||||
var savedSession = _sessionStorage.Get(12345);
|
||||
var savedSession = await _sessionStorage.GetAsync(12345);
|
||||
savedSession.Should().NotBeNull();
|
||||
savedSession!.ChatTitle.Should().Be("New Session");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Remove_ShouldReturnTrue_WhenSessionExists()
|
||||
public async Task RemoveAsync_ShouldReturnTrue_WhenSessionExists()
|
||||
{
|
||||
// Arrange
|
||||
_sessionStorage.GetOrCreate(12345, "private", "Test Chat");
|
||||
await _sessionStorage.GetOrCreateAsync(12345, "private", "Test Chat");
|
||||
|
||||
// Act
|
||||
var result = _sessionStorage.Remove(12345);
|
||||
var result = await _sessionStorage.RemoveAsync(12345);
|
||||
|
||||
// Assert
|
||||
result.Should().BeTrue();
|
||||
_sessionStorage.Get(12345).Should().BeNull();
|
||||
(await _sessionStorage.GetAsync(12345)).Should().BeNull();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Remove_ShouldReturnFalse_WhenSessionDoesNotExist()
|
||||
public async Task RemoveAsync_ShouldReturnFalse_WhenSessionDoesNotExist()
|
||||
{
|
||||
// Act
|
||||
var result = _sessionStorage.Remove(99999);
|
||||
var result = await _sessionStorage.RemoveAsync(99999);
|
||||
|
||||
// Assert
|
||||
result.Should().BeFalse();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetActiveSessionsCount_ShouldReturnCorrectCount()
|
||||
public async Task GetActiveSessionsCountAsync_ShouldReturnCorrectCount()
|
||||
{
|
||||
// Arrange
|
||||
_sessionStorage.GetOrCreate(12345, "private", "Chat 1");
|
||||
_sessionStorage.GetOrCreate(67890, "group", "Chat 2");
|
||||
_sessionStorage.GetOrCreate(11111, "private", "Chat 3");
|
||||
await _sessionStorage.GetOrCreateAsync(12345, "private", "Chat 1");
|
||||
await _sessionStorage.GetOrCreateAsync(67890, "group", "Chat 2");
|
||||
await _sessionStorage.GetOrCreateAsync(11111, "private", "Chat 3");
|
||||
|
||||
// Act
|
||||
var count = _sessionStorage.GetActiveSessionsCount();
|
||||
var count = await _sessionStorage.GetActiveSessionsCountAsync();
|
||||
|
||||
// Assert
|
||||
count.Should().Be(3);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetActiveSessionsCount_ShouldReturnZero_WhenNoSessions()
|
||||
public async Task GetActiveSessionsCountAsync_ShouldReturnZero_WhenNoSessions()
|
||||
{
|
||||
// Act
|
||||
var count = _sessionStorage.GetActiveSessionsCount();
|
||||
var count = await _sessionStorage.GetActiveSessionsCountAsync();
|
||||
|
||||
// Assert
|
||||
count.Should().Be(0);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CleanupOldSessions_ShouldDeleteOldSessions()
|
||||
public async Task CleanupOldSessionsAsync_ShouldDeleteOldSessions()
|
||||
{
|
||||
// Arrange
|
||||
var oldSession = _sessionStorage.GetOrCreate(99999, "private", "Old Chat");
|
||||
var oldSession = await _sessionStorage.GetOrCreateAsync(99999, "private", "Old Chat");
|
||||
// Manually set CreatedAt to 2 days ago using test method
|
||||
oldSession.SetCreatedAtForTesting(DateTime.UtcNow.AddDays(-2));
|
||||
|
||||
var recentSession = _sessionStorage.GetOrCreate(88888, "private", "Recent Chat");
|
||||
var recentSession = await _sessionStorage.GetOrCreateAsync(88888, "private", "Recent Chat");
|
||||
// Manually set CreatedAt to 30 minutes ago using test method
|
||||
recentSession.SetCreatedAtForTesting(DateTime.UtcNow.AddMinutes(-30));
|
||||
|
||||
// Act
|
||||
_sessionStorage.CleanupOldSessions(1); // Delete sessions older than 1 day
|
||||
await _sessionStorage.CleanupOldSessionsAsync(1); // Delete sessions older than 1 day
|
||||
|
||||
// Assert
|
||||
_sessionStorage.Get(99999).Should().BeNull(); // Old session should be deleted
|
||||
_sessionStorage.Get(88888).Should().NotBeNull(); // Recent session should remain
|
||||
(await _sessionStorage.GetAsync(99999))
|
||||
.Should()
|
||||
.BeNull(); // Old session should be deleted
|
||||
(await _sessionStorage.GetAsync(88888)).Should().NotBeNull(); // Recent session should remain
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CleanupOldSessions_ShouldNotDeleteRecentSessions()
|
||||
public async Task CleanupOldSessionsAsync_ShouldNotDeleteRecentSessions()
|
||||
{
|
||||
// Arrange
|
||||
var recentSession1 = _sessionStorage.GetOrCreate(12345, "private", "Recent 1");
|
||||
var recentSession1 = await _sessionStorage.GetOrCreateAsync(12345, "private", "Recent 1");
|
||||
recentSession1.CreatedAt = DateTime.UtcNow.AddHours(-1);
|
||||
|
||||
var recentSession2 = _sessionStorage.GetOrCreate(67890, "private", "Recent 2");
|
||||
var recentSession2 = await _sessionStorage.GetOrCreateAsync(67890, "private", "Recent 2");
|
||||
recentSession2.CreatedAt = DateTime.UtcNow.AddMinutes(-30);
|
||||
|
||||
// Act
|
||||
var deletedCount = _sessionStorage.CleanupOldSessions(24); // Delete sessions older than 24 hours
|
||||
var deletedCount = await _sessionStorage.CleanupOldSessionsAsync(24); // Delete sessions older than 24 hours
|
||||
|
||||
// Assert
|
||||
deletedCount.Should().Be(0);
|
||||
_sessionStorage.Get(12345).Should().NotBeNull();
|
||||
_sessionStorage.Get(67890).Should().NotBeNull();
|
||||
(await _sessionStorage.GetAsync(12345)).Should().NotBeNull();
|
||||
(await _sessionStorage.GetAsync(67890)).Should().NotBeNull();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void CleanupOldSessions_ShouldReturnZero_WhenNoSessions()
|
||||
public async Task CleanupOldSessionsAsync_ShouldReturnZero_WhenNoSessions()
|
||||
{
|
||||
// Act
|
||||
var deletedCount = _sessionStorage.CleanupOldSessions(1);
|
||||
var deletedCount = await _sessionStorage.CleanupOldSessionsAsync(1);
|
||||
|
||||
// Assert
|
||||
deletedCount.Should().Be(0);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void GetOrCreate_ShouldCreateSessionWithCorrectTimestamp()
|
||||
public async Task GetOrCreateAsync_ShouldCreateSessionWithCorrectTimestamp()
|
||||
{
|
||||
// Act
|
||||
var session = _sessionStorage.GetOrCreate(12345, "private", "Test Chat");
|
||||
var session = await _sessionStorage.GetOrCreateAsync(12345, "private", "Test Chat");
|
||||
|
||||
// Assert
|
||||
session.CreatedAt.Should().BeCloseTo(DateTime.UtcNow, TimeSpan.FromMinutes(1));
|
||||
@@ -226,7 +228,7 @@ public class InMemorySessionStorageTests
|
||||
public async Task SaveSessionAsync_ShouldUpdateLastUpdatedAt()
|
||||
{
|
||||
// Arrange
|
||||
var session = _sessionStorage.GetOrCreate(12345, "private", "Test Chat");
|
||||
var session = await _sessionStorage.GetOrCreateAsync(12345, "private", "Test Chat");
|
||||
var originalTime = session.LastUpdatedAt;
|
||||
|
||||
// Wait a bit to ensure time difference
|
||||
@@ -238,12 +240,12 @@ public class InMemorySessionStorageTests
|
||||
await _sessionStorage.SaveSessionAsync(session);
|
||||
|
||||
// Assert
|
||||
var savedSession = _sessionStorage.Get(12345);
|
||||
var savedSession = await _sessionStorage.GetAsync(12345);
|
||||
savedSession!.LastUpdatedAt.Should().BeAfter(originalTime);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task GetOrCreate_ShouldHandleConcurrentAccess()
|
||||
public async Task GetOrCreateAsync_ShouldHandleConcurrentAccess()
|
||||
{
|
||||
// Arrange
|
||||
var tasks = new List<Task<ChatSession>>();
|
||||
@@ -253,40 +255,46 @@ public class InMemorySessionStorageTests
|
||||
{
|
||||
var chatId = 1000 + i;
|
||||
tasks.Add(
|
||||
Task.Run(() => _sessionStorage.GetOrCreate(chatId, "private", $"Chat {chatId}"))
|
||||
Task.Run(async () =>
|
||||
await _sessionStorage.GetOrCreateAsync(chatId, "private", $"Chat {chatId}")
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
await Task.WhenAll(tasks);
|
||||
|
||||
// Assert
|
||||
_sessionStorage.GetActiveSessionsCount().Should().Be(100);
|
||||
(await _sessionStorage.GetActiveSessionsCountAsync())
|
||||
.Should()
|
||||
.Be(100);
|
||||
|
||||
// Verify all sessions were created
|
||||
for (int i = 0; i < 100; i++)
|
||||
{
|
||||
var chatId = 1000 + i;
|
||||
var session = _sessionStorage.Get(chatId);
|
||||
var session = await _sessionStorage.GetAsync(chatId);
|
||||
session.Should().NotBeNull();
|
||||
session!.ChatId.Should().Be(chatId);
|
||||
}
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Remove_ShouldDecreaseActiveSessionsCount()
|
||||
public async Task RemoveAsync_ShouldDecreaseActiveSessionsCount()
|
||||
{
|
||||
// Arrange
|
||||
_sessionStorage.GetOrCreate(12345, "private", "Chat 1");
|
||||
_sessionStorage.GetOrCreate(67890, "private", "Chat 2");
|
||||
_sessionStorage.GetOrCreate(11111, "private", "Chat 3");
|
||||
await _sessionStorage.GetOrCreateAsync(12345, "private", "Chat 1");
|
||||
await _sessionStorage.GetOrCreateAsync(67890, "private", "Chat 2");
|
||||
await _sessionStorage.GetOrCreateAsync(11111, "private", "Chat 3");
|
||||
|
||||
// Act
|
||||
_sessionStorage.Remove(67890);
|
||||
await _sessionStorage.RemoveAsync(67890);
|
||||
|
||||
// Assert
|
||||
_sessionStorage.GetActiveSessionsCount().Should().Be(2);
|
||||
_sessionStorage.Get(12345).Should().NotBeNull();
|
||||
_sessionStorage.Get(67890).Should().BeNull();
|
||||
_sessionStorage.Get(11111).Should().NotBeNull();
|
||||
(await _sessionStorage.GetActiveSessionsCountAsync())
|
||||
.Should()
|
||||
.Be(2);
|
||||
(await _sessionStorage.GetAsync(12345)).Should().NotBeNull();
|
||||
(await _sessionStorage.GetAsync(67890)).Should().BeNull();
|
||||
(await _sessionStorage.GetAsync(11111)).Should().NotBeNull();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user