2026-03-30 12:51:19 -05:00
|
|
|
namespace StevanFreeborn.Results.Tests;
|
|
|
|
|
|
|
|
|
|
public class ErrorTests
|
|
|
|
|
{
|
|
|
|
|
[Test]
|
|
|
|
|
public async Task Constructor_WhenCalled_ItShouldSetCode()
|
|
|
|
|
{
|
|
|
|
|
var error = new Error("code", "message");
|
2026-03-30 15:03:01 -05:00
|
|
|
|
2026-03-30 12:51:19 -05:00
|
|
|
await Assert.That(error.Code).IsEqualTo("code");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public async Task Constructor_WhenCalled_ItShouldSetMessage()
|
|
|
|
|
{
|
|
|
|
|
var error = new Error("code", "message");
|
2026-03-30 15:03:01 -05:00
|
|
|
|
2026-03-30 12:51:19 -05:00
|
|
|
await Assert.That(error.Message).IsEqualTo("message");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public async Task Constructor_WhenCalledWithMetadata_ItShouldSetMetadata()
|
|
|
|
|
{
|
|
|
|
|
var metadata = new Dictionary<string, object> { { "key", "value" } };
|
|
|
|
|
var error = new Error("code", "message", metadata);
|
2026-03-30 15:03:01 -05:00
|
|
|
|
2026-03-30 12:51:19 -05:00
|
|
|
await Assert.That(error.Metadata!.Count).IsEqualTo(1);
|
|
|
|
|
await Assert.That(error.Metadata["key"]).IsEqualTo("value");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public async Task Constructor_WhenCalledWithNullMetadata_ItShouldSetMetadataToNull()
|
|
|
|
|
{
|
|
|
|
|
var error = new Error("code", "message", null);
|
2026-03-30 15:03:01 -05:00
|
|
|
|
|
|
|
|
await Assert.That(error.Metadata).IsNull();
|
2026-03-30 12:51:19 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public async Task Equals_WhenErrorsHaveSameCodeAndMessage_ItShouldReturnTrue()
|
|
|
|
|
{
|
|
|
|
|
var error1 = new Error("code", "message");
|
|
|
|
|
var error2 = new Error("code", "message");
|
2026-03-30 15:03:01 -05:00
|
|
|
|
2026-03-30 12:51:19 -05:00
|
|
|
await Assert.That(error1).IsEqualTo(error2);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public async Task Equals_WhenErrorsHaveDifferentCode_ItShouldReturnFalse()
|
|
|
|
|
{
|
|
|
|
|
var error1 = new Error("code1", "message");
|
|
|
|
|
var error2 = new Error("code2", "message");
|
2026-03-30 15:03:01 -05:00
|
|
|
|
2026-03-30 12:51:19 -05:00
|
|
|
await Assert.That(error1 == error2).IsFalse();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Test]
|
|
|
|
|
public async Task Error_WhenCreated_ItShouldImplementIError()
|
|
|
|
|
{
|
|
|
|
|
var error = new Error("code", "message");
|
2026-03-30 15:03:01 -05:00
|
|
|
|
2026-03-30 12:51:19 -05:00
|
|
|
await Assert.That(error).IsAssignableTo<IError>();
|
|
|
|
|
}
|
|
|
|
|
}
|