mirror of
https://github.com/aphrody-labs/NuGet.Client.git
synced 2026-10-14 21:39:05 +00:00
230 lines
6.9 KiB
C#
230 lines
6.9 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.
|
|
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using FluentAssertions;
|
|
using NuGet.Frameworks;
|
|
using Xunit;
|
|
|
|
namespace NuGet.ProjectModel.Test
|
|
{
|
|
public class LockFileTargetTests
|
|
{
|
|
[Theory]
|
|
[InlineData("net461", "net461", true)]
|
|
[InlineData("net461", "net462", false)]
|
|
public void Equals_WithTargetFramework(string left, string right, bool expected)
|
|
{
|
|
var leftSide = new LockFileTarget()
|
|
{
|
|
TargetFramework = NuGetFramework.Parse(left)
|
|
};
|
|
|
|
var rightSide = new LockFileTarget()
|
|
{
|
|
TargetFramework = NuGetFramework.Parse(right)
|
|
};
|
|
|
|
// Act & Assert
|
|
if (expected)
|
|
{
|
|
leftSide.Should().Be(rightSide);
|
|
}
|
|
else
|
|
{
|
|
leftSide.Should().NotBe(rightSide);
|
|
}
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("win7", "win7", true)]
|
|
[InlineData("win10", "win7", false)]
|
|
public void Equals_WithRuntimeIdentifier(string left, string right, bool expected)
|
|
{
|
|
var leftSide = new LockFileTarget()
|
|
{
|
|
RuntimeIdentifier = left
|
|
};
|
|
|
|
var rightSide = new LockFileTarget()
|
|
{
|
|
RuntimeIdentifier = right
|
|
};
|
|
|
|
// Act & Assert
|
|
if (expected)
|
|
{
|
|
leftSide.Should().Be(rightSide);
|
|
}
|
|
else
|
|
{
|
|
leftSide.Should().NotBe(rightSide);
|
|
}
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("net6.0", "net6.0", true)]
|
|
[InlineData("net6.0", "net7.0", false)]
|
|
[InlineData("", "", true)]
|
|
[InlineData(null, null, true)]
|
|
[InlineData("net6.0", null, false)]
|
|
[InlineData("net6.0", "", false)]
|
|
[InlineData("MyAlias", "MyAlias", true)]
|
|
[InlineData("MyAlias", "MYALIAS", false)]
|
|
public void Equals_WithTargetAlias(string left, string right, bool expected)
|
|
{
|
|
var leftSide = new LockFileTarget()
|
|
{
|
|
TargetAlias = left
|
|
};
|
|
|
|
var rightSide = new LockFileTarget()
|
|
{
|
|
TargetAlias = right
|
|
};
|
|
|
|
// Act & Assert
|
|
if (expected)
|
|
{
|
|
leftSide.Should().Be(rightSide);
|
|
}
|
|
else
|
|
{
|
|
leftSide.Should().NotBe(rightSide);
|
|
}
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("net6.0", "net6.0", true)]
|
|
[InlineData("net6.0", "net7.0", false)]
|
|
[InlineData("", "", true)]
|
|
[InlineData(null, null, true)]
|
|
[InlineData("net6.0", null, false)]
|
|
[InlineData("net6.0", "", false)]
|
|
[InlineData("MyAlias", "MyAlias", true)]
|
|
[InlineData("MyAlias", "MYALIAS", false)]
|
|
public void GetHashCode_WithTargetAlias(string left, string right, bool expected)
|
|
{
|
|
var leftSide = new LockFileTarget()
|
|
{
|
|
TargetAlias = left
|
|
};
|
|
|
|
var rightSide = new LockFileTarget()
|
|
{
|
|
TargetAlias = right
|
|
};
|
|
|
|
// Act & Assert
|
|
if (expected)
|
|
{
|
|
leftSide.GetHashCode().Should().Be(rightSide.GetHashCode());
|
|
}
|
|
else
|
|
{
|
|
leftSide.GetHashCode().Should().NotBe(rightSide.GetHashCode());
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void TargetAlias_SetAndGet_ShouldReturnCorrectValue()
|
|
{
|
|
var target = new LockFileTarget();
|
|
string expectedAlias = "my-custom-alias";
|
|
|
|
// Act
|
|
target.TargetAlias = expectedAlias;
|
|
|
|
// Assert
|
|
target.TargetAlias.Should().Be(expectedAlias);
|
|
}
|
|
|
|
[Theory]
|
|
[InlineData("project", "project", true)]
|
|
[InlineData("project", "package", false)]
|
|
[InlineData("project;project2", "project2;project", true)]
|
|
[InlineData("project;project2", "project;project2;project3", false)]
|
|
public void Equals_WithLockFileTargetLibraries(string left, string right, bool expected)
|
|
{
|
|
var leftSide = new LockFileTarget()
|
|
{
|
|
Libraries = left.Split(';').Select(e => new LockFileTargetLibrary() { Name = e }).ToList()
|
|
};
|
|
|
|
var rightSide = new LockFileTarget()
|
|
{
|
|
Libraries = right.Split(';').Select(e => new LockFileTargetLibrary() { Name = e }).ToList()
|
|
};
|
|
|
|
// Act & Assert
|
|
if (expected)
|
|
{
|
|
leftSide.Should().Be(rightSide);
|
|
}
|
|
else
|
|
{
|
|
leftSide.Should().NotBe(rightSide);
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_WithAllPropertiesSet_IncludingTargetAlias_ShouldBeEqual()
|
|
{
|
|
var leftSide = new LockFileTarget()
|
|
{
|
|
TargetFramework = NuGetFramework.Parse("net6.0"),
|
|
RuntimeIdentifier = "win-x64",
|
|
TargetAlias = "net6.0-windows",
|
|
Libraries = new List<LockFileTargetLibrary>
|
|
{
|
|
new LockFileTargetLibrary() { Name = "TestPackage" }
|
|
}
|
|
};
|
|
|
|
var rightSide = new LockFileTarget()
|
|
{
|
|
TargetFramework = NuGetFramework.Parse("net6.0"),
|
|
RuntimeIdentifier = "win-x64",
|
|
TargetAlias = "net6.0-windows",
|
|
Libraries = new List<LockFileTargetLibrary>
|
|
{
|
|
new LockFileTargetLibrary() { Name = "TestPackage" }
|
|
}
|
|
};
|
|
|
|
// Act & Assert
|
|
leftSide.Should().Be(rightSide);
|
|
}
|
|
|
|
[Fact]
|
|
public void Equals_WithOnlyTargetAliasDifferent_ShouldNotBeEqual()
|
|
{
|
|
var leftSide = new LockFileTarget()
|
|
{
|
|
TargetFramework = NuGetFramework.Parse("net6.0"),
|
|
RuntimeIdentifier = "win-x64",
|
|
TargetAlias = "net6.0-windows",
|
|
Libraries = new List<LockFileTargetLibrary>
|
|
{
|
|
new LockFileTargetLibrary() { Name = "TestPackage" }
|
|
}
|
|
};
|
|
|
|
var rightSide = new LockFileTarget()
|
|
{
|
|
TargetFramework = NuGetFramework.Parse("net6.0"),
|
|
RuntimeIdentifier = "win-x64",
|
|
TargetAlias = "net6.0-android", // Only this is different
|
|
Libraries = new List<LockFileTargetLibrary>
|
|
{
|
|
new LockFileTargetLibrary() { Name = "TestPackage" }
|
|
}
|
|
};
|
|
|
|
// Act & Assert
|
|
leftSide.Should().NotBe(rightSide);
|
|
}
|
|
}
|
|
}
|