Files
monorepo/LCU.API.Internal.FileOperations/LCU.Api.Internal.FileOperationsTests/Services/DirectFileOperationsServiceTest.cs
T
2026-04-27 10:50:07 -05:00

79 lines
3.2 KiB
C#

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using Moq;
using Xunit;
using LCU.Api.Internal.FileOperations.Services;
using LCU.Library.Internal.FileOperationsModels.Models;
namespace LCU.Api.Internal.FileOperationsTests.Services;
public class DirectFileOperationsServiceTest
{
private readonly DirectFileOperationsService _directFileOperationsService;
private Mock<IFileOperationsService> _mockFileOperationsService;
public DirectFileOperationsServiceTest()
{
_mockFileOperationsService = new Mock<IFileOperationsService>();
_directFileOperationsService = new DirectFileOperationsService(_mockFileOperationsService.Object);
}
[Fact]
public async Task HandleDirectFileOperationsRequest_Return_IsSuccessful_True()
{
var validRequestResponse = new RequestResponse() { MessageStack = new List<string>(), IsSuccessful = true };
_mockFileOperationsService.Setup(service => service.PerformFileOperation(It.IsAny<QueueRequest>())).Returns(validRequestResponse);
var request = new MoveFileRequest()
{
SourcePath = "",
SourceFile = "",
DestinationPath = ""
};
// act
var result = await _directFileOperationsService.HandleDirectFileOperationsRequest(request, FileOperationType.Move);
Assert.NotNull(result);
Assert.True(validRequestResponse.IsSuccessful);
_mockFileOperationsService.Verify(service => service.PerformFileOperation(It.IsAny<QueueRequest>()), Times.Once);
}
[Fact]
public async Task HandleDirectFileOperationsRequest_Return_IsSuccessful_False()
{
var validRequestResponse = new RequestResponse() { MessageStack = new List<string> { "test" }, IsSuccessful = false };
_mockFileOperationsService.Setup(service => service.PerformFileOperation(It.IsAny<QueueRequest>())).Returns(validRequestResponse);
var request = new MoveFileRequest()
{
SourcePath = "",
SourceFile = "",
DestinationPath = ""
};
// act
var result = await _directFileOperationsService.HandleDirectFileOperationsRequest(request, FileOperationType.Move);
Assert.NotNull(result);
Assert.False(result.IsSuccessful);
Assert.Single(result.MessageStack);
_mockFileOperationsService.Verify(service => service.PerformFileOperation(It.IsAny<QueueRequest>()), Times.Once);
}
[Fact]
public void HandleDirectFileOperationsRequest_PerformFileOperation_ThrowsException()
{
var validRequestResponse = new RequestResponse() { MessageStack = new List<string>(), IsSuccessful = true };
_mockFileOperationsService.Setup(service => service.PerformFileOperation(It.IsAny<QueueRequest>())).Throws(new Exception("Test"));
var request = new MoveFileRequest()
{
SourcePath = "",
SourceFile = "",
DestinationPath = ""
};
// act
Assert.ThrowsAsync<ArgumentNullException>(async () => await _directFileOperationsService.HandleDirectFileOperationsRequest(request, FileOperationType.Move));
_mockFileOperationsService.Verify(service => service.PerformFileOperation(It.IsAny<QueueRequest>()), Times.Once);
}
}