82 lines
3.3 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|