Added helper method to fill access slotsfor testing

This commit is contained in:
henry 2025-06-17 19:29:51 -04:00
parent a4f314a7b1
commit 76009824a6
1 changed files with 16 additions and 36 deletions

View File

@ -37,6 +37,14 @@ namespace AccessQueueServiceTests
_accessService = new AccessService(configuration, accessQueueRepo, logger); _accessService = new AccessService(configuration, accessQueueRepo, logger);
} }
private void FillSlots(int usersToAdd = CAP_LIMIT)
{
for (int i = 0; i < usersToAdd; i++)
{
_ = _accessService.RequestAccess(Guid.NewGuid().ToString());
}
}
[Fact] [Fact]
public async Task RequestAccess_ShouldGrantAccess_WhenCapacityIsAvailable() public async Task RequestAccess_ShouldGrantAccess_WhenCapacityIsAvailable()
{ {
@ -71,10 +79,7 @@ namespace AccessQueueServiceTests
[Fact] [Fact]
public async Task RequestAccess_ShouldQueueUser_WhenCapacityIsFull() public async Task RequestAccess_ShouldQueueUser_WhenCapacityIsFull()
{ {
for (int i = 0; i < CAP_LIMIT * 2; i++) // Fill double capacity FillSlots(CAP_LIMIT * 2);
{
await _accessService.RequestAccess(Guid.NewGuid().ToString());
}
var userId = "user"; var userId = "user";
var response = await _accessService.RequestAccess(userId); var response = await _accessService.RequestAccess(userId);
@ -115,10 +120,7 @@ namespace AccessQueueServiceTests
var userId = "user"; var userId = "user";
await _accessService.RequestAccess(userId); await _accessService.RequestAccess(userId);
for (int i = 0; i < CAP_LIMIT; i++) // Fill remaining slots FillSlots();
{
await _accessService.RequestAccess(Guid.NewGuid().ToString());
}
var response = await _accessService.RequestAccess(userId); // Request access before revoking var response = await _accessService.RequestAccess(userId); // Request access before revoking
Assert.NotNull(response); Assert.NotNull(response);
@ -133,10 +135,7 @@ namespace AccessQueueServiceTests
[Fact] [Fact]
public async Task RequestAccess_ShouldNotQueueUser_WhenMultipleRequestsForOtherUsersMade() public async Task RequestAccess_ShouldNotQueueUser_WhenMultipleRequestsForOtherUsersMade()
{ {
for (int i = 0; i < CAP_LIMIT; i++) // Fill slots without awaiting FillSlots();
{
_ = _accessService.RequestAccess(Guid.NewGuid().ToString());
}
var response = await _accessService.RequestAccess(Guid.NewGuid().ToString()); // Request access before revoking var response = await _accessService.RequestAccess(Guid.NewGuid().ToString()); // Request access before revoking
Assert.NotNull(response); Assert.NotNull(response);
Assert.False(response.HasAccess); Assert.False(response.HasAccess);
@ -155,10 +154,7 @@ namespace AccessQueueServiceTests
[Fact] [Fact]
public async Task RequestAccess_ShouldGrantAccess_WhenUsersWithAccessInactive() public async Task RequestAccess_ShouldGrantAccess_WhenUsersWithAccessInactive()
{ {
for (int i = 0; i < CAP_LIMIT; i++) FillSlots();
{
await _accessService.RequestAccess(Guid.NewGuid().ToString());
}
var userId = "user"; var userId = "user";
var response = await _accessService.RequestAccess(userId); var response = await _accessService.RequestAccess(userId);
Assert.False(response.HasAccess); Assert.False(response.HasAccess);
@ -174,10 +170,7 @@ namespace AccessQueueServiceTests
var response = await _accessService.RequestAccess(userId); var response = await _accessService.RequestAccess(userId);
Assert.True(response.HasAccess); Assert.True(response.HasAccess);
await Task.Delay(EXP_MILLIS); await Task.Delay(EXP_MILLIS);
for (int i = 0; i < CAP_LIMIT; i++) FillSlots();
{
await _accessService.RequestAccess(Guid.NewGuid().ToString());
}
response = await _accessService.RequestAccess(userId); response = await _accessService.RequestAccess(userId);
Assert.False(response.HasAccess); Assert.False(response.HasAccess);
} }
@ -203,10 +196,7 @@ namespace AccessQueueServiceTests
{ {
var userId = "user"; var userId = "user";
await _accessService.RequestAccess(userId); await _accessService.RequestAccess(userId);
for (int i = 0; i < BULK_COUNT; i++) FillSlots(BULK_COUNT);
{
_ = _accessService.RequestAccess(Guid.NewGuid().ToString());
}
var response = await _accessService.RequestAccess(userId); var response = await _accessService.RequestAccess(userId);
Assert.NotNull(response); Assert.NotNull(response);
Assert.True(response.HasAccess); Assert.True(response.HasAccess);
@ -246,10 +236,7 @@ namespace AccessQueueServiceTests
[Fact] [Fact]
public async Task RequestAccess_ShouldShowCorrectRequestsAhead_WhenAccessRerequested() public async Task RequestAccess_ShouldShowCorrectRequestsAhead_WhenAccessRerequested()
{ {
for (int i = 0; i < CAP_LIMIT; i++) FillSlots();
{
await _accessService.RequestAccess(Guid.NewGuid().ToString());
}
var id1 = "user1"; var id1 = "user1";
var id2 = "user2"; var id2 = "user2";
@ -275,15 +262,8 @@ namespace AccessQueueServiceTests
[Fact] [Fact]
public async Task Status_ShouldReturnCorrectCounts() public async Task Status_ShouldReturnCorrectCounts()
{ {
FillSlots();
// Fill up the queue to force a user into the queue
for (int i = 0; i < CAP_LIMIT; i++)
{
await _accessService.RequestAccess(Guid.NewGuid().ToString());
}
// Add an additional user
await _accessService.RequestAccess("user"); await _accessService.RequestAccess("user");
var status = _accessService.Status; var status = _accessService.Status;
Assert.NotNull(status); Assert.NotNull(status);