773 lines
54 KiB
C#
773 lines
54 KiB
C#
using System;
|
|
using System.IO;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using Moq;
|
|
using NUnit.Framework;
|
|
using LCU.Library.Internal.DocumentIngestorModels.Models;
|
|
using LCU.API.Internal.DocumentIngestor.Services.IngestionOperationServices;
|
|
using LCU.API.Internal.DocumentIngestor.Services.MicroApiServices;
|
|
using LCU.Library.Internal.Exceptions;
|
|
using LCU.API.Internal.DocumentIngestor.Services;
|
|
using LCU.API.Internal.DocumentIngestor.Configurations;
|
|
using LCU.Library.Internal.FileOperationsModels.Models;
|
|
|
|
namespace LCU.API.Internal.DocumentIngestorTests.Services.IngestionOperationServices;
|
|
|
|
public class OsgPreprocessorServiceTest
|
|
{
|
|
private OsgPreprocessorService _osgPreprocessorService;
|
|
private Mock<IFileOperationsApiService> _mockFileOperationsApiService;
|
|
private Mock<IOsgPreprocessorInfoService> _mockOsgPreprocessorInfoService;
|
|
private ApiConfiguration _apiConfiguration;
|
|
|
|
[SetUp]
|
|
public void Setup()
|
|
{
|
|
_mockFileOperationsApiService = new Mock<IFileOperationsApiService>();
|
|
_mockOsgPreprocessorInfoService = new Mock<IOsgPreprocessorInfoService>();
|
|
_apiConfiguration = new ApiConfiguration() { TimeZone = "America/Chicago" };
|
|
_osgPreprocessorService = new OsgPreprocessorService(_mockFileOperationsApiService.Object,
|
|
_mockOsgPreprocessorInfoService.Object,
|
|
_apiConfiguration);
|
|
}
|
|
|
|
public OsgPreprocessorRequest BuildTestOsgPreprocessorRequest()
|
|
{
|
|
return new OsgPreprocessorRequest()
|
|
{
|
|
ArchiveStartDate = new DateTime(2020, 10, 1),
|
|
SourceBasePath = @"\TEST\SourceBasePath",
|
|
WorkingBasePath = Path.GetFullPath(@"..\..\..\TestContent"),
|
|
OutputBasePath = @"\TEST\OutputBasePath",
|
|
IncompleteOutputBasePath = @"\TEST\IncompleteOutputBasePath"
|
|
};
|
|
}
|
|
|
|
[Test]
|
|
public async Task HandleOsgPreprocessing_Success()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var pdfList = new List<string>() { "testPdf.1.PDF", "testPdf.2.PDF" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File.XML" };
|
|
var requestResponse = new RequestResponse() { IsSuccessful = true };
|
|
|
|
_mockFileOperationsApiService.SetupSequence(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory)
|
|
.ReturnsAsync(indexFiles)
|
|
.ReturnsAsync(pdfList);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(request.SourceBasePath, allZipsInDirectory[0], request.WorkingBasePath)).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(requestResponse)
|
|
.ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse)
|
|
.ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.ValidateFileExists(It.IsAny<string>())).ReturnsAsync(false)
|
|
.ReturnsAsync(false);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse)
|
|
.ReturnsAsync(requestResponse)
|
|
.ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(It.Is<string>(folderPath => folderPath.Contains(request.WorkingBasePath)),
|
|
It.IsAny<string>(),
|
|
It.Is<string>(targetDirectory => targetDirectory.Contains(request.WorkingBasePath)))).ReturnsAsync(requestResponse)
|
|
.ReturnsAsync(requestResponse)
|
|
.ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse)
|
|
.ReturnsAsync(requestResponse)
|
|
.ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectZipDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>())).ReturnsAsync(requestResponse);
|
|
|
|
await _osgPreprocessorService.HandleOsgPreprocessing(request);
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(4));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Once);
|
|
}
|
|
|
|
[Test]
|
|
public async Task HandleOsgPreprocessing_Failure_IndexFileDoesNotExist()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var indexFiles = new List<string>() { };
|
|
var requestResponse = new RequestResponse() { IsSuccessful = true };
|
|
|
|
_mockFileOperationsApiService.SetupSequence(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory)
|
|
.ReturnsAsync(indexFiles);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(request.SourceBasePath, allZipsInDirectory[0], request.WorkingBasePath)).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectZipDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>())).ReturnsAsync(requestResponse);
|
|
|
|
|
|
await _osgPreprocessorService.HandleOsgPreprocessing(request);
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Once);
|
|
}
|
|
|
|
[Test]
|
|
public async Task HandleOsgPreprocessing_Failure_ParseReturnedNoRecords()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File_1099_MISC.XML" };
|
|
var requestResponse = new RequestResponse() { IsSuccessful = true };
|
|
|
|
_mockFileOperationsApiService.SetupSequence(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory)
|
|
.ReturnsAsync(indexFiles);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(request.SourceBasePath, allZipsInDirectory[0], request.WorkingBasePath)).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse)
|
|
.ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(It.Is<string>(folderPath => folderPath.Contains(request.WorkingBasePath)),
|
|
It.IsAny<string>(),
|
|
It.Is<string>(targetDirectory => targetDirectory.Contains(request.WorkingBasePath)))).ReturnsAsync(requestResponse)
|
|
.ReturnsAsync(requestResponse)
|
|
.ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectZipDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>())).ReturnsAsync(requestResponse);
|
|
|
|
await _osgPreprocessorService.HandleOsgPreprocessing(request);
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(1));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Once);
|
|
}
|
|
|
|
|
|
[Test]
|
|
public async Task HandleOsgPreprocessing_Failure_NoMatchingPdfsFound()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var pdfList = new List<string>() { "testPdf.3.PDF", "testPdf.4.PDF" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File.XML" };
|
|
var requestResponse = new RequestResponse() { IsSuccessful = true };
|
|
|
|
_mockFileOperationsApiService.SetupSequence(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory)
|
|
.ReturnsAsync(indexFiles)
|
|
.ReturnsAsync(pdfList);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectMoveFile(request.SourceBasePath, allZipsInDirectory[0], request.WorkingBasePath)).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.ValidateFileExists(It.IsAny<string>())).ReturnsAsync(false)
|
|
.ReturnsAsync(false);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectZipDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(requestResponse);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>())).ReturnsAsync(requestResponse);
|
|
|
|
|
|
await _osgPreprocessorService.HandleOsgPreprocessing(request);
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Once);
|
|
}
|
|
|
|
[Test]
|
|
public void HandleOsgPreprocessing_Failure_FailedToDeleteIndexFile()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var responseSuccess = new RequestResponse() { IsSuccessful = true };
|
|
var responseFailure = new RequestResponse() { IsSuccessful = false };
|
|
|
|
_mockFileOperationsApiService.Setup(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectMoveFile(request.SourceBasePath, allZipsInDirectory[0], request.WorkingBasePath)).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseFailure);
|
|
|
|
Assert.ThrowsAsync<ServiceException>(async () => await _osgPreprocessorService.HandleOsgPreprocessing(request));
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Never);
|
|
}
|
|
|
|
|
|
[Test]
|
|
public void HandleOsgPreprocessing_FailureToWriteInfoLog()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var pdfList = new List<string>() { "testPdf.1.PDF", "testPdf.2.PDF" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File.XML" };
|
|
var responseSuccess = new RequestResponse() { IsSuccessful = true };
|
|
var responseFailure = new RequestResponse() { IsSuccessful = false };
|
|
|
|
_mockFileOperationsApiService.SetupSequence(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory)
|
|
.ReturnsAsync(indexFiles)
|
|
.ReturnsAsync(pdfList);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(request.SourceBasePath, allZipsInDirectory[0], request.WorkingBasePath)).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.ValidateFileExists(It.IsAny<string>())).ReturnsAsync(false)
|
|
.ReturnsAsync(false);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(It.Is<string>(folderPath => folderPath.Contains(request.WorkingBasePath)),
|
|
It.IsAny<string>(),
|
|
It.Is<string>(targetDirectory => targetDirectory.Contains(request.WorkingBasePath)))).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseFailure);
|
|
|
|
Assert.ThrowsAsync<ServiceException>(async () => await _osgPreprocessorService.HandleOsgPreprocessing(request));
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Never);
|
|
}
|
|
|
|
[Test]
|
|
public async Task HandleOsgPreprocessing_WriteParsedRecordGroup_Failure_ParsedFileExists()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var pdfList = new List<string>() { "testPdf.1.PDF", "testPdf.2.PDF" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File.XML" };
|
|
var responseSuccess = new RequestResponse() { IsSuccessful = true };
|
|
|
|
_mockFileOperationsApiService.SetupSequence(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory)
|
|
.ReturnsAsync(indexFiles)
|
|
.ReturnsAsync(pdfList);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(request.SourceBasePath, allZipsInDirectory[0], request.WorkingBasePath)).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.ValidateFileExists(It.IsAny<string>())).ReturnsAsync(true)
|
|
.ReturnsAsync(false);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(It.Is<string>(folderPath => folderPath.Contains(request.WorkingBasePath)),
|
|
It.IsAny<string>(),
|
|
It.Is<string>(targetDirectory => targetDirectory.Contains(request.WorkingBasePath)))).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectZipDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>())).ReturnsAsync(responseSuccess);
|
|
|
|
await _osgPreprocessorService.HandleOsgPreprocessing(request);
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Once);
|
|
}
|
|
|
|
[Test]
|
|
public async Task HandleOsgPreprocessing_WriteParsedRecordGroup_Failure_FailedToCreateDirectory()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var pdfList = new List<string>() { "testPdf.1.PDF", "testPdf.2.PDF" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File.XML" };
|
|
var responseSuccess = new RequestResponse() { IsSuccessful = true };
|
|
var responseFailure = new RequestResponse() { IsSuccessful = false };
|
|
|
|
_mockFileOperationsApiService.SetupSequence(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory)
|
|
.ReturnsAsync(indexFiles)
|
|
.ReturnsAsync(pdfList);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(request.SourceBasePath, allZipsInDirectory[0], request.WorkingBasePath)).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.ValidateFileExists(It.IsAny<string>())).ReturnsAsync(false)
|
|
.ReturnsAsync(false);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseFailure)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(It.Is<string>(folderPath => folderPath.Contains(request.WorkingBasePath)),
|
|
It.IsAny<string>(),
|
|
It.Is<string>(targetDirectory => targetDirectory.Contains(request.WorkingBasePath)))).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectZipDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>())).ReturnsAsync(responseSuccess);
|
|
|
|
|
|
await _osgPreprocessorService.HandleOsgPreprocessing(request);
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Once);
|
|
}
|
|
|
|
[Test]
|
|
public async Task HandleOsgPreprocessing_WriteParsedRecordGroup_Failure_FailedToMovePdf()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var pdfList = new List<string>() { "testPdf.1.PDF", "testPdf.2.PDF" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File.XML" };
|
|
var responseSuccess = new RequestResponse() { IsSuccessful = true };
|
|
var responseFailure = new RequestResponse() { IsSuccessful = false };
|
|
|
|
_mockFileOperationsApiService.SetupSequence(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory)
|
|
.ReturnsAsync(indexFiles)
|
|
.ReturnsAsync(pdfList);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.ValidateFileExists(It.IsAny<string>())).ReturnsAsync(false)
|
|
.ReturnsAsync(false);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseFailure)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectZipDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>())).ReturnsAsync(responseSuccess);
|
|
|
|
await _osgPreprocessorService.HandleOsgPreprocessing(request);
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(4));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Once);
|
|
}
|
|
|
|
[Test]
|
|
public async Task HandleOsgPreprocessing_WriteParsedRecordGroup_Failure_FailedToWriteIndexFile()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var pdfList = new List<string>() { "testPdf.1.PDF", "testPdf.2.PDF" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File.XML" };
|
|
var responseSuccess = new RequestResponse() { IsSuccessful = true };
|
|
var responseFailure = new RequestResponse() { IsSuccessful = false };
|
|
|
|
_mockFileOperationsApiService.SetupSequence(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory)
|
|
.ReturnsAsync(indexFiles)
|
|
.ReturnsAsync(pdfList);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.ValidateFileExists(It.IsAny<string>())).ReturnsAsync(false)
|
|
.ReturnsAsync(false);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseFailure)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectZipDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>())).ReturnsAsync(responseSuccess);
|
|
|
|
await _osgPreprocessorService.HandleOsgPreprocessing(request);
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(4));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Once);
|
|
}
|
|
|
|
[Test]
|
|
public void HandleOsgPreprocessing_PrepareZipFile_Failure_FailedToMoveZipFile()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var pdfList = new List<string>() { "testPdf.1.PDF", "testPdf.2.PDF" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File.XML" };
|
|
var responseSuccess = new RequestResponse() { IsSuccessful = true };
|
|
var responseFailure = new RequestResponse() { IsSuccessful = false };
|
|
|
|
_mockFileOperationsApiService.Setup(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(responseFailure);
|
|
|
|
Assert.ThrowsAsync<ServiceException>(async () => await _osgPreprocessorService.HandleOsgPreprocessing(request));
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Never);
|
|
}
|
|
|
|
[Test]
|
|
public void HandleOsgPreprocessing_PrepareZipFile_Failure_FailedToUnzipZipFile()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var pdfList = new List<string>() { "testPdf.1.PDF", "testPdf.2.PDF" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File.XML" };
|
|
var responseSuccess = new RequestResponse() { IsSuccessful = true };
|
|
var responseFailure = new RequestResponse() { IsSuccessful = false };
|
|
|
|
_mockFileOperationsApiService.Setup(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(responseFailure);
|
|
|
|
Assert.ThrowsAsync<ServiceException>(async () => await _osgPreprocessorService.HandleOsgPreprocessing(request));
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Never);
|
|
}
|
|
|
|
|
|
[Test]
|
|
public void HandleOsgPreprocessing_PrepareZipFile_Failure_FailedToDeleteZipFile()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var pdfList = new List<string>() { "testPdf.1.PDF", "testPdf.2.PDF" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File.XML" };
|
|
var responseSuccess = new RequestResponse() { IsSuccessful = true };
|
|
var responseFailure = new RequestResponse() { IsSuccessful = false };
|
|
|
|
_mockFileOperationsApiService.Setup(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseFailure);
|
|
|
|
Assert.ThrowsAsync<ServiceException>(async () => await _osgPreprocessorService.HandleOsgPreprocessing(request));
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Never);
|
|
}
|
|
|
|
[Test]
|
|
public void HandleOsgPreprocessing_ZipAndMoveResults_Failure_FailedToZipFiles()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var pdfList = new List<string>() { "testPdf.1.PDF", "testPdf.2.PDF" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File.XML" };
|
|
var responseSuccess = new RequestResponse() { IsSuccessful = true };
|
|
var responseFailure = new RequestResponse() { IsSuccessful = false };
|
|
|
|
_mockFileOperationsApiService.SetupSequence(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory)
|
|
.ReturnsAsync(indexFiles)
|
|
.ReturnsAsync(pdfList);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(request.SourceBasePath, allZipsInDirectory[0], request.WorkingBasePath)).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.ValidateFileExists(It.IsAny<string>())).ReturnsAsync(false)
|
|
.ReturnsAsync(false);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(It.Is<string>(folderPath => folderPath.Contains(request.WorkingBasePath)),
|
|
It.IsAny<string>(),
|
|
It.Is<string>(targetDirectory => targetDirectory.Contains(request.WorkingBasePath)))).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectZipDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseFailure);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(responseSuccess);
|
|
|
|
Assert.ThrowsAsync<ServiceException>(async () => await _osgPreprocessorService.HandleOsgPreprocessing(request));
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Exactly(1));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Never);
|
|
}
|
|
|
|
[Test]
|
|
public void HandleOsgPreprocessing_Failure_FailedToDeleteDirectory()
|
|
{
|
|
var request = BuildTestOsgPreprocessorRequest();
|
|
var allZipsInDirectory = new List<string>() { "Test_OSG_Index_File.ZIP" };
|
|
var pdfList = new List<string>() { "testPdf.1.PDF", "testPdf.2.PDF" };
|
|
var indexFiles = new List<string>() { "Test_OSG_Index_File.XML" };
|
|
var responseSuccess = new RequestResponse() { IsSuccessful = true };
|
|
var responseFailure = new RequestResponse() { IsSuccessful = false };
|
|
|
|
_mockFileOperationsApiService.SetupSequence(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>())).ReturnsAsync(allZipsInDirectory)
|
|
.ReturnsAsync(indexFiles)
|
|
.ReturnsAsync(pdfList);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.ValidateFileExists(It.IsAny<string>())).ReturnsAsync(false)
|
|
.ReturnsAsync(false);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectMoveFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>())).ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess)
|
|
.ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.Setup(x => x.DirectZipDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>())).ReturnsAsync(responseSuccess);
|
|
_mockFileOperationsApiService.SetupSequence(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>())).ReturnsAsync(responseFailure)
|
|
.ReturnsAsync(responseFailure);
|
|
|
|
Assert.ThrowsAsync<ServiceException>(async () => await _osgPreprocessorService.HandleOsgPreprocessing(request));
|
|
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(4));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectUnzipFile(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<bool>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteFile(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Exactly(2));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Exactly(3));
|
|
_mockFileOperationsApiService.Verify(x => x.DirectZipDirectory(It.IsAny<string>(),
|
|
It.IsAny<string>(),
|
|
It.IsAny<string>()), Times.Once);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectDeleteDirectory(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<int>()), Times.Once);
|
|
}
|
|
|
|
[Test]
|
|
public void HandleOsgPreprocessing_ArgumentNullException_RequestNull()
|
|
{
|
|
OsgPreprocessorRequest request = null;
|
|
Assert.ThrowsAsync<ArgumentNullException>(async () => await _osgPreprocessorService.HandleOsgPreprocessing(request));
|
|
_mockFileOperationsApiService.Verify(x => x.ValidateFileExists(It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.GetFileContent(It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.BuildDynamicFileList(It.IsAny<DynamicFileListRequest>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectCreateDirectory(It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectMoveFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
_mockFileOperationsApiService.Verify(x => x.DirectWriteFile(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>(), It.IsAny<string>()), Times.Never);
|
|
}
|
|
} |