232 lines
7.8 KiB
C#
232 lines
7.8 KiB
C#
using System.Linq.Dynamic.Core;
|
|
using LCU.API.Internal.LoanRate.Controllers;
|
|
using LCU.API.Internal.LoanRate.Services;
|
|
using LCU.Library.Internal.LcuClassPatterns.CrudTests.Tests;
|
|
using LCU.Library.Internal.LcuClassPatterns.CrudTests.Utilities;
|
|
using LCU.Library.Internal.LoanRateModels.Entities;
|
|
using LCU.Library.Internal.LoanRateModels.Requests;
|
|
using LCU.Library.Internal.LoanRateModels.Responses;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
namespace LCU.API.Internal.LoanRateTests.ControllerTests;
|
|
|
|
public class RateUploadInfoControllerTest : CrudControllerTest<RateUploadInfo>
|
|
{
|
|
private readonly Mock<IRateUploadInfoService> _mockRateUploadInfoService = new();
|
|
private readonly RateUploadInfoController _controller;
|
|
|
|
public RateUploadInfoControllerTest()
|
|
{
|
|
_controller = new RateUploadInfoController(_mockRateUploadInfoService.Object);
|
|
}
|
|
|
|
[Fact]
|
|
public async void RateUploadInfo_GetLatest_OK()
|
|
{
|
|
var rateUploadInfo = new RateUploadInfo
|
|
{
|
|
RateUploadInfoId = (int)typeof(int).GetRandomValue()
|
|
};
|
|
|
|
_mockRateUploadInfoService.Setup(x => x.GetLatestAsync()).ReturnsAsync(rateUploadInfo).Verifiable();
|
|
|
|
var result = await _controller.GetLatest();
|
|
Assert.NotNull(result);
|
|
|
|
Assert.IsType<OkObjectResult>(result);
|
|
var status = result as OkObjectResult;
|
|
Assert.NotNull(status);
|
|
Assert.Equal(200, status.StatusCode);
|
|
_mockRateUploadInfoService.Verify();
|
|
}
|
|
|
|
[Fact]
|
|
public async void RateUploadInfo_GetLatest_NoContent()
|
|
{
|
|
RateUploadInfo? rateUploadInfo = null;
|
|
|
|
_mockRateUploadInfoService.Setup(x => x.GetLatestAsync()).ReturnsAsync(rateUploadInfo).Verifiable();
|
|
|
|
var result = await _controller.GetLatest();
|
|
Assert.NotNull(result);
|
|
|
|
Assert.IsType<NoContentResult>(result);
|
|
var status = result as NoContentResult;
|
|
Assert.NotNull(status);
|
|
Assert.Equal(204, status.StatusCode);
|
|
_mockRateUploadInfoService.Verify();
|
|
}
|
|
|
|
[Fact]
|
|
public async void RateUploadInfo_GetLatest_InternalServerError()
|
|
{
|
|
_mockRateUploadInfoService.Setup(x => x.GetLatestAsync())
|
|
.Throws(new Exception("Test")).Verifiable();
|
|
|
|
var result = await _controller.GetLatest();
|
|
Assert.NotNull(result);
|
|
|
|
Assert.IsType<StatusCodeResult>(result);
|
|
var status = result as StatusCodeResult;
|
|
Assert.NotNull(status);
|
|
Assert.Equal(500, status.StatusCode);
|
|
_mockRateUploadInfoService.Verify();
|
|
}
|
|
|
|
[Fact]
|
|
public async void RateUploadInfo_GetFilteredRateUploadInfo_OK()
|
|
{
|
|
var request = new RateUploadInfoFilter
|
|
{
|
|
EffectiveDate = (DateTime)typeof(DateTime).GetRandomValue()
|
|
};
|
|
|
|
var response = new RateUploadInfoFilterResult
|
|
{
|
|
Items = new List<RateUploadInfo>
|
|
{
|
|
new() { RateUploadInfoId = (int)typeof(int).GetRandomValue() },
|
|
new() { RateUploadInfoId = (int)typeof(int).GetRandomValue() },
|
|
new() { RateUploadInfoId = (int)typeof(int).GetRandomValue() }
|
|
}
|
|
};
|
|
|
|
_mockRateUploadInfoService.Setup(x => x.GetFilteredRateUploadInfo(request)).ReturnsAsync(response).Verifiable();
|
|
|
|
var result = await _controller.GetFilteredRateUploadInfo(request);
|
|
Assert.NotNull(result);
|
|
|
|
Assert.IsType<OkObjectResult>(result);
|
|
var status = result as OkObjectResult;
|
|
Assert.NotNull(status);
|
|
Assert.Equal(200, status.StatusCode);
|
|
_mockRateUploadInfoService.Verify();
|
|
}
|
|
|
|
[Fact]
|
|
public async void RateUploadInfo_GetFilteredRateUploadInfo_InternalServerError()
|
|
{
|
|
var request = new RateUploadInfoFilter
|
|
{
|
|
EffectiveDate = (DateTime)typeof(DateTime).GetRandomValue()
|
|
};
|
|
|
|
_mockRateUploadInfoService.Setup(x => x.GetFilteredRateUploadInfo(request))
|
|
.Throws(new Exception("Test")).Verifiable();
|
|
|
|
var result = await _controller.GetFilteredRateUploadInfo(request);
|
|
Assert.NotNull(result);
|
|
|
|
Assert.IsType<StatusCodeResult>(result);
|
|
var status = result as StatusCodeResult;
|
|
Assert.NotNull(status);
|
|
Assert.Equal(500, status.StatusCode);
|
|
_mockRateUploadInfoService.Verify();
|
|
}
|
|
|
|
[Fact]
|
|
public async void RateUploadInfo_ComplexDelete_OK()
|
|
{
|
|
var rateUploadInfoId = (int)typeof(int).GetRandomValue();
|
|
|
|
_mockRateUploadInfoService.Setup(x => x.ComplexDelete(rateUploadInfoId)).Verifiable();
|
|
|
|
var result = await _controller.ComplexDelete(rateUploadInfoId);
|
|
Assert.NotNull(result);
|
|
|
|
Assert.IsType<OkResult>(result);
|
|
var status = result as OkResult;
|
|
Assert.NotNull(status);
|
|
Assert.Equal(200, status.StatusCode);
|
|
_mockRateUploadInfoService.Verify();
|
|
}
|
|
|
|
[Fact]
|
|
public async void RateUploadInfo_ComplexDelete_BadRequest()
|
|
{
|
|
var rateUploadInfoId = 0;
|
|
|
|
var result = await _controller.ComplexDelete(rateUploadInfoId);
|
|
Assert.NotNull(result);
|
|
|
|
Assert.IsType<BadRequestObjectResult>(result);
|
|
var status = result as BadRequestObjectResult;
|
|
Assert.NotNull(status);
|
|
Assert.Equal(400, status.StatusCode);
|
|
}
|
|
|
|
[Fact]
|
|
public async void RateUploadInfo_ComplexDelete_InternalServerError()
|
|
{
|
|
var rateUploadInfoId = (int)typeof(int).GetRandomValue();
|
|
|
|
_mockRateUploadInfoService.Setup(x => x.ComplexDelete(rateUploadInfoId))
|
|
.Throws(new Exception("Test")).Verifiable();
|
|
|
|
var result = await _controller.ComplexDelete(rateUploadInfoId);
|
|
Assert.NotNull(result);
|
|
|
|
Assert.IsType<StatusCodeResult>(result);
|
|
var status = result as StatusCodeResult;
|
|
Assert.NotNull(status);
|
|
Assert.Equal(500, status.StatusCode);
|
|
_mockRateUploadInfoService.Verify();
|
|
}
|
|
|
|
[Fact]
|
|
public async void RateUploadInfo_ComplexSave_OK()
|
|
{
|
|
var rateUploadInfoRequest = new RateUploadInfoRequest
|
|
{
|
|
EffectiveDate = (DateTime)typeof(DateTime).GetRandomValue(),
|
|
FileName = (string)typeof(string).GetRandomValue()
|
|
};
|
|
|
|
_mockRateUploadInfoService.Setup(x => x.ComplexSave(rateUploadInfoRequest)).Verifiable();
|
|
|
|
var result = await _controller.ComplexSave(rateUploadInfoRequest);
|
|
Assert.NotNull(result);
|
|
|
|
Assert.IsType<OkObjectResult>(result);
|
|
var status = result as OkObjectResult;
|
|
Assert.NotNull(status);
|
|
Assert.Equal(200, status.StatusCode);
|
|
_mockRateUploadInfoService.Verify();
|
|
}
|
|
|
|
[Fact]
|
|
public async void RateUploadInfo_ComplexSave_BadRequest()
|
|
{
|
|
RateUploadInfoRequest? rateUploadInfoRequest = null;
|
|
|
|
var result = await _controller.ComplexSave(rateUploadInfoRequest);
|
|
Assert.NotNull(result);
|
|
|
|
Assert.IsType<BadRequestObjectResult>(result);
|
|
var status = result as BadRequestObjectResult;
|
|
Assert.NotNull(status);
|
|
Assert.Equal(400, status.StatusCode);
|
|
}
|
|
|
|
[Fact]
|
|
public async void RateUploadInfo_ComplexSave_InternalServerError()
|
|
{
|
|
var rateUploadInfoRequest = new RateUploadInfoRequest
|
|
{
|
|
EffectiveDate = (DateTime)typeof(DateTime).GetRandomValue(),
|
|
FileName = (string)typeof(string).GetRandomValue()
|
|
};
|
|
|
|
_mockRateUploadInfoService.Setup(x => x.ComplexSave(rateUploadInfoRequest))
|
|
.Throws(new Exception("Test")).Verifiable();
|
|
|
|
var result = await _controller.ComplexSave(rateUploadInfoRequest);
|
|
Assert.NotNull(result);
|
|
|
|
Assert.IsType<StatusCodeResult>(result);
|
|
var status = result as StatusCodeResult;
|
|
Assert.NotNull(status);
|
|
Assert.Equal(500, status.StatusCode);
|
|
_mockRateUploadInfoService.Verify();
|
|
}
|
|
} |