feat: create request projects for basic CQRS
This commit is contained in:
commit
d614788e06
190 changed files with 12236 additions and 0 deletions
76
src/request.result.tests/ResultConversionTests.cs
Normal file
76
src/request.result.tests/ResultConversionTests.cs
Normal file
|
|
@ -0,0 +1,76 @@
|
|||
// Copyright (c) The Geekeey Authors
|
||||
// SPDX-License-Identifier: EUPL-1.2
|
||||
|
||||
namespace Geekeey.Request.Result.Tests;
|
||||
|
||||
internal sealed class ResultConversionTests
|
||||
{
|
||||
[Test]
|
||||
public async Task I_can_implicitly_convert_from_value_and_get_success()
|
||||
{
|
||||
var result = Prelude.Success(2);
|
||||
|
||||
using var scope = Assert.Multiple();
|
||||
await Assert.That(result.IsSuccess).IsTrue();
|
||||
await Assert.That(result.IsFailure).IsFalse();
|
||||
await Assert.That(result.Value).IsEqualTo(2);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task I_can_implicitly_convert_from_error_and_get_failure()
|
||||
{
|
||||
var error = new CustomTestError();
|
||||
var result = Prelude.Failure<int>(error);
|
||||
|
||||
using var scope = Assert.Multiple();
|
||||
await Assert.That(result.IsSuccess).IsFalse();
|
||||
await Assert.That(result.IsFailure).IsTrue();
|
||||
await Assert.That(result.Error).IsTypeOf<CustomTestError>();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task I_can_unwrap_and_get_value_for_success()
|
||||
{
|
||||
var result = Prelude.Success(2);
|
||||
var value = result.Unwrap();
|
||||
|
||||
await Assert.That(value).IsEqualTo(2);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task I_can_unwrap_and_get_exception_for_failure()
|
||||
{
|
||||
var result = Prelude.Failure<int>("error");
|
||||
|
||||
await Assert.That(result.Unwrap).Throws<UnwrapException>();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task I_can_explicitly_convert_and_get_value_for_success()
|
||||
{
|
||||
var result = Prelude.Success(2);
|
||||
var value = (int)result;
|
||||
|
||||
await Assert.That(value).IsEqualTo(2);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task I_can_explicitly_convert_and_get_exception_for_failure()
|
||||
{
|
||||
var result = Prelude.Failure<int>("error");
|
||||
|
||||
await Assert.That(() => (int)result).Throws<UnwrapException>();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task I_can_implicitly_convert_from_error_to_non_generic_result()
|
||||
{
|
||||
var error = new CustomTestError();
|
||||
Result result = error;
|
||||
|
||||
using var scope = Assert.Multiple();
|
||||
await Assert.That(result.IsSuccess).IsFalse();
|
||||
await Assert.That(result.IsFailure).IsTrue();
|
||||
await Assert.That(result.Error).IsTypeOf<CustomTestError>();
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue