From 9911840b8fd9eb6ca6a0e51d9e543cdd426587b0 Mon Sep 17 00:00:00 2001 From: yoyocaleb Date: Wed, 14 Jan 2026 10:19:52 -0500 Subject: [PATCH 1/8] Initial commit --- .../GroundwaterStatusRepositoryTest.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs diff --git a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs new file mode 100644 index 00000000..e0209889 --- /dev/null +++ b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs @@ -0,0 +1,12 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace FMS.Infrastructure.Tests +{ + internal class GroundwaterStatusRepositoryTest + { + } +} From 859340148b5102bc7967a10e2322322f7252ed34 Mon Sep 17 00:00:00 2001 From: yoyocaleb Date: Wed, 14 Jan 2026 11:51:40 -0500 Subject: [PATCH 2/8] Test foundation created --- .../GroundwaterStatusRepositoryTest.cs | 61 +++++++++++++++++-- 1 file changed, 56 insertions(+), 5 deletions(-) diff --git a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs index e0209889..01fb51e3 100644 --- a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs +++ b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs @@ -1,12 +1,63 @@ -using System; -using System.Collections.Generic; +using Microsoft.EntityFrameworkCore; +using NUnit.Framework; +using NSubstitute; +using System; using System.Linq; -using System.Text; using System.Threading.Tasks; +using FMS.Infrastructure.Contexts; +using FMS.Infrastructure.Repositories; +using FMS.Domain.Entities; +using FMS.Domain.Dto; +using Microsoft.AspNetCore.Http; +using FluentAssertions; +using System.Collections.Generic; +using FMS.Domain.Repositories; namespace FMS.Infrastructure.Tests { - internal class GroundwaterStatusRepositoryTest + [TestFixture] + public class GroundwaterStatusRepositoryTests { + private FmsDbContext _context; + private GroundwaterStatusRepository _repository; + private bool _disposed = false; + + [SetUp] + public void SetUp() + { + var options = new DbContextOptionsBuilder() + .UseInMemoryDatabase(databaseName: $"TestDatabase_{Guid.NewGuid()}") + .Options; + var httpContextAccessor = Substitute.For(); + _context = new FmsDbContext(options, httpContextAccessor); + _repository = new GroundwaterStatusRepository(_context); + + _context.GroundwaterStatuses.Add(new GroundwaterStatus + { + Id = Guid.NewGuid(), + Name = "VALID_NAME", + Description = "VALID_DESCRIPTION", + Active = true + }); + _context.SaveChanges(); + } + + [TearDown] + public void TearDown() + { + Dispose(); + } + public void Dispose() + { + if (!_disposed) + { + _context.Database.EnsureCreated(); + _context.Dispose(); + _repository.Dispose(); + _disposed = true; + } + } + + } -} +} \ No newline at end of file From 521ef65449e5da0d518d81afa1082f0ff50d2b4b Mon Sep 17 00:00:00 2001 From: yoyocaleb Date: Wed, 14 Jan 2026 12:03:01 -0500 Subject: [PATCH 3/8] GroundwaterStatusExistsAsync test created --- .../GroundwaterStatusRepositoryTest.cs | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs index 01fb51e3..c05829b2 100644 --- a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs +++ b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs @@ -58,6 +58,40 @@ public void Dispose() } } - + // GroundwaterStatusExistsAsync + [Test] + public async Task GroundwaterStatusExistsAsync_ReturnsTrue_WhenGroundwaterStatusExist() + { + var existingGWS = await _context.GroundwaterStatuses.Select(e => e.Id).FirstAsync(); + var results = await _repository.GroundwaterStatusExistsAsync(existingGWS); + results.Should().BeTrue(); + } + [Test] + public async Task GroundwaterStatusExistAsync_ReturnsFalse_WhenGroundwaterStatusDoesNotExist() + { + var nonexistingGWS = Guid.NewGuid(); + var results = await _repository.GroundwaterStatusExistsAsync(nonexistingGWS); + results.Should().BeFalse(); + } + + // GroundwaterStatusNameExistsAsync + + + // GroundwaterStatusDescriptionExistsAsync + + + // GetGroundwaterStatusListAsync + + + // GetGroundwaterStatusNameAsync + + + // CreateGroundwaterStatusAsync + + + // UpdateGroundwaterStatusAsync + + + // UpdateGroundwaterStatusStatusAsync } } \ No newline at end of file From 3317ebf8355d7071a69ff0aa6e656d01b9d19615 Mon Sep 17 00:00:00 2001 From: yoyocaleb Date: Thu, 15 Jan 2026 11:24:21 -0500 Subject: [PATCH 4/8] GroundwaterStatusDescriptionExistsAsync and GroundwaterStatusNameExistsAsync Test created --- .../GroundwaterStatusRepositoryTest.cs | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs index c05829b2..7de22985 100644 --- a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs +++ b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs @@ -75,11 +75,42 @@ public async Task GroundwaterStatusExistAsync_ReturnsFalse_WhenGroundwaterStatus } // GroundwaterStatusNameExistsAsync + [Test] + public async Task GroundwaterStatusNameExistsAsync_ReturnsTrue_WhenNameExist() + { + var existingGWS = new GroundwaterStatus { Name = "EXISTING_NAME", Description = "EXISTING_DESCRIPTION" }; + _context.GroundwaterStatuses.Add(existingGWS); + await _context.SaveChangesAsync(); + var results = await _repository.GroundwaterStatusNameExistsAsync(existingGWS.Name); + results.Should().BeTrue(); + } + [Test] + public async Task GroundwaterStatusNameExistsAsync_ReturnsFalse_WhenNameDoesNotExist() + { + var nonexistingGWS = "NONEXISTING_NAME"; + var results = await _repository.GroundwaterStatusNameExistsAsync(nonexistingGWS); + results.Should().BeFalse(); + } // GroundwaterStatusDescriptionExistsAsync + [Test] + public async Task GroundwaterStatusDescriptionExistsAsync_ReturnsTrue_WhenDescriptionExist() + { + var existingGWS = new GroundwaterStatus { Name = "EXISTING_NAME", Description = "EXISTING_DESCRIPTION" }; + _context.GroundwaterStatuses.Add(existingGWS); + await _context.SaveChangesAsync(); - + var results = await _repository.GroundwaterStatusDescriptionExistsAsync(existingGWS.Description); + results.Should().BeTrue(); + } + [Test] + public async Task GroundwaterStatusDescriptionExistsAsync_ReturnsFalse_WhenDescriptionDoesNotExist() + { + var nonexistingGWS = "NONEXISTING_DESCRIPTION"; + var results = await _repository.GroundwaterStatusDescriptionExistsAsync(nonexistingGWS); + results.Should().BeFalse(); + } // GetGroundwaterStatusListAsync From ad01b2c005ec22761b81bc783aa309871dc06cd5 Mon Sep 17 00:00:00 2001 From: yoyocaleb Date: Fri, 16 Jan 2026 11:51:33 -0500 Subject: [PATCH 5/8] GetGroundwaterStatusListAsync test created --- .../GroundwaterStatusRepositoryTest.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs index 7de22985..53cef4cb 100644 --- a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs +++ b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs @@ -112,7 +112,12 @@ public async Task GroundwaterStatusDescriptionExistsAsync_ReturnsFalse_WhenDescr results.Should().BeFalse(); } // GetGroundwaterStatusListAsync - + [Test] + public async Task GetGroundwaterStatusListAsync_ReturnsAllGroundwaterStatuses() + { + var results = await _repository.GetGroundwaterStatusListAsync(); + results.Should().NotBeNullOrEmpty(); + } // GetGroundwaterStatusNameAsync From 2116317f8e8760048ba38743606712daaa94dd30 Mon Sep 17 00:00:00 2001 From: yoyocaleb Date: Mon, 26 Jan 2026 11:41:42 -0500 Subject: [PATCH 6/8] Test for CreateGroundwaterStatusAsync and GetGroundwaterStatusNameAsync created --- .../GroundwaterStatusRepositoryTest.cs | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs index 53cef4cb..35ed7b45 100644 --- a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs +++ b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs @@ -120,10 +120,31 @@ public async Task GetGroundwaterStatusListAsync_ReturnsAllGroundwaterStatuses() } // GetGroundwaterStatusNameAsync + [Test] + public async Task GetGroundwaterStatusNameAsync_ReturnsName_WhenNameExist() + { + var existingGWS = new GroundwaterStatus { Id = Guid.NewGuid(), Name = "EXISTING_NAME", Description = "EXISTING_DESCRIPTION" }; + _context.GroundwaterStatuses.Add(existingGWS); + await _context.SaveChangesAsync(); + var results = await _repository.GetGroundwaterStatusNameAsync(existingGWS.Id); + results.Should().BeEquivalentTo(existingGWS.Name); + } // CreateGroundwaterStatusAsync + [Test] + public async Task CreateGroundwaterStatusAsync_CreateNewGroundwaterStatus_WhenDataIsValid() + { + var dto = new GroundwaterStatusCreateDto { Name = "NEW_NAME", Description = "NEW_DESCRIPTION" }; + + var newId = await _repository.CreateGroundwaterStatusAsync(dto); + var createdGroundwaterStatus = await _context.GroundwaterStatuses.FindAsync(newId); + createdGroundwaterStatus.Should().NotBeNull(); + createdGroundwaterStatus.Name.Should().Be("NEW_NAME"); + createdGroundwaterStatus.Description.Should().Be("NEW_DESCRIPTION"); + + } // UpdateGroundwaterStatusAsync From e5e1e14acbbd984aa923fd86f91a2ccef2307fe6 Mon Sep 17 00:00:00 2001 From: yoyocaleb Date: Tue, 27 Jan 2026 11:42:32 -0500 Subject: [PATCH 7/8] UpdateGroundwaterStatusAsync test created --- .../GroundwaterStatusRepositoryTest.cs | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs index 35ed7b45..356da644 100644 --- a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs +++ b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs @@ -143,10 +143,33 @@ public async Task CreateGroundwaterStatusAsync_CreateNewGroundwaterStatus_WhenDa createdGroundwaterStatus.Should().NotBeNull(); createdGroundwaterStatus.Name.Should().Be("NEW_NAME"); createdGroundwaterStatus.Description.Should().Be("NEW_DESCRIPTION"); - } // UpdateGroundwaterStatusAsync + [Test] + public async Task UpdateGroundwaterStatusAsync_UpdatesExistingGroundwaterStatus_WhenDataIsValid() + { + var existingGWS= new GroundwaterStatus { Id = Guid.NewGuid(), Name = "VALID_NAME", Description = "VALID_DESCRIPTION" }; + _context.GroundwaterStatuses.Add(existingGWS); + await _context.SaveChangesAsync(); + + var updateDto = new GroundwaterStatusEditDto { Name = "NEW_NAME", Description = "NEW_DESCRIPTION"}; + await _repository.UpdateGroundwaterStatusAsync(existingGWS.Id, updateDto); + + var updatedGWS= await _context.GroundwaterStatuses.FindAsync(existingGWS.Id); + updatedGWS.Name.Should().Be("NEW_NAME"); + updatedGWS.Description.Should().Be("NEW_DESCRIPTION"); + + } + [Test] + public async Task UpdateGroundwaterStatusAsync_ThrowsArgumentException_WhenIdDoesNotExist() + { + var invalidId = Guid.NewGuid(); + var updateDto = new GroundwaterStatusEditDto { Name = "NON_EXISTENT" }; + + Func action = async () => await _repository.UpdateGroundwaterStatusAsync(invalidId, updateDto); + await action.Should().ThrowAsync(); + } // UpdateGroundwaterStatusStatusAsync From 285dcae3aa2d7def2624b7fa65ec4ef991df3f11 Mon Sep 17 00:00:00 2001 From: yoyocaleb Date: Wed, 28 Jan 2026 11:16:24 -0500 Subject: [PATCH 8/8] UpdateGroundwaterStatusStatusAsync test completed --- .../GroundwaterStatusRepositoryTest.cs | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs index 356da644..24c53527 100644 --- a/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs +++ b/tests/FMS.Infrastructure.Tests/GroundwaterStatusRepositoryTest.cs @@ -171,7 +171,30 @@ public async Task UpdateGroundwaterStatusAsync_ThrowsArgumentException_WhenIdDoe await action.Should().ThrowAsync(); } - // UpdateGroundwaterStatusStatusAsync + [Test] + public async Task UpdateGroundwaterStatusStatusAsync_UpdatesStatusCorrectly() + { + var GroundwaterStatus = new GroundwaterStatus + { + Id = Guid.NewGuid(), + Name = "VALID_NAME", + Description = "VALID_DESCRIPTION", + Active = true, + }; + _context.GroundwaterStatuses.Add(GroundwaterStatus); + await _context.SaveChangesAsync(); + + await _repository.UpdateGroundwaterStatusStatusAsync(GroundwaterStatus.Id, false); + + var updatedGroundwaterStatus = await _context.GroundwaterStatuses.FindAsync(GroundwaterStatus.Id); + updatedGroundwaterStatus.Active.Should().BeFalse(); + } + [Test] + public async Task UpdateGroundwaterStatusStatusAsync_ThrowsArgumentException_WhenIdDoesNotExist() + { + Func action = async () => await _repository.UpdateGroundwaterStatusStatusAsync(Guid.NewGuid(), false); + await action.Should().ThrowAsync(); + } } } \ No newline at end of file