Added training reminder worker

This commit is contained in:
Chase Tucker
2024-04-10 09:59:55 -07:00
parent 156dee0751
commit ed89f25dad
9 changed files with 394 additions and 9 deletions

View File

@ -1,4 +1,5 @@
using FabApprovalWorkerService.Services;
using FabApprovalWorkerService.Models;
using FabApprovalWorkerService.Services;
using Microsoft.Extensions.Logging;
@ -26,6 +27,8 @@ public class TrainingServiceTests {
public void TrainingServiceWithNullDalServiceShouldThrowException() {
Assert.Throws<ArgumentNullException>(() => new TrainingService(_mockLogger.Object, null));
}
<<<<<<< Updated upstream
=======
[Test]
public void DeleteDocAssignmentWithInvalidIdShouldThrowException() {
@ -169,4 +172,71 @@ public class TrainingServiceTests {
_mockDalService.Verify(d => d.ExecuteAsync(It.IsAny<string>()));
}
[Test]
public async Task GetActiveTrainingAssignmentsShouldReturnExpectedAssignments() {
IEnumerable<TrainingAssignment> expectedAssignments = new List<TrainingAssignment>() {
new TrainingAssignment() {
ID = 1,
TrainingID = 1,
UserID = 1,
DateAssigned = DateTime.Now
},
new TrainingAssignment() {
ID = 2,
TrainingID = 1,
UserID = 2,
DateAssigned = DateTime.Now
},
new TrainingAssignment() {
ID = 3,
TrainingID = 1,
UserID = 3,
DateAssigned = DateTime.Now
}
};
_mockDalService.Setup(d => d.QueryAsync<TrainingAssignment>(It.IsAny<string>())).Returns(Task.FromResult(expectedAssignments));
_trainingService = new TrainingService(_mockLogger.Object, _mockDalService.Object);
IEnumerable<TrainingAssignment> actualAssignments = await _trainingService.GetActiveTrainingAssignments();
Assert.That(actualAssignments.Count() == expectedAssignments.Count());
}
[Test]
public void GetActiveTrainingAssignmentsWithDbErrorShouldThrowException() {
_mockDalService.Setup(d => d.QueryAsync<TrainingAssignment>(It.IsAny<string>())).Throws(new Exception());
_trainingService = new TrainingService(_mockLogger.Object, _mockDalService.Object);
Assert.ThrowsAsync<Exception>(async Task() => await _trainingService.GetActiveTrainingAssignments());
}
[Test]
public void UpdateTrainingAssignmentLastNotificationWithInvalidIdShouldThrowException() {
_trainingService = new TrainingService(_mockLogger.Object, _mockDalService.Object);
Assert.ThrowsAsync<ArgumentException>(async Task () => await _trainingService.UpdateTrainingAssignmentLastNotification(-1));
}
[Test]
public void UpdateTrainingAssignmentLastNotificationDbErrorShouldThrowException() {
_mockDalService.Setup(d => d.ExecuteAsync(It.IsAny<string>())).Throws(new Exception());
_trainingService = new TrainingService(_mockLogger.Object, _mockDalService.Object);
Assert.ThrowsAsync<Exception>(async Task () => await _trainingService.UpdateTrainingAssignmentLastNotification(1));
}
[Test]
public async Task UpdateTrainingAssignmentLastNotificationShouldExecuteSql() {
_trainingService = new TrainingService(_mockLogger.Object, _mockDalService.Object);
await _trainingService.UpdateTrainingAssignmentLastNotification(1);
_mockDalService.Verify(d => d.ExecuteAsync(It.IsAny<string>()), Times.Once());
}
>>>>>>> Stashed changes
}