104 lines
3.5 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|