133 lines
4.5 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|