Files
monorepo/LCU.API.Operations.IncentiveAPI/LCU.API.Internal.Operations.IncentiveApi.UnitTests/Controllers/CommissionControllerTest.cs
T
2026-03-17 09:53:09 -05:00

104 lines
3.5 KiB
C#

using System.Collections.Generic;
using LCU.API.Internal.Operations.IncentiveApi.Services;
using LCU.Library.Internal.IncentiveApiModels.Entities;
using Microsoft.AspNetCore.Mvc;
using Moq;
using NUnit.Framework;
using System;
using System.Threading.Tasks;
using LCU.API.Internal.Operations.IncentiveApi.Controllers;
using LCU.API.Internal.Operations.IncentiveApi.Exceptions;
namespace Application.UnitTests.Controllers
{
public class CommissionControllerTest
{
private CommissionController _controller;
private Mock<ICommissionService> _mockCommissionService;
[SetUp]
public void Setup()
{
_mockCommissionService = new Mock<ICommissionService>();
_controller = new CommissionController(_mockCommissionService.Object);
}
[Test]
public async Task Get_OK()
{
_mockCommissionService.Setup(mock => mock.GetCommissionsAsync())
.ReturnsAsync(new List<Commission>
{
new Commission()
});
var result = await _controller.Get();
Assert.NotNull(result);
var okResult = result as OkObjectResult;
Assert.NotNull(okResult);
Assert.AreEqual(200, okResult.StatusCode);
}
[Test]
public async Task Get_ServiceException_Returns500()
{
_mockCommissionService.Setup(mock => mock.GetCommissionsAsync())
.ThrowsAsync(new Exception("error thrown"));
var result = await _controller.Get();
Assert.NotNull(result);
var errorResult = result as StatusCodeResult;
Assert.NotNull(errorResult);
Assert.AreEqual(500, errorResult.StatusCode);
}
[Test]
public async Task SetCommissions_Created()
{
var commissions = new List<Commission>();
_mockCommissionService.Setup(mock => mock.SaveCommissionsAsync(commissions));
var result = await _controller.SetCommissions(commissions);
Assert.NotNull(result);
var noContentResult = result as NoContentResult;
Assert.NotNull(noContentResult);
Assert.AreEqual(204, noContentResult.StatusCode);
}
[Test]
public async Task SetCommissions_ServiceException_Returns500()
{
var commissions = new List<Commission>();
_mockCommissionService.Setup(mock => mock.SaveCommissionsAsync(commissions))
.ThrowsAsync(new Exception("error thrown"));
var result = await _controller.SetCommissions(commissions);
Assert.NotNull(result);
var errorResult = result as StatusCodeResult;
Assert.NotNull(errorResult);
Assert.AreEqual(500, errorResult.StatusCode);
}
[Test]
public async Task SetCommissions_CommissionExistsException_Returns409()
{
var commissions = new List<Commission>();
_mockCommissionService.Setup(mock => mock.SaveCommissionsAsync(commissions))
.ThrowsAsync(new CommissionExistsException("commission exists error thrown"));
var result = await _controller.SetCommissions(commissions);
Assert.NotNull(result);
var conflictResult = result as ConflictObjectResult;
Assert.NotNull(conflictResult);
Assert.AreEqual(409, conflictResult.StatusCode);
Assert.AreEqual("commission exists error thrown", conflictResult.Value);
}
}
}