Skip to content

Commit

Permalink
Exceptions Tests (#17)
Browse files Browse the repository at this point in the history
* refactored `RailwayResult.FunctionalExtensions.Tests` (structure, namespaces ...)
* extended unit tests to test exception propagation in extension methods
  • Loading branch information
skrasekmichael committed Apr 3, 2024
1 parent 07549ee commit 752c3a0
Show file tree
Hide file tree
Showing 73 changed files with 1,763 additions and 540 deletions.

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
namespace RailwayResult.FunctionalExtensions.Tests;
namespace RailwayResult.FunctionalExtensions.Tests.Data;

public sealed record BasicError(string Key, string Message) : Error(Key, Message);
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
namespace RailwayResult.FunctionalExtensions.Tests.Data;

public sealed class BasicException : Exception
{
public static void Throw()
{
throw new BasicException();
}

public static Out Throw<Out>()
{
throw new BasicException();
}
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace RailwayResult.FunctionalExtensions.Tests;
namespace RailwayResult.FunctionalExtensions.Tests.Data;

public sealed class Callback
{
Expand All @@ -23,5 +23,4 @@ public Task<Result> ResultInvokeAsync(BasicError? error = null)
WasCalled = true;
return Task.FromResult(error is null ? Result.Success : error);
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace RailwayResult.FunctionalExtensions.Tests;
namespace RailwayResult.FunctionalExtensions.Tests.Data;

public static class Errors
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace RailwayResult.FunctionalExtensions.Tests;
namespace RailwayResult.FunctionalExtensions.Tests.Data;

public sealed record Obj(string? Value)
{
Expand Down

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace RailwayResult.FunctionalExtensions.Tests;
namespace RailwayResult.FunctionalExtensions.Tests.Extensions;

public static class ErrorExtensions
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
namespace RailwayResult.FunctionalExtensions.Tests;
namespace RailwayResult.FunctionalExtensions.Tests.Extensions;

public static class ResultExtensions
{
Expand Down
12 changes: 6 additions & 6 deletions tests/RailwayResult.FunctionalExtensions.Tests/GlobalUsings.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@

global using Xunit;

global using O = RailwayResult.FunctionalExtensions.Tests.Obj;
global using O = RailwayResult.FunctionalExtensions.Tests.Data.Obj;
global using RC = RailwayResult.Result<string?>;
global using R1 = RailwayResult.Result<RailwayResult.FunctionalExtensions.Tests.Obj>;
global using R1N = RailwayResult.Result<RailwayResult.FunctionalExtensions.Tests.Obj?>;
global using R2 = RailwayResult.Result<(RailwayResult.FunctionalExtensions.Tests.Obj, RailwayResult.FunctionalExtensions.Tests.Obj)>;
global using R2N = RailwayResult.Result<(RailwayResult.FunctionalExtensions.Tests.Obj?, RailwayResult.FunctionalExtensions.Tests.Obj?)>;
global using R3 = RailwayResult.Result<(RailwayResult.FunctionalExtensions.Tests.Obj, RailwayResult.FunctionalExtensions.Tests.Obj, RailwayResult.FunctionalExtensions.Tests.Obj)>;
global using R1 = RailwayResult.Result<RailwayResult.FunctionalExtensions.Tests.Data.Obj>;
global using R1N = RailwayResult.Result<RailwayResult.FunctionalExtensions.Tests.Data.Obj?>;
global using R2 = RailwayResult.Result<(RailwayResult.FunctionalExtensions.Tests.Data.Obj, RailwayResult.FunctionalExtensions.Tests.Data.Obj)>;
global using R2N = RailwayResult.Result<(RailwayResult.FunctionalExtensions.Tests.Data.Obj?, RailwayResult.FunctionalExtensions.Tests.Data.Obj?)>;
global using R3 = RailwayResult.Result<(RailwayResult.FunctionalExtensions.Tests.Data.Obj, RailwayResult.FunctionalExtensions.Tests.Data.Obj, RailwayResult.FunctionalExtensions.Tests.Data.Obj)>;

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
namespace RailwayResult.FunctionalExtensions.Tests.Tests.AndTests;

public sealed class AndTests : BaseTests
{
[Theory]
[ClassData(typeof(TheoryData_R1_And))]
public void R1_And(Func<R1, R2> and, R1 input, R2? expectedOutput) => Verify(and, input, expectedOutput);

[Theory]
[ClassData(typeof(TheoryData_TaskOfR1_And))]
public async Task TaskOfR1_And(Func<Task<R1>, Task<R2>> and, R1 input, R2? expectedOutput) => await VerifyAsync(and, input, expectedOutput);

[Theory]
[ClassData(typeof(TheoryData_R2_And))]
public void R2_And(Func<R2, R3> and, R2 input, R3? expectedOutput) => Verify(and, input, expectedOutput);

[Theory]
[ClassData(typeof(TheoryData_TaskOfR2_And))]
public async Task TaskOfR2_And(Func<Task<R2>, Task<R3>> and, R2 input, R3? expectedOutput) => await VerifyAsync(and, input, expectedOutput);

[Theory]
[ClassData(typeof(TheoryData_R1_AndAsync))]
public async Task R1_AndAsync(Func<R1, Task<R2>> andAsync, R1 input, R2? expectedOutput) => await VerifyAsync(andAsync, input, expectedOutput);
}
Loading

0 comments on commit 752c3a0

Please sign in to comment.