Files
2026-03-17 09:53:09 -05:00

114 lines
5.2 KiB
C#

using System;
using System.Threading.Tasks;
using LCU.API.Internal.Operations.IncentiveApi.Services.QueueServices;
using LCU.Library.Internal.Exceptions;
using LCU.Library.Internal.IncentiveApiModels.Requests;
using Microsoft.AspNetCore.Mvc;
using Moq;
using NUnit.Framework;
using LCU.API.Internal.Operations.IncentiveApi.Controllers;
using LCU.API.Internal.Operations.IncentiveApi.Services;
namespace Application.UnitTests.Controllers
{
public class ActivityImportControllerTest
{
private ActivityImportController _controller;
private Mock<IQueueCreditCardImportService> _mockQueueCreditCardImportService;
private Mock<IQueueIndirectVehicleImportService> _mockQueueVehicleImportService;
private Mock<IQueueAlliedGapMbpService> _mockQueueAlliedGapMbpService;
private Mock<IQueueActionCreditCardService> _mockQueueActionCreditCardService;
private Mock<IQueueActionVehicleService> _mockQueueActionVehicleService;
private Mock<IEStatementService> _mockEStatementService;
[SetUp]
public void Setup()
{
_mockQueueCreditCardImportService = new Mock<IQueueCreditCardImportService>();
_mockQueueVehicleImportService = new Mock<IQueueIndirectVehicleImportService>();
_mockQueueActionVehicleService = new Mock<IQueueActionVehicleService>();
_mockQueueActionCreditCardService = new Mock<IQueueActionCreditCardService>();
_mockQueueAlliedGapMbpService = new Mock<IQueueAlliedGapMbpService>();
_controller = new ActivityImportController(_mockQueueCreditCardImportService.Object, _mockQueueVehicleImportService.Object,
_mockQueueActionCreditCardService.Object,
_mockQueueActionVehicleService.Object, _mockQueueAlliedGapMbpService.Object);
}
[Test]
public async Task QueueCreditCardImportRequest_Accepted()
{
_mockQueueCreditCardImportService.Setup(x => x.QueueCreditCardSalesImport(It.IsAny<ImportCreditCardSalesRequest>()));
var result = await _controller.QueueCreditCardImportRequest(It.IsAny<ImportCreditCardSalesRequest>());
var acceptedResult = result as AcceptedResult;
Assert.NotNull(acceptedResult);
Assert.AreEqual(202, acceptedResult.StatusCode);
}
[Test]
public async Task QueueCreditCardImportRequest_ServiceFails_ServiceException()
{
_mockQueueCreditCardImportService.Setup(x => x.QueueCreditCardSalesImport(It.IsAny<ImportCreditCardSalesRequest>()))
.ThrowsAsync(new ServiceException("Failure"));
var result = await _controller.QueueCreditCardImportRequest(It.IsAny<ImportCreditCardSalesRequest>());
var objectResult = result as ObjectResult;
Assert.NotNull(objectResult);
Assert.AreEqual(500, objectResult.StatusCode);
}
[Test]
public async Task QueueCreditCardImportRequest_ServiceFails_Exception()
{
_mockQueueCreditCardImportService.Setup(x => x.QueueCreditCardSalesImport(It.IsAny<ImportCreditCardSalesRequest>()))
.ThrowsAsync(new Exception("Failure"));
var result = await _controller.QueueCreditCardImportRequest(It.IsAny<ImportCreditCardSalesRequest>());
var objectResult = result as StatusCodeResult;
Assert.NotNull(objectResult);
Assert.AreEqual(500, objectResult.StatusCode);
}
[Test]
public async Task QueueIndirectVehicleImportRequest_Accepted()
{
_mockQueueVehicleImportService.Setup(x => x.QueueIndirectVehicleSalesImport(It.IsAny<ImportIndirectVehicleSalesRequest>()));
var result = await _controller.QueueIndirectVehicleImportRequest(It.IsAny<ImportIndirectVehicleSalesRequest>());
var acceptedResult = result as AcceptedResult;
Assert.NotNull(acceptedResult);
Assert.AreEqual(202, acceptedResult.StatusCode);
}
[Test]
public async Task QueueIndirectVehicleImportRequest_ServiceFails_ServiceException()
{
_mockQueueVehicleImportService.Setup(x => x.QueueIndirectVehicleSalesImport(It.IsAny<ImportIndirectVehicleSalesRequest>()))
.ThrowsAsync(new ServiceException("Failure"));
var result = await _controller.QueueIndirectVehicleImportRequest(It.IsAny<ImportIndirectVehicleSalesRequest>());
var objectResult = result as ObjectResult;
Assert.NotNull(objectResult);
Assert.AreEqual(500, objectResult.StatusCode);
}
[Test]
public async Task QueueeIndirectVehicleImportRequest_ServiceFails_Exception()
{
_mockQueueVehicleImportService.Setup(x => x.QueueIndirectVehicleSalesImport(It.IsAny<ImportIndirectVehicleSalesRequest>()))
.ThrowsAsync(new Exception("Failure"));
var result = await _controller.QueueIndirectVehicleImportRequest(It.IsAny<ImportIndirectVehicleSalesRequest>());
var objectResult = result as StatusCodeResult;
Assert.NotNull(objectResult);
Assert.AreEqual(500, objectResult.StatusCode);
}
}
}