Adding
This commit is contained in:
+395
@@ -0,0 +1,395 @@
|
||||
using System.Collections.Generic;
|
||||
using LCU.Api.Internal.DispatcherLib.Repositories;
|
||||
using LCU.Library.Internal.DispatcherModels.Enums;
|
||||
using LCU.Library.Internal.DispatcherModels.Constants;
|
||||
namespace LCU.Api.Internal.DispatcherTests.RepositoryTests;
|
||||
|
||||
public class JobRepositoryTest : DbContextFromJsonTest
|
||||
{
|
||||
private readonly JobRepository _jobRepository;
|
||||
|
||||
public JobRepositoryTest()
|
||||
{
|
||||
var dbContext = GetContextWithData("RepositoryTests\\job_repo_basic.json");
|
||||
_jobRepository = new JobRepository(dbContext);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FilteredListAsync_DefaultFilter()
|
||||
{
|
||||
// Act
|
||||
var filter = new Filter();
|
||||
var resultsBasic = await _jobRepository.FilteredListAsync(filter, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(4, resultsBasic.Items.Count());
|
||||
var first = resultsBasic.Items.First();
|
||||
Assert.Equal(1, first.JobId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FilteredListAsync_OrderbyNextRunTime()
|
||||
{
|
||||
// Act
|
||||
var filter = new Filter()
|
||||
{
|
||||
StatusFilters = null,
|
||||
SortableFields = new List<SortableField>()
|
||||
{
|
||||
new SortableField()
|
||||
{
|
||||
Field = JobSortableFields.NextRunTime,
|
||||
IsDescending = true,
|
||||
Position = 0
|
||||
}
|
||||
}
|
||||
};
|
||||
var resultsBasic = await _jobRepository.FilteredListAsync(filter, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(8, resultsBasic.Items.Count());
|
||||
var first = resultsBasic.Items.First();
|
||||
Assert.Equal(3, first.JobId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FilteredListAsync_OrderbyName()
|
||||
{
|
||||
// Act
|
||||
var filter = new Filter()
|
||||
{
|
||||
|
||||
TagIdFilters = null,
|
||||
StatusFilters = null,
|
||||
SortableFields = new List<SortableField>()
|
||||
{
|
||||
new SortableField()
|
||||
{
|
||||
Field = JobSortableFields.Name,
|
||||
IsDescending = true,
|
||||
Position = 0
|
||||
}
|
||||
}
|
||||
};
|
||||
var resultsBasic = await _jobRepository.FilteredListAsync(filter, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(8, resultsBasic.Items.Count());
|
||||
var first = resultsBasic.Items.First();
|
||||
Assert.Equal(1085, first.JobId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FilteredListAsync_OrderbyDescription()
|
||||
{
|
||||
// Act
|
||||
var filter = new Filter()
|
||||
{
|
||||
|
||||
TagIdFilters = null,
|
||||
StatusFilters = null,
|
||||
SortableFields = new List<SortableField>()
|
||||
{
|
||||
new SortableField()
|
||||
{
|
||||
Field = JobSortableFields.Description,
|
||||
IsDescending = true,
|
||||
Position = 0
|
||||
}
|
||||
}
|
||||
};
|
||||
var resultsBasic = await _jobRepository.FilteredListAsync(filter, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(8, resultsBasic.Items.Count());
|
||||
var first = resultsBasic.Items.First();
|
||||
Assert.Equal(1085, first.JobId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FilteredListAsync_StatusFailed_Return_2()
|
||||
{
|
||||
// Act
|
||||
var filter = new Filter()
|
||||
{
|
||||
StatusFilters = new List<StatusFilter>()
|
||||
{
|
||||
new StatusFilter()
|
||||
{
|
||||
IsEnabled = true,
|
||||
JobStatus = JobStatus.Failed
|
||||
}
|
||||
}
|
||||
};
|
||||
var resultsBasic = await _jobRepository.FilteredListAsync(filter, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(0, resultsBasic.Items.Count());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FilteredListAsync_StatusInactive_Return_2()
|
||||
{
|
||||
// Act
|
||||
var filter = new Filter()
|
||||
{
|
||||
StatusFilters = new List<StatusFilter>()
|
||||
{
|
||||
new StatusFilter()
|
||||
{
|
||||
IsEnabled = true,
|
||||
JobStatus = JobStatus.Inactive
|
||||
}
|
||||
}
|
||||
};
|
||||
var resultsBasic = await _jobRepository.FilteredListAsync(filter, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(4, resultsBasic.Items.Count());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FilteredListWithPagingAsync_StatusInactive_Return_2()
|
||||
{
|
||||
// Act
|
||||
var filter = new Filter()
|
||||
{
|
||||
Page = 1,
|
||||
Limit = 1,
|
||||
StatusFilters = new List<StatusFilter>()
|
||||
{
|
||||
new StatusFilter()
|
||||
{
|
||||
IsEnabled = true,
|
||||
JobStatus = JobStatus.Inactive
|
||||
}
|
||||
}
|
||||
};
|
||||
var resultsBasic = await _jobRepository.FilteredListAsync(filter, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Single(resultsBasic.Items);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FilteredListAsync_NextRunTimeGreaterThenDate_Return_0()
|
||||
{
|
||||
// Act
|
||||
var filter = new Filter()
|
||||
{
|
||||
NextRuntimeGreaterThanDate = Convert.ToDateTime("8/20/2025")
|
||||
};
|
||||
var resultsBasic = await _jobRepository.FilteredListAsync(filter, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Empty(resultsBasic.Items);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FilteredListAsync_NextRunTimeGreaterThenDate_Return_2()
|
||||
{
|
||||
// Act
|
||||
var filter = new Filter()
|
||||
{
|
||||
NextRuntimeGreaterThanDate = Convert.ToDateTime("1/13/2022")
|
||||
};
|
||||
var resultsBasic = await _jobRepository.FilteredListAsync(filter, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(2, resultsBasic.Items.Count());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FilteredListAsync_TagId2_Return_0()
|
||||
{
|
||||
// Act
|
||||
var filter = new Filter()
|
||||
{
|
||||
TagIdFilters = new List<int> { 2 }
|
||||
};
|
||||
var resultsBasic = await _jobRepository.FilteredListAsync(filter, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Empty(resultsBasic.Items);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FilteredListAsync_TagId1_Return_2()
|
||||
{
|
||||
// Act
|
||||
var filter = new Filter()
|
||||
{
|
||||
StatusFilters = null,
|
||||
SortableFields = null,
|
||||
TagIdFilters = new List<int> { 1 }
|
||||
};
|
||||
var resultsBasic = await _jobRepository.FilteredListAsync(filter, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(4, resultsBasic.Items.Count());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void ListAsync_Test()
|
||||
{
|
||||
// Act
|
||||
var resultsBasic = await _jobRepository.ListAsync(10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(9, resultsBasic.Count());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FindAsync_Found()
|
||||
{
|
||||
// Act
|
||||
var resultsBasic = await _jobRepository.FindByIdAsync(1, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(1, resultsBasic.JobId);
|
||||
Assert.NotNull(resultsBasic.WorkItems);
|
||||
Assert.Equal(2, resultsBasic.WorkItems.Count);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FindAsync_Missing()
|
||||
{
|
||||
// Act
|
||||
var resultsBasic = await _jobRepository.FindByIdAsync(1000, 10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.Null(resultsBasic);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void Update_Test()
|
||||
{
|
||||
var foundJob = await _jobRepository.FindByIdAsync(1, 10, 20);
|
||||
Assert.NotNull(foundJob);
|
||||
Assert.Equal("Test.RequestingApplication.1", foundJob.RequestingApplication);
|
||||
|
||||
foundJob.RequestingApplication = "Test.RequestingApplication.3";
|
||||
|
||||
// Act
|
||||
_jobRepository.Update(foundJob);
|
||||
|
||||
//Act / Assert
|
||||
var updatedJob = await _jobRepository.FindByIdAsync(1, 10, 20);
|
||||
Assert.NotNull(updatedJob);
|
||||
updatedJob.RequestingApplication = "Test.RequestingApplication.3";
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void AddAsync_Test()
|
||||
{
|
||||
var jobtag = new Tag();
|
||||
jobtag.TagId = 1;
|
||||
jobtag.TagName = "Reports";
|
||||
// Arrange
|
||||
var job = new Job()
|
||||
{
|
||||
JobId = 100,
|
||||
JobTags = new List<JobTag>()
|
||||
{
|
||||
new JobTag()
|
||||
{
|
||||
JobId = 100,
|
||||
Tag = jobtag,
|
||||
TagId = 1
|
||||
},
|
||||
},
|
||||
|
||||
RequestingApplication = "Test.RequestingApplication.1",
|
||||
WorkItems = new List<WorkItem>()
|
||||
{
|
||||
new WorkItem ()
|
||||
{
|
||||
WorkItemId = 100,
|
||||
JobId = 100,
|
||||
Order = 1,
|
||||
SerializedPayload = "{TEST:null}",
|
||||
Url = "Test.Application.1",
|
||||
HttpMethod = HttpMethodType.Post,
|
||||
},
|
||||
new WorkItem ()
|
||||
{
|
||||
WorkItemId = 200,
|
||||
JobId = 100,
|
||||
Order = 2,
|
||||
SerializedPayload = "{TEST:null}",
|
||||
Url = "Test.Application.21",
|
||||
HttpMethod = HttpMethodType.Post,
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// Act
|
||||
var resultsBasic = await _jobRepository.AddAsync(job);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.True(resultsBasic.JobId > 0);
|
||||
Assert.True(resultsBasic.JobTags.Count > 0);
|
||||
Assert.NotNull(resultsBasic.WorkItems);
|
||||
Assert.Equal(100, resultsBasic.WorkItems.First().WorkItemId);
|
||||
Assert.Equal(resultsBasic.JobId, resultsBasic.WorkItems.First().JobId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void FindJobsReadyToBeScheduled_Return_2()
|
||||
{
|
||||
// Act
|
||||
var date = DateTime.Now;
|
||||
var resultsBasic = await _jobRepository.FindJobsReadyToBeScheduled(date);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(2, resultsBasic.Count());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void ListInactiveAsync_Test()
|
||||
{
|
||||
// Act
|
||||
var resultsBasic = await _jobRepository.ListInactiveAsync(10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(3, resultsBasic.Count());
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void ListSoftDeletedAsync_Test()
|
||||
{
|
||||
// Act
|
||||
var resultsBasic = await _jobRepository.ListSoftDeletedTrackedAsync(10, 20, new DateTime(2023, 04, 01));
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Single(resultsBasic);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async void ListInactiveExcludeSoftDeletedAsync_Test()
|
||||
{
|
||||
// Act
|
||||
var resultsBasic = await _jobRepository.ListInactiveExcludeSoftDeletedTrackedAsync(10, 20);
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(resultsBasic);
|
||||
Assert.Equal(2, resultsBasic.Count());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user