172 lines
5.2 KiB
C#
172 lines
5.2 KiB
C#
using LCU.API.Collections.RepoApi.Controllers;
|
|
using LCU.API.Collections.RepoApi.Exceptions;
|
|
using LCU.API.Collections.RepoApi.Services;
|
|
using LCU.Shared.Collections.RepoApiLib.Models;
|
|
using Microsoft.AspNetCore.Http;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Moq;
|
|
using Xunit;
|
|
|
|
namespace LCU.API.Collections.RepoApiTests.Controllers
|
|
{
|
|
public class RefundStatusControllerTest
|
|
{
|
|
private RefundStatusController _refundStatusController;
|
|
private Mock<IRefundStatusService> _refundStatusService;
|
|
private Mock<IHttpContextAccessor> _httpAccessor;
|
|
|
|
public RefundStatusControllerTest()
|
|
{
|
|
_refundStatusService = new Mock<IRefundStatusService>();
|
|
_httpAccessor = new Mock<IHttpContextAccessor>();
|
|
_refundStatusController = new RefundStatusController(
|
|
_refundStatusService.Object,
|
|
_httpAccessor.Object);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetById_Ok()
|
|
{
|
|
// Arrange
|
|
_refundStatusService.Setup(service => service.GetAsync(It.IsAny<int>())).ReturnsAsync(
|
|
new RefundStatus());
|
|
|
|
// Act
|
|
var result = await _refundStatusController.GetById(123);
|
|
|
|
// Assert
|
|
Assert.NotNull(result);
|
|
|
|
var okResult = result as OkObjectResult;
|
|
Assert.NotNull(okResult);
|
|
|
|
var okValue = okResult.Value;
|
|
Assert.NotNull(okValue);
|
|
|
|
var refundStatus = okValue as RefundStatus;
|
|
Assert.NotNull(refundStatus);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetById_Returns_Bad_Request_Invalid_ID_Equal_to_Zero()
|
|
{
|
|
// Act
|
|
var result = await _refundStatusController.GetById(0);
|
|
|
|
// Assert
|
|
Assert.NotNull(result);
|
|
|
|
var badResult = result as BadRequestObjectResult;
|
|
Assert.NotNull(badResult);
|
|
}
|
|
|
|
[Fact]
|
|
public async void GetById_Returns_NotFound_On_NFE()
|
|
{
|
|
// Arrange
|
|
_refundStatusService.Setup(service => service.GetAsync(It.IsAny<int>())).ThrowsAsync(
|
|
new NotFoundException("Refund Status Not Found Test"));
|
|
|
|
// Act
|
|
var result = await _refundStatusController.GetById(123);
|
|
|
|
// Assert
|
|
Assert.NotNull(result);
|
|
|
|
var badResult = result as NotFoundObjectResult;
|
|
Assert.NotNull(badResult);
|
|
|
|
var badResultValue = badResult.Value;
|
|
Assert.NotNull(badResultValue);
|
|
|
|
var badResultMessage = badResultValue as string;
|
|
Assert.NotNull(badResultMessage);
|
|
Assert.Equal("Refund Status Not Found Test", badResultMessage);
|
|
}
|
|
|
|
[Fact]
|
|
public async void Post_Ok()
|
|
{
|
|
// Arrange
|
|
_refundStatusService.Setup(service => service.SaveAsync(It.IsAny<RefundStatus>())).ReturnsAsync(
|
|
new RefundStatus());
|
|
|
|
// Act
|
|
var result = await _refundStatusController.Post(new RefundStatus() {RepoId = 123});
|
|
|
|
// Assert
|
|
Assert.NotNull(result);
|
|
|
|
var okResult = result as OkObjectResult;
|
|
Assert.NotNull(okResult);
|
|
|
|
var okValue = okResult.Value;
|
|
Assert.NotNull(okValue);
|
|
|
|
var refundStatus = okValue as RefundStatus;
|
|
Assert.NotNull(refundStatus);
|
|
}
|
|
|
|
[Fact]
|
|
public async void Post_Returns_Bad_Request_Invalid_ID_Equal_to_Zero()
|
|
{
|
|
// Act
|
|
var result = await _refundStatusController.Post(new RefundStatus() {RepoId = 0});
|
|
|
|
// Assert
|
|
Assert.NotNull(result);
|
|
|
|
var badResult = result as BadRequestObjectResult;
|
|
Assert.NotNull(badResult);
|
|
}
|
|
|
|
[Fact]
|
|
public async void Put_Ok()
|
|
{
|
|
// Arrange
|
|
_refundStatusService.Setup(service => service.UpdateAsync(It.IsAny<RefundStatus>())).ReturnsAsync(
|
|
new RefundStatus());
|
|
|
|
// Act
|
|
var result = await _refundStatusController.Put(123, new RefundStatus() {RepoId = 123});
|
|
|
|
// Assert
|
|
Assert.NotNull(result);
|
|
|
|
var okResult = result as OkObjectResult;
|
|
Assert.NotNull(okResult);
|
|
|
|
var okValue = okResult.Value;
|
|
Assert.NotNull(okValue);
|
|
|
|
var refundStatus = okValue as RefundStatus;
|
|
Assert.NotNull(refundStatus);
|
|
}
|
|
|
|
[Fact]
|
|
public async void Put_Returns_Bad_Request_Invalid_ID_Equal_to_Zero()
|
|
{
|
|
// Act
|
|
var result = await _refundStatusController.Put(0, new RefundStatus() {RepoId = 0});
|
|
|
|
// Assert
|
|
Assert.NotNull(result);
|
|
|
|
var badResult = result as BadRequestObjectResult;
|
|
Assert.NotNull(badResult);
|
|
}
|
|
|
|
[Fact]
|
|
public async void Put_Returns_Bad_Request_Invalid_ID_Mismatch()
|
|
{
|
|
// Act
|
|
var result = await _refundStatusController.Put(123, new RefundStatus() {RepoId = 1234});
|
|
|
|
// Assert
|
|
Assert.NotNull(result);
|
|
|
|
var badResult = result as BadRequestObjectResult;
|
|
Assert.NotNull(badResult);
|
|
}
|
|
}
|
|
} |