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.API.Internal.Operations.IncentiveApi.Exceptions; namespace Application.UnitTests.Controllers { public class DeadActiviyControlerTest { private DeadActivityController _controller; private Mock _mockDeadActivityService; [SetUp] public void SetUp() { _mockDeadActivityService = new Mock(); _controller = new DeadActivityController(_mockDeadActivityService.Object); } [Test] public async Task Get_Single_Ok() { _mockDeadActivityService.Setup(x => x.GetDeadActivity(5)) .ReturnsAsync(new DeadActivity(new Activity() { Id = 5, Detail = new ActivityDetail() }, 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("Test", value.ReasonNote); } [Test] public async Task Get_Single_NotFound() { _mockDeadActivityService.Setup(x => x.GetDeadActivity(It.IsAny())) .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); } } }