PCRB follow up client side logic
This commit is contained in:
55
MesaFabApproval.API.Test/ApprovalServiceTests.cs
Normal file
55
MesaFabApproval.API.Test/ApprovalServiceTests.cs
Normal file
@ -0,0 +1,55 @@
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using MesaFabApproval.API.Services;
|
||||
using MesaFabApproval.Shared.Models;
|
||||
|
||||
using Microsoft.Extensions.Caching.Memory;
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
using Moq;
|
||||
|
||||
using Xunit;
|
||||
|
||||
namespace MesaFabApproval.API.Test;
|
||||
|
||||
public class ApprovalServiceTests {
|
||||
private readonly Mock<ILogger<ApprovalService>> _loggerMock;
|
||||
private readonly Mock<IMemoryCache> _cacheMock;
|
||||
private readonly Mock<IDalService> _dalServiceMock;
|
||||
private readonly Mock<IUserService> _userServiceMock;
|
||||
private readonly ApprovalService _approvalService;
|
||||
|
||||
public ApprovalServiceTests() {
|
||||
_loggerMock = new Mock<ILogger<ApprovalService>>();
|
||||
_cacheMock = new Mock<IMemoryCache>();
|
||||
_dalServiceMock = new Mock<IDalService>();
|
||||
_userServiceMock = new Mock<IUserService>();
|
||||
_approvalService = new ApprovalService(_loggerMock.Object, _cacheMock.Object, _dalServiceMock.Object, _userServiceMock.Object);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DeleteApproval_ValidApprovalID_DeletesApproval() {
|
||||
int approvalID = 1;
|
||||
_dalServiceMock.Setup(d => d.ExecuteAsync(It.IsAny<string>(), It.IsAny<object>())).ReturnsAsync(1);
|
||||
|
||||
await _approvalService.DeleteApproval(approvalID);
|
||||
|
||||
_dalServiceMock.Verify(d => d.ExecuteAsync(It.IsAny<string>(), It.IsAny<object>()), Times.Once);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DeleteApproval_InvalidApprovalID_ThrowsArgumentException() {
|
||||
int approvalID = 0;
|
||||
|
||||
await Assert.ThrowsAsync<ArgumentException>(() => _approvalService.DeleteApproval(approvalID));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public async Task DeleteApproval_DeletionFails_ThrowsException() {
|
||||
int approvalID = 1;
|
||||
_dalServiceMock.Setup(d => d.ExecuteAsync(It.IsAny<string>(), It.IsAny<object>())).ReturnsAsync(0);
|
||||
|
||||
await Assert.ThrowsAsync<Exception>(() => _approvalService.DeleteApproval(approvalID));
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user