79 lines
3.2 KiB
C#
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);
|
|
}
|
|
} |