using LCU.API.Internal.MemberPreferencesApi.Services; using LCU.Library.Internal.MemberPreferencesApiModels.Entities; using LCU.Library.Internal.MemberPreferencesApiModels.Enums; using Infrastructure.Services; using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Diagnostics; using Moq; using NUnit.Framework; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using LCU.API.Internal.MemberPreferencesApiLib.Persistence; using LCU.API.Internal.MemberPreferencesApiLib.Repositories; namespace LCU.API.Internal.MemberPreferencesApi.UnitTests.Repository { public class DnaAuditProcessRepositoryTest { private ApplicationDbContext _context; private DnaAuditProcessRepository _repository; [SetUp] public void Setup() { var mockDateTime = new DateTimeService(); var options = new DbContextOptionsBuilder() .UseInMemoryDatabase(Guid.NewGuid().ToString()) .EnableSensitiveDataLogging() .Options; _context = new ApplicationDbContext(options); _repository = new DnaAuditProcessRepository(_context); } [Test] public async Task Basic_Flow_Test() { var saved = await _repository.GetAllDnaAuditProcesses(); Assert.NotNull(saved); Assert.IsEmpty(saved); var dnaProcess = new DnaAuditProcess() { ProcessId = 1, DnaProcessType = DnaAuditProcessType.DNAAccounts, LastUpdated = DateTime.Now, ConsecutiveFailures = 2 }; await _context.AddAsync(dnaProcess); await _context.SaveChangesAsync(); saved = await _repository.GetAllDnaAuditProcesses(); Assert.NotNull(saved); Assert.IsNotEmpty(saved); var first = saved.First(); Assert.AreEqual(first.ConsecutiveFailures, 2); Assert.AreEqual(first.DnaProcessType, DnaAuditProcessType.DNAAccounts); Assert.AreEqual(first.ProcessId, 1); dnaProcess.DnaProcessType = DnaAuditProcessType.DNAOrganization; dnaProcess.ConsecutiveFailures = 0; await _repository.Update(dnaProcess); saved = await _repository.GetAllDnaAuditProcesses(); Assert.NotNull(saved); Assert.IsNotEmpty(saved); first = saved.First(); Assert.AreEqual(first.ConsecutiveFailures, 0); Assert.AreEqual(first.DnaProcessType, DnaAuditProcessType.DNAOrganization); Assert.AreEqual(first.ProcessId, 1); } } }