using LCU.Api.Internal.DispatcherLib.Repositories; using LCU.Library.Internal.DispatcherModels.Enums; namespace LCU.Api.Internal.DispatcherTests.RepositoryTests; public class WorkItemRepositoryTest : DbContextFromJsonTest { private readonly WorkItemRepository _workItemRepository; public WorkItemRepositoryTest() { var dbContext = GetContextWithData("RepositoryTests\\job_repo_basic.json"); _workItemRepository = new WorkItemRepository(dbContext); } [Fact] public async void ListAsync_Test() { // Act var resultsBasic = await _workItemRepository.ListAsync(); // Assert Assert.NotNull(resultsBasic); Assert.Equal(17, resultsBasic.Count()); } [Fact] public async void FindAsync_Found() { // Act var resultsBasic = await _workItemRepository.FindByIdAsync(1); // Assert Assert.NotNull(resultsBasic); Assert.Equal(1, resultsBasic.WorkItemId); } [Fact] public async void FindAsync_Missing() { // Act var resultsBasic = await _workItemRepository.FindByIdAsync(1000); // Assert Assert.Null(resultsBasic); } [Fact] public async void Update_Test() { var foundWorkItem = await _workItemRepository.FindByIdAsync(1); Assert.NotNull(foundWorkItem); Assert.Equal("{TEST1: null}", foundWorkItem.SerializedPayload); foundWorkItem.SerializedPayload = "{TEST_New: null}"; // Act _workItemRepository.Update(foundWorkItem); //Act / Assert var updatedWorkItem = await _workItemRepository.FindByIdAsync(1); Assert.NotNull(updatedWorkItem); updatedWorkItem.SerializedPayload = "{TEST_New: null}"; } [Fact] public async void AddAsync_Test() { // Arrange var workItem = new WorkItem() { WorkItemId = 100, JobId = 100, Name = "test", Order = 1, SerializedPayload = "{TEST:null}", Url = "Test.Application.1", HttpMethod = HttpMethodType.Post }; // Act var resultsBasic = await _workItemRepository.AddAsync(workItem); // Assert Assert.NotNull(resultsBasic); Assert.True(resultsBasic.WorkItemId > 0); Assert.Equal(1, resultsBasic.Order); Assert.Equal("{TEST:null}", resultsBasic.SerializedPayload); Assert.Equal("Test.Application.1", resultsBasic.Url); Assert.Equal(HttpMethodType.Post, resultsBasic.HttpMethod); } [Fact] public async void GetFirstOrDefaultWorkItemByJobId_Found() { // Arrange/Act var resultsBasic = await _workItemRepository.GetFirstOrDefaultWorkItemByJobId(11); // Assert Assert.NotNull(resultsBasic); Assert.Equal(211, resultsBasic.WorkItemId); } }