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

133 lines
4.5 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using LCU.API.Internal.Operations.IncentiveApi.Services;
using LCU.Library.Internal.IncentiveApiModels.Entities;
using LCU.Library.Internal.IncentiveApiModels.Enums;
using Microsoft.AspNetCore.Mvc;
using Moq;
using NUnit.Framework;
using LCU.API.Internal.Operations.IncentiveApi.Controllers;
using LCU.Library.Internal.IncentiveApiModels.Common;
using LCU.API.Internal.Operations.IncentiveApi.Exceptions;
namespace Application.UnitTests.Controllers
{
public class DeadActivityControllerTest
{
private DeadActivityController _controller;
private Mock<IDeadActivityService> _mockDeadActivityService;
[SetUp]
public void Setup()
{
_mockDeadActivityService = new Mock<IDeadActivityService>();
_controller = new DeadActivityController(_mockDeadActivityService.Object);
}
[Test]
public async Task Get_OK()
{
var filter = new DeadActivityFilter()
{
Limit = 999,
Page = 1
};
var results = new PagedResult<DeadActivity>();
results.Items = new List<DeadActivity>()
{
new DeadActivity("1234", SystemType.Action, DeadActivityReason.Other, "test")
};
results.Total = 1;
_mockDeadActivityService
.Setup(service => service.ListByFilterAsync(filter)).ReturnsAsync(results);
var result = await _controller.Get(filter);
Assert.NotNull(result);
var okResult = result as OkObjectResult;
Assert.NotNull(okResult);
Assert.AreEqual(200, okResult.StatusCode);
}
[Test]
public async Task Get_Single_Ok()
{
_mockDeadActivityService.Setup(x => x.GetDeadActivity(5))
.ReturnsAsync(new DeadActivity("1234", SystemType.Action, DeadActivityReason.Other, "test"));
var result = await _controller.Get(5);
Assert.NotNull(result);
var okResult = result as OkObjectResult;
Assert.NotNull(okResult);
Assert.AreEqual(200, okResult.StatusCode);
var value = okResult.Value as DeadActivity;
Assert.NotNull(value);
Assert.AreEqual("1234", value.SourceId);
}
[Test]
public async Task Get_Single_NotFound()
{
_mockDeadActivityService.Setup(x => x.GetDeadActivity(1))
.ThrowsAsync(new NotFoundException("Not Found"));
var result = await _controller.Get(1);
Assert.NotNull(result);
var badRequestResult = result as BadRequestObjectResult;
Assert.NotNull(badRequestResult);
Assert.AreEqual(400, badRequestResult.StatusCode);
Assert.AreEqual("DeadActivity Not Found.", badRequestResult.Value);
}
[Test]
public async Task Get_Single_Exception()
{
_mockDeadActivityService.Setup(x => x.GetDeadActivity(1))
.ThrowsAsync(new Exception("Internal Server Error"));
var result = await _controller.Get(1);
Assert.NotNull(result);
var badResult = result as StatusCodeResult;
Assert.NotNull(badResult);
Assert.AreEqual(500, badResult.StatusCode);
}
[Test]
public async Task ProcessDeadActivityState_Ok()
{
var deadActivity = new DeadActivity("1234", SystemType.Action, DeadActivityReason.Other, "test");
_mockDeadActivityService.Setup(mock => mock.ProcessDeadActivity(1,2))
.ReturnsAsync(deadActivity);
var result = await _controller.Delete(1,2);
Assert.NotNull(result);
var okResult = result as OkObjectResult;
Assert.NotNull(okResult);
Assert.AreEqual(200, okResult.StatusCode);
}
[Test]
public async Task ProcessDeadActivityState_Ok_NoLink()
{
var deadActivity = new DeadActivity("1234", SystemType.Action, DeadActivityReason.Other, "test");
_mockDeadActivityService.Setup(mock => mock.ProcessDeadActivity(1,-1))
.ReturnsAsync(deadActivity);
var result = await _controller.Delete(1);
Assert.NotNull(result);
var okResult = result as OkObjectResult;
Assert.NotNull(okResult);
Assert.AreEqual(200, okResult.StatusCode);
}
}
}