result/src/Result.Tests/ResultEqualityTests.cs
Louis Seubert 2a5c134d9f
All checks were successful
default / dotnet default workflow (8.0) (push) Successful in 39s
chore: add copyright header
2024-05-01 18:30:15 +02:00

176 lines
No EOL
3.8 KiB
C#

// Copyright (c) The Geekeey Authors
// SPDX-License-Identifier: EUPL-1.2
namespace Geekeey.Extensions.Result.Tests;
[TestFixture]
internal sealed class ResultEqualityTests
{
[Test]
public void I_can_equal_t_and_get_true_for_success_with_equal_value()
{
var a = Success(2);
var b = 2;
Assert.That(a.Equals(b), Is.True);
}
[Test]
public void I_can_equal_t_and_get_false_for_success_with_unequal_value()
{
var a = Success(2);
var b = 3;
Assert.That(a.Equals(b), Is.False);
}
[Test]
public void I_can_equal_t_and_get_false_for_failure()
{
var a = Failure<int>("error");
var b = 2;
Assert.That(a.Equals(b), Is.False);
}
[Test]
public void I_can_equal_result_and_get_true_for_success_and_success_with_equal_value()
{
var a = Success(2);
var b = Success(2);
Assert.That(a.Equals(b), Is.True);
}
[Test]
public void I_can_equal_result_and_get_false_for_success_and_success_with_unequal_value()
{
var a = Success(2);
var b = Success(3);
Assert.That(a.Equals(b), Is.False);
}
[Test]
public void I_can_equals_result_and_get_false_for_success_and_failure()
{
var a = Success(2);
var b = Failure<int>("error 1");
Assert.That(a.Equals(b), Is.False);
}
[Test]
public void I_can_equals_result_and_get_false_for_failure_and_success()
{
var a = Failure<int>("error");
var b = Success(2);
Assert.That(a.Equals(b), Is.False);
}
[Test]
public void I_can_equals_result_and_get_true_for_failure_and_failure()
{
var a = Failure<int>("error 1");
var b = Failure<int>("error 2");
Assert.That(a.Equals(b), Is.True);
}
[Test]
public void I_can_equal_t_and_get_true_for_success_with_equal_value_using_comparer()
{
var a = Success(2);
var b = 2;
Assert.That(a.Equals(b, EqualityComparer<int>.Default), Is.True);
}
[Test]
public void I_can_equal_t_and_get_false_for_success_with_unequal_value_using_comparer()
{
var a = Success(2);
var b = 3;
Assert.That(a.Equals(b, EqualityComparer<int>.Default), Is.False);
}
[Test]
public void I_can_equal_t_and_get_false_for_failure_using_comparer()
{
var a = Failure<int>("error");
var b = 2;
Assert.That(a.Equals(b, EqualityComparer<int>.Default), Is.False);
}
[Test]
public void I_can_equal_result_and_get_true_for_success_and_success_with_equal_value_using_comparer()
{
var a = Success(2);
var b = Success(2);
Assert.That(a.Equals(b, EqualityComparer<int>.Default), Is.True);
}
[Test]
public void I_can_equal_result_and_get_false_for_success_and_success_with_unequal_value_using_comparer()
{
var a = Success(2);
var b = Success(3);
Assert.That(a.Equals(b, EqualityComparer<int>.Default), Is.False);
}
[Test]
public void I_can_equals_result_and_get_false_for_success_and_failure_using_comparer()
{
var a = Success(2);
var b = Failure<int>("error 1");
Assert.That(a.Equals(b, EqualityComparer<int>.Default), Is.False);
}
[Test]
public void I_can_equals_result_and_get_false_for_failure_and_success_using_comparer()
{
var a = Failure<int>("error");
var b = Success(2);
Assert.That(a.Equals(b, EqualityComparer<int>.Default), Is.False);
}
[Test]
public void I_can_equals_result_and_get_true_for_failure_and_failure_using_comparer()
{
var a = Failure<int>("error 1");
var b = Failure<int>("error 2");
Assert.That(a.Equals(b, EqualityComparer<int>.Default), Is.True);
}
[Test]
public void I_can_get_hashcode_and_get_hashcode_for_success()
{
var result = Success(2);
Assert.That(result.GetHashCode(), Is.EqualTo(2.GetHashCode()));
}
[Test]
public void I_can_get_hashcode_and_get_zero_for_null()
{
var result = Success<string?>(null);
Assert.That(result.GetHashCode(), Is.Zero);
}
[Test]
public void I_can_get_hashcode_and_get_zero_for_failure()
{
var result = Failure<int>("error");
Assert.That(result.GetHashCode(), Is.Zero);
}
}