From 0ed3bc629828dfa1b4d13a764bff94441f7f950a Mon Sep 17 00:00:00 2001 From: Brian Bicknell Date: Thu, 14 May 2026 10:19:06 -0400 Subject: [PATCH] Updated voice work delete logic + tests. --- .../VoiceWorks/VoiceWorkWriter.cs | 6 ++++-- .../VoiceWorks/Delete_Voice_Work_Tests.cs | 21 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/JSMR.Infrastructure/Data/Repositories/VoiceWorks/VoiceWorkWriter.cs b/JSMR.Infrastructure/Data/Repositories/VoiceWorks/VoiceWorkWriter.cs index ed13953..8fab361 100644 --- a/JSMR.Infrastructure/Data/Repositories/VoiceWorks/VoiceWorkWriter.cs +++ b/JSMR.Infrastructure/Data/Repositories/VoiceWorks/VoiceWorkWriter.cs @@ -23,8 +23,10 @@ public class VoiceWorkWriter(AppDbContext dbContext) : IVoiceWorkWriter Dictionary results = request.VoiceWorkIds.Select(x => x) .ToDictionary(x => x, x => DeleteVoiceWorkStatus.NotFound); - VoiceWork[] voiceWorks = [.. dbContext.VoiceWorks.Where(voiceWork => request.VoiceWorkIds.Contains(voiceWork.VoiceWorkId)) - .Include(x => x.Circle)]; + VoiceWork[] voiceWorks = await dbContext.VoiceWorks + .Where(voiceWork => request.VoiceWorkIds.Contains(voiceWork.VoiceWorkId)) + .Include(x => x.Circle) + .ToArrayAsync(cancellationToken); List voiceWorksToDelete = []; diff --git a/JSMR.Tests/Data/Repositories/VoiceWorks/Delete_Voice_Work_Tests.cs b/JSMR.Tests/Data/Repositories/VoiceWorks/Delete_Voice_Work_Tests.cs index 45a248e..83b784f 100644 --- a/JSMR.Tests/Data/Repositories/VoiceWorks/Delete_Voice_Work_Tests.cs +++ b/JSMR.Tests/Data/Repositories/VoiceWorks/Delete_Voice_Work_Tests.cs @@ -49,4 +49,25 @@ public class Delete_Voice_Work_Tests(MariaDbContainerFixture container) : VoiceW dbContext.VoiceWorks.FirstOrDefault(x => x.VoiceWorkId == voiceWorkId).ShouldNotBeNull(); dbContext.VoiceWorkSearches.FirstOrDefault(x => x.VoiceWorkId == voiceWorkId).ShouldNotBeNull(); } + + [Fact] + public async Task Try_Delete_Missing_Voice_Work() + { + await using AppDbContext dbContext = await GetAppDbContextAsync(); + VoiceWorkWriter writer = new(dbContext); + + int voiceWorkId = 999; + DeleteVoiceWorkRequest request = new([voiceWorkId]); + + dbContext.VoiceWorks.FirstOrDefault(x => x.VoiceWorkId == voiceWorkId).ShouldBeNull(); + dbContext.VoiceWorkSearches.FirstOrDefault(x => x.VoiceWorkId == voiceWorkId).ShouldBeNull(); + + DeleteVoiceWorkResponse response = await writer.DeleteAsync(request, TestContext.Current.CancellationToken); + response.Results.Count.ShouldBe(1); + response.Results.ShouldContainKey(voiceWorkId); + response.Results[voiceWorkId].ShouldBe(DeleteVoiceWorkStatus.NotFound); + + dbContext.VoiceWorks.FirstOrDefault(x => x.VoiceWorkId == voiceWorkId).ShouldBeNull(); + dbContext.VoiceWorkSearches.FirstOrDefault(x => x.VoiceWorkId == voiceWorkId).ShouldBeNull(); + } } \ No newline at end of file