From 1de9b57c5c0a0e0f343c4e7b1439fed4f19ec3d1 Mon Sep 17 00:00:00 2001 From: henry Date: Mon, 12 May 2025 23:38:25 -0400 Subject: [PATCH] Fix #2 requestsAhead working fr this time --- AccessQueueService/Services/AccessService.cs | 3 ++- AccessQueueServiceTests/AccessServiceTests.cs | 27 ++++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/AccessQueueService/Services/AccessService.cs b/AccessQueueService/Services/AccessService.cs index fa22445..7b5b4e8 100644 --- a/AccessQueueService/Services/AccessService.cs +++ b/AccessQueueService/Services/AccessService.cs @@ -71,6 +71,7 @@ namespace AccessQueueService.Services var requestsAhead = _accessQueueRepo.GetRequestsAhead(userId); if (requestsAhead == -1) { + requestsAhead = _accessQueueRepo.GetQueueCount(); _accessQueueRepo.Enqueue(new AccessTicket { UserId = userId, @@ -81,7 +82,7 @@ namespace AccessQueueService.Services return new AccessResponse { ExpiresOn = null, - RequestsAhead = _accessQueueRepo.GetQueueCount() - 1 + RequestsAhead = requestsAhead }; } } diff --git a/AccessQueueServiceTests/AccessServiceTests.cs b/AccessQueueServiceTests/AccessServiceTests.cs index 9413db1..fc01359 100644 --- a/AccessQueueServiceTests/AccessServiceTests.cs +++ b/AccessQueueServiceTests/AccessServiceTests.cs @@ -281,15 +281,30 @@ namespace AccessQueueServiceTests public async Task RequestAccess_ShouldShowCorrectRequestsAhead_WhenAccessRerequested(IAccessQueueRepo repo) { CreateService(repo); - for (int i = 0; i < CAP_LIMIT + 3; i++) + for (int i = 0; i < CAP_LIMIT; i++) { await _accessService.RequestAccess(Guid.NewGuid()); } - var id = Guid.NewGuid(); - var response = await _accessService.RequestAccess(id); - Assert.Equal(3, response.RequestsAhead); - response = await _accessService.RequestAccess(id); - Assert.Equal(3, response?.RequestsAhead); + + var id1 = Guid.NewGuid(); + var id2 = Guid.NewGuid(); + var id3 = Guid.NewGuid(); + + var response1 = await _accessService.RequestAccess(id1); + var response2 = await _accessService.RequestAccess(id2); + var response3 = await _accessService.RequestAccess(id3); + + Assert.Equal(0, response1.RequestsAhead); + Assert.Equal(1, response2.RequestsAhead); + Assert.Equal(2, response3.RequestsAhead); + + response1 = await _accessService.RequestAccess(id1); + response2 = await _accessService.RequestAccess(id2); + response3 = await _accessService.RequestAccess(id3); + + Assert.Equal(0, response1.RequestsAhead); + Assert.Equal(1, response2.RequestsAhead); + Assert.Equal(2, response3.RequestsAhead); } } }