Merge pull request #4371 from brthor/brthor/typebuild
Fix Migration type:build
This commit is contained in:
commit
0a889b2feb
3 changed files with 130 additions and 4 deletions
|
@ -129,7 +129,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules
|
|||
itemGroup.Condition = condition;
|
||||
|
||||
foreach (var packageDependency in packageDependencies)
|
||||
{
|
||||
{
|
||||
MigrationTrace.Instance.WriteLine(packageDependency.Name);
|
||||
AddItemTransform<ProjectLibraryDependency> transform;
|
||||
|
||||
|
@ -140,7 +140,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules
|
|||
else
|
||||
{
|
||||
transform = PackageDependencyTransform();
|
||||
if (packageDependency.Type == LibraryDependencyType.Build)
|
||||
if (packageDependency.Type.Equals(LibraryDependencyType.Build))
|
||||
{
|
||||
transform = transform.WithMetadata("PrivateAssets", "All");
|
||||
}
|
||||
|
@ -163,11 +163,16 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules
|
|||
|
||||
private string ReadLibraryIncludeFlags(LibraryIncludeFlags includeFlags)
|
||||
{
|
||||
if ((includeFlags & LibraryIncludeFlags.All) == LibraryIncludeFlags.All)
|
||||
if ((includeFlags ^ LibraryIncludeFlags.All) == 0)
|
||||
{
|
||||
return "All";
|
||||
}
|
||||
|
||||
if ((includeFlags ^ LibraryIncludeFlags.None) == 0)
|
||||
{
|
||||
return "None";
|
||||
}
|
||||
|
||||
var flagString = "";
|
||||
var allFlagsAndNames = new List<Tuple<string, LibraryIncludeFlags>>
|
||||
{
|
||||
|
|
|
@ -885,7 +885,7 @@ namespace Microsoft.DotNet.ProjectModel
|
|||
}
|
||||
else
|
||||
{
|
||||
values = token.Value<string[]>();
|
||||
values = token.Values<string>();
|
||||
}
|
||||
result = values
|
||||
.SelectMany(value => value.Split(new[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries));
|
||||
|
|
|
@ -6,6 +6,7 @@ using Microsoft.DotNet.Tools.Test.Utilities;
|
|||
using System.Linq;
|
||||
using Xunit;
|
||||
using FluentAssertions;
|
||||
using Microsoft.DotNet.ProjectJsonMigration;
|
||||
using Microsoft.DotNet.ProjectJsonMigration.Rules;
|
||||
using System;
|
||||
|
||||
|
@ -27,6 +28,126 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Tests
|
|||
EmitsPackageReferences(mockProj, Tuple.Create("APackage", "1.0.0-preview", ""), Tuple.Create("BPackage", "1.0.0", ""));
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void It_migrates_type_build_to_PrivateAssets()
|
||||
{
|
||||
var mockProj = RunPackageDependenciesRuleOnPj(@"
|
||||
{
|
||||
""dependencies"": {
|
||||
""APackage"" : {
|
||||
""version"": ""1.0.0-preview"",
|
||||
""type"": ""build""
|
||||
}
|
||||
}
|
||||
}");
|
||||
|
||||
|
||||
var packageRef = mockProj.Items.First(i => i.Include == "APackage" && i.ItemType == "PackageReference");
|
||||
|
||||
var privateAssetsMetadata = packageRef.GetMetadataWithName("PrivateAssets");
|
||||
privateAssetsMetadata.Value.Should().NotBeNull();
|
||||
privateAssetsMetadata.Value.Should().Be("All");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void It_migrates_suppress_parent_array_to_PrivateAssets()
|
||||
{
|
||||
var mockProj = RunPackageDependenciesRuleOnPj(@"
|
||||
{
|
||||
""dependencies"": {
|
||||
""APackage"" : {
|
||||
""version"": ""1.0.0-preview"",
|
||||
""suppressParent"":[ ""runtime"", ""native"" ]
|
||||
}
|
||||
}
|
||||
}");
|
||||
var packageRef = mockProj.Items.First(i => i.Include == "APackage" && i.ItemType == "PackageReference");
|
||||
|
||||
var privateAssetsMetadata = packageRef.GetMetadataWithName("PrivateAssets");
|
||||
privateAssetsMetadata.Value.Should().NotBeNull();
|
||||
privateAssetsMetadata.Value.Should().Be("Native;Runtime");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void It_migrates_suppress_parent_string_to_PrivateAssets()
|
||||
{
|
||||
var mockProj = RunPackageDependenciesRuleOnPj(@"
|
||||
{
|
||||
""dependencies"": {
|
||||
""APackage"" : {
|
||||
""version"": ""1.0.0-preview"",
|
||||
""suppressParent"":""runtime""
|
||||
}
|
||||
}
|
||||
}");
|
||||
var packageRef = mockProj.Items.First(i => i.Include == "APackage" && i.ItemType == "PackageReference");
|
||||
|
||||
var privateAssetsMetadata = packageRef.GetMetadataWithName("PrivateAssets");
|
||||
privateAssetsMetadata.Value.Should().NotBeNull();
|
||||
privateAssetsMetadata.Value.Should().Be("Runtime");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void It_migrates_include_exclude_arrays_to_IncludeAssets()
|
||||
{
|
||||
var mockProj = RunPackageDependenciesRuleOnPj(@"
|
||||
{
|
||||
""dependencies"": {
|
||||
""APackage"" : {
|
||||
""version"": ""1.0.0-preview"",
|
||||
""include"": [ ""compile"", ""runtime"", ""native"" ],
|
||||
""exclude"": [ ""native"" ]
|
||||
}
|
||||
}
|
||||
}");
|
||||
var packageRef = mockProj.Items.First(i => i.Include == "APackage" && i.ItemType == "PackageReference");
|
||||
|
||||
var includeAssetsMetadata = packageRef.GetMetadataWithName("IncludeAssets");
|
||||
includeAssetsMetadata.Value.Should().NotBeNull();
|
||||
includeAssetsMetadata.Value.Should().Be("Compile;Runtime");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void It_migrates_include_string_to_IncludeAssets()
|
||||
{
|
||||
var mockProj = RunPackageDependenciesRuleOnPj(@"
|
||||
{
|
||||
""dependencies"": {
|
||||
""APackage"" : {
|
||||
""version"": ""1.0.0-preview"",
|
||||
""include"": ""compile"",
|
||||
""exclude"": ""runtime""
|
||||
}
|
||||
}
|
||||
}");
|
||||
var packageRef = mockProj.Items.First(i => i.Include == "APackage" && i.ItemType == "PackageReference");
|
||||
|
||||
var includeAssetsMetadata = packageRef.GetMetadataWithName("IncludeAssets");
|
||||
includeAssetsMetadata.Value.Should().NotBeNull();
|
||||
includeAssetsMetadata.Value.Should().Be("Compile");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void It_migrates_include_exclude_overlapping_strings_to_IncludeAssets()
|
||||
{
|
||||
var mockProj = RunPackageDependenciesRuleOnPj(@"
|
||||
{
|
||||
""dependencies"": {
|
||||
""APackage"" : {
|
||||
""version"": ""1.0.0-preview"",
|
||||
""include"": ""compile"",
|
||||
""exclude"": ""compile"",
|
||||
}
|
||||
}
|
||||
}");
|
||||
var packageRef = mockProj.Items.First(i => i.Include == "APackage" && i.ItemType == "PackageReference");
|
||||
|
||||
var includeAssetsMetadata = packageRef.GetMetadataWithName("IncludeAssets");
|
||||
includeAssetsMetadata.Value.Should().NotBeNull();
|
||||
includeAssetsMetadata.Value.Should().Be("None");
|
||||
}
|
||||
|
||||
|
||||
[Fact]
|
||||
public void It_migrates_Tools()
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue