mirror of
https://github.com/aphrody-labs/NuGet.Client.git
synced 2026-10-14 21:39:05 +00:00
155 lines
5.0 KiB
C#
155 lines
5.0 KiB
C#
// Copyright (c) .NET Foundation. All rights reserved.
|
|
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
|
|
|
#nullable disable
|
|
|
|
using System;
|
|
using NuGet.ProjectModel.Test.Builders;
|
|
using NuGet.Versioning;
|
|
using Xunit;
|
|
|
|
namespace NuGet.ProjectModel.Test.ProjectLockFile
|
|
{
|
|
public class LockFileDependencyIdVersionComparerTests
|
|
{
|
|
[Fact]
|
|
public void GetHashCode_WhenDependencyIsNull_Throws()
|
|
{
|
|
Assert.Throws<ArgumentNullException>(
|
|
() => LockFileDependencyIdVersionComparer.Default.GetHashCode(null));
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_WhenBothArgumentsAreNull_ReturnsTrue()
|
|
{
|
|
LockFileDependency x = null;
|
|
LockFileDependency y = null;
|
|
|
|
var actual = LockFileDependencyIdVersionComparer.Default.Equals(x, y);
|
|
|
|
Assert.True(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_WhenOneArgumentIsNull_ReturnsFalse()
|
|
{
|
|
LockFileDependency isNull = null;
|
|
var notNull = new LockFileDependencyBuilder().Build();
|
|
|
|
var actual = LockFileDependencyIdVersionComparer.Default.Equals(isNull, notNull);
|
|
Assert.False(actual);
|
|
|
|
actual = LockFileDependencyIdVersionComparer.Default.Equals(notNull, isNull);
|
|
Assert.False(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_WhenSameReference_ReturnsTrue()
|
|
{
|
|
var dep = new LockFileDependencyBuilder().Build();
|
|
|
|
var actual = LockFileDependencyIdVersionComparer.Default.Equals(dep, dep);
|
|
|
|
Assert.True(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_WhenSameValue_ReturnsTrue()
|
|
{
|
|
var x = new LockFileDependencyBuilder().Build();
|
|
var y = new LockFileDependencyBuilder().Build();
|
|
|
|
var actual = LockFileDependencyIdVersionComparer.Default.Equals(x, y);
|
|
Assert.True(actual);
|
|
|
|
actual = LockFileDependencyIdVersionComparer.Default.Equals(y, x);
|
|
Assert.True(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_WhenContentHashIsDifferent_ReturnsTrue()
|
|
{
|
|
var x = new LockFileDependencyBuilder().Build();
|
|
var y = new LockFileDependencyBuilder()
|
|
.WithContentHash("XYZ")
|
|
.Build();
|
|
|
|
Assert.NotEqual(x.ContentHash, y.ContentHash);
|
|
|
|
var actual = LockFileDependencyIdVersionComparer.Default.Equals(x, y);
|
|
Assert.True(actual);
|
|
|
|
actual = LockFileDependencyIdVersionComparer.Default.Equals(y, x);
|
|
Assert.True(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_WhenPackageIdIsDifferent_ReturnsFalse()
|
|
{
|
|
var x = new LockFileDependencyBuilder().Build();
|
|
var y = new LockFileDependencyBuilder()
|
|
.WithId("PackageB")
|
|
.Build();
|
|
|
|
Assert.NotEqual(x.Id, y.Id);
|
|
|
|
var actual = LockFileDependencyIdVersionComparer.Default.Equals(x, y);
|
|
Assert.False(actual);
|
|
|
|
actual = LockFileDependencyIdVersionComparer.Default.Equals(y, x);
|
|
Assert.False(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_WhenResolvedVersionsAreDifferent_ReturnsFalse()
|
|
{
|
|
var x = new LockFileDependencyBuilder().Build();
|
|
var y = new LockFileDependencyBuilder()
|
|
.WithResolvedVersion(new NuGetVersion(1, 0, 1))
|
|
.Build();
|
|
|
|
Assert.NotEqual(x.ResolvedVersion, y.ResolvedVersion);
|
|
|
|
var actual = LockFileDependencyIdVersionComparer.Default.Equals(x, y);
|
|
Assert.False(actual);
|
|
|
|
actual = LockFileDependencyIdVersionComparer.Default.Equals(y, x);
|
|
Assert.False(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_WhenRequestedVersionsAreDifferent_ReturnsTrue()
|
|
{
|
|
var x = new LockFileDependencyBuilder().Build();
|
|
var y = new LockFileDependencyBuilder()
|
|
.WithRequestedVersion(new VersionRange(new NuGetVersion(1, 0, 1)))
|
|
.Build();
|
|
|
|
Assert.NotEqual(x.RequestedVersion, y.RequestedVersion);
|
|
|
|
var actual = LockFileDependencyIdVersionComparer.Default.Equals(x, y);
|
|
Assert.True(actual);
|
|
|
|
actual = LockFileDependencyIdVersionComparer.Default.Equals(y, x);
|
|
Assert.True(actual);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_WhenDependencyTypesAreDifferent_ReturnTrue()
|
|
{
|
|
var x = new LockFileDependencyBuilder().Build();
|
|
var y = new LockFileDependencyBuilder()
|
|
.WithType(PackageDependencyType.Transitive)
|
|
.Build();
|
|
|
|
Assert.NotEqual(x.Type, y.Type);
|
|
|
|
var actual = LockFileDependencyIdVersionComparer.Default.Equals(x, y);
|
|
Assert.True(actual);
|
|
|
|
actual = LockFileDependencyIdVersionComparer.Default.Equals(y, x);
|
|
Assert.True(actual);
|
|
}
|
|
}
|
|
}
|