Files
2026-04-27 10:50:07 -05:00

82 lines
3.3 KiB
C#

using System;
using Microsoft.AspNetCore.Mvc;
using Moq;
using Xunit;
using LCU.Library.Internal.Exceptions;
using LCU.Api.Internal.FileOperations.Controllers;
using LCU.Library.Internal.FileOperationsModels.Models;
using System.Threading.Tasks;
using LCU.Api.Internal.FileOperations.Services.QueueServices;
namespace LCU.Api.Internal.FileOperationsTests.Controllers
{
public class IndexFileControllerTest
{
private IndexFileController _controller;
private Mock<IQueueFileOperationsService> _mockQueueFileOperationsService;
public IndexFileControllerTest()
{
_mockQueueFileOperationsService = new Mock<IQueueFileOperationsService>();
_controller = new IndexFileController(_mockQueueFileOperationsService.Object);
}
[Fact]
public async Task BatchPdfParser_OK()
{
var request = new ExtractIndexFileDataRequest()
{
IndexFilePath = "\\test\test",
IndexFileName = "Test.csv"
};
_mockQueueFileOperationsService.Setup(service => service.QueueFileOperations(It.IsAny<ExtractIndexFileDataRequest>(), It.IsAny<FileOperationType>())).Verifiable();
var result = await _controller.QueueExtractIndexFileData(request);
Assert.NotNull(result);
var acceptedResult = result as AcceptedResult;
Assert.NotNull(acceptedResult);
Assert.Equal(202, acceptedResult!.StatusCode);
_mockQueueFileOperationsService.Verify();
}
[Fact]
public async Task ExtractIndexFileDataRequest_ServiceException_InternalServerError()
{
var request = new ExtractIndexFileDataRequest()
{
IndexFilePath = "\\test\test",
IndexFileName = "Test.csv"
};
_mockQueueFileOperationsService.Setup(service => service.QueueFileOperations(It.IsAny<ExtractIndexFileDataRequest>(), It.IsAny<FileOperationType>()))
.Throws(new ServiceException("Thrown From Unit Test")).Verifiable();
var result = await _controller.QueueExtractIndexFileData(request);
Assert.NotNull(result);
var statusResult = result as ObjectResult;
Assert.NotNull(statusResult);
Assert.Equal(500, statusResult!.StatusCode);
_mockQueueFileOperationsService.Verify();
}
[Fact]
public async Task ExtractIndexFileDataRequest_UnexpectedException_InternalServerError()
{
var request = new ExtractIndexFileDataRequest()
{
IndexFilePath = "\\test\test",
IndexFileName = "Test.csv"
};
_mockQueueFileOperationsService.Setup(service => service.QueueFileOperations(It.IsAny<ExtractIndexFileDataRequest>(), It.IsAny<FileOperationType>()))
.Throws(new Exception("Thrown From Unit Test")).Verifiable();
var result = await _controller.QueueExtractIndexFileData(request);
Assert.NotNull(result);
var statusResult = result as StatusCodeResult;
Assert.NotNull(statusResult);
Assert.Equal(500, statusResult!.StatusCode);
_mockQueueFileOperationsService.Verify();
}
}
}