File: ByteArrayEqualityComparerTests.cs
Web Access
Project: src\test\Libraries\Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests\Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests.csproj (Microsoft.Extensions.Diagnostics.ResourceMonitoring.Tests)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
 
using Xunit;
 
namespace Microsoft.Extensions.Diagnostics.ResourceMonitoring.Test;
 
public class ByteArrayEqualityComparerTests
{
    private readonly ByteArrayEqualityComparer _comparer = new();
 
    [Fact]
    public void Equals_ReturnsTrue_WhenBothArraysAreNull()
    {
        Assert.True(_comparer.Equals(null, null));
    }
 
    [Fact]
    public void Equals_ReturnsFalse_WhenOneArrayIsNull()
    {
        var x = new byte[] { 1, 2, 3 };
        Assert.False(_comparer.Equals(x, null));
        Assert.False(_comparer.Equals(null, x));
    }
 
    [Fact]
    public void Equals_ReturnsFalse_WhenArraysHaveDifferentLengths()
    {
        var x = new byte[] { 1, 2, 3 };
        var y = new byte[] { 1, 2 };
        Assert.False(_comparer.Equals(x, y));
    }
 
    [Fact]
    public void Equals_ReturnsFalse_WhenArraysHaveDifferentValues()
    {
        var x = new byte[] { 1, 2, 3 };
        var y = new byte[] { 1, 2, 4 };
        Assert.False(_comparer.Equals(x, y));
    }
 
    [Fact]
    public void Equals_ReturnsTrue_WhenArraysAreEqual()
    {
        var x = new byte[] { 1, 2, 3 };
        var y = new byte[] { 1, 2, 3 };
        Assert.True(_comparer.Equals(x, y));
    }
 
    [Fact]
    public void GetHashCode_ReturnsSameValue_ForEqualArrays()
    {
        var x = new byte[] { 1, 2, 3 };
        var y = new byte[] { 1, 2, 3 };
        Assert.Equal(_comparer.GetHashCode(x), _comparer.GetHashCode(y));
    }
 
    [Fact]
    public void GetHashCode_ReturnsDifferentValue_ForDifferentArrays()
    {
        var x = new byte[] { 1, 2, 3 };
        var y = new byte[] { 1, 2, 4 };
        Assert.NotEqual(_comparer.GetHashCode(x), _comparer.GetHashCode(y));
    }
}