Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions FileProcessor.BusinessLogic.Tests/DomainServiceHelperTests.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
using System;
using FileProcessor.BusinessLogic.Services;
using Microsoft.Extensions.Logging.Abstractions;
using Microsoft.Identity.Client;
using Shouldly;
using SimpleResults;
using Xunit;

namespace FileProcessor.BusinessLogic.Tests;

public class DomainServiceHelperTests
{
public DomainServiceHelperTests() {
Shared.Logger.Logger.Initialise(NullLogger.Instance);
}

[Fact]
public void DomainServiceHelper_HandleGetAggregateResult_SuccessfulGet_ResultHandled()
{
Guid aggregateId = Guid.Parse("0639682D-1D28-4AD8-B29D-4B76619083F1");
Result<TestAggregate> result = Result.Success(new TestAggregate
{
AggregateId = aggregateId
});

var handleResult = DomainServiceHelper.HandleGetAggregateResult(result, aggregateId, true);
handleResult.IsSuccess.ShouldBeTrue();
handleResult.Data.ShouldBeOfType(typeof(TestAggregate));
handleResult.Data.AggregateId.ShouldBe(aggregateId);
}

[Fact]
public void DomainServiceHelper_HandleGetAggregateResult_FailedGet_ResultHandled()
{
Guid aggregateId = Guid.Parse("0639682D-1D28-4AD8-B29D-4B76619083F1");
Result<TestAggregate> result = Result.Failure("Failed Get");

var handleResult = DomainServiceHelper.HandleGetAggregateResult(result, aggregateId, true);
handleResult.IsFailed.ShouldBeTrue();
handleResult.Message.ShouldBe("Failed Get");
}

[Fact]
public void DomainServiceHelper_HandleGetAggregateResult_FailedGet_NotFoundButIsError_ResultHandled()
{
Guid aggregateId = Guid.Parse("0639682D-1D28-4AD8-B29D-4B76619083F1");
Result<TestAggregate> result = Result.NotFound("Failed Get");

var handleResult = DomainServiceHelper.HandleGetAggregateResult(result, aggregateId, true);
handleResult.IsFailed.ShouldBeTrue();
handleResult.Message.ShouldBe("Failed Get");
}

[Fact]
public void DomainServiceHelper_HandleGetAggregateResult_FailedGet_NotFoundButIsNotError_ResultHandled()
{
Guid aggregateId = Guid.Parse("0639682D-1D28-4AD8-B29D-4B76619083F1");
Result<TestAggregate> result = Result.NotFound("Failed Get");

var handleResult = DomainServiceHelper.HandleGetAggregateResult(result, aggregateId, false);
handleResult.IsSuccess.ShouldBeTrue();
handleResult.Data.ShouldBeOfType(typeof(TestAggregate));
handleResult.Data.AggregateId.ShouldBe(aggregateId);
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
using FileProcessor.DataTransferObjects;
using System.Collections.Generic;
using FileProcessor.BusinessLogic.Managers;
using FileProcessor.DataTransferObjects;
using FileProcessor.Models;
using SimpleResults;

namespace FileProcessor.BusinessLogic.Tests;
Expand All @@ -20,4 +23,36 @@ public async Task<Result> ProcessUploadedFile(FileCommands.ProcessUploadedFileCo

public async Task<Result> ProcessTransactionForFileLine(FileCommands.ProcessTransactionForFileLineCommand command,
CancellationToken cancellationToken) => Result.Success();
}

public class DummyFileProcessorManager : IFileProcessorManager {
public async Task<Result<List<FileProfile>>> GetAllFileProfiles(CancellationToken cancellationToken) {
return Result.Success();
}

public async Task<Result<FileProfile>> GetFileProfile(Guid fileProfileId,
CancellationToken cancellationToken) {
return Result.Success();
}

public async Task<Result<List<Models.FileImportLog>>> GetFileImportLogs(Guid estateId,
DateTime startDateTime,
DateTime endDateTime,
Guid? merchantId,
CancellationToken cancellationToken) {
return Result.Success();
}

public async Task<Result<Models.FileImportLog>> GetFileImportLog(Guid fileImportLogId,
Guid estateId,
Guid? merchantId,
CancellationToken cancellationToken) {
return Result.Success();
}

public async Task<Result<FileDetails>> GetFile(Guid fileId,
Guid estateId,
CancellationToken cancellationToken) {
return Result.Success();
}
}
Loading
Loading