Adding Authors migration.
This commit is contained in:
parent
7a3bc96f75
commit
c364f27346
2 changed files with 58 additions and 7 deletions
|
@ -1,7 +1,9 @@
|
||||||
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||||
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using Microsoft.DotNet.Cli.Utils;
|
||||||
using Microsoft.DotNet.ProjectJsonMigration.Transforms;
|
using Microsoft.DotNet.ProjectJsonMigration.Transforms;
|
||||||
using Project = Microsoft.DotNet.Internal.ProjectModel.Project;
|
using Project = Microsoft.DotNet.Internal.ProjectModel.Project;
|
||||||
|
|
||||||
|
@ -22,7 +24,8 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules
|
||||||
CopyrightTransform,
|
CopyrightTransform,
|
||||||
TitleTransform,
|
TitleTransform,
|
||||||
LanguageTransform,
|
LanguageTransform,
|
||||||
VersionTransform
|
VersionTransform,
|
||||||
|
AuthorsTransform
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,23 +45,34 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Rules
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private AddPropertyTransform<Project> DescriptionTransform => new AddPropertyTransform<Project>("Description",
|
private AddPropertyTransform<Project> DescriptionTransform => new AddPropertyTransform<Project>(
|
||||||
|
"Description",
|
||||||
project => project.Description,
|
project => project.Description,
|
||||||
project => !string.IsNullOrEmpty(project.Description));
|
project => !string.IsNullOrEmpty(project.Description));
|
||||||
|
|
||||||
private AddPropertyTransform<Project> CopyrightTransform => new AddPropertyTransform<Project>("Copyright",
|
private AddPropertyTransform<Project> CopyrightTransform => new AddPropertyTransform<Project>(
|
||||||
|
"Copyright",
|
||||||
project => project.Copyright,
|
project => project.Copyright,
|
||||||
project => !string.IsNullOrEmpty(project.Copyright));
|
project => !string.IsNullOrEmpty(project.Copyright));
|
||||||
|
|
||||||
private AddPropertyTransform<Project> TitleTransform => new AddPropertyTransform<Project>("AssemblyTitle",
|
private AddPropertyTransform<Project> TitleTransform => new AddPropertyTransform<Project>(
|
||||||
|
"AssemblyTitle",
|
||||||
project => project.Title,
|
project => project.Title,
|
||||||
project => !string.IsNullOrEmpty(project.Title));
|
project => !string.IsNullOrEmpty(project.Title));
|
||||||
|
|
||||||
private AddPropertyTransform<Project> LanguageTransform => new AddPropertyTransform<Project>("NeutralLanguage",
|
private AddPropertyTransform<Project> LanguageTransform => new AddPropertyTransform<Project>(
|
||||||
|
"NeutralLanguage",
|
||||||
project => project.Language,
|
project => project.Language,
|
||||||
project => !string.IsNullOrEmpty(project.Language));
|
project => !string.IsNullOrEmpty(project.Language));
|
||||||
|
|
||||||
private AddPropertyTransform<Project> VersionTransform => new AddPropertyTransform<Project>("VersionPrefix",
|
private AddPropertyTransform<Project> VersionTransform => new AddPropertyTransform<Project>(
|
||||||
project => project.Version.ToString(), p => true);
|
"VersionPrefix",
|
||||||
|
project => project.Version.ToString(),
|
||||||
|
p => true);
|
||||||
|
|
||||||
|
private AddPropertyTransform<Project> AuthorsTransform => new AddPropertyTransform<Project>(
|
||||||
|
"Authors",
|
||||||
|
project => string.Join(";", project.Authors),
|
||||||
|
project => project.Authors.OrEmptyIfNull().Any());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
// Copyright (c) .NET Foundation and contributors. All rights reserved.
|
||||||
|
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
||||||
|
|
||||||
|
using System.Linq;
|
||||||
|
using Microsoft.Build.Construction;
|
||||||
|
using Microsoft.DotNet.Tools.Test.Utilities;
|
||||||
|
using FluentAssertions;
|
||||||
|
using Microsoft.DotNet.ProjectJsonMigration.Rules;
|
||||||
|
using Xunit;
|
||||||
|
|
||||||
|
namespace Microsoft.DotNet.ProjectJsonMigration.Tests
|
||||||
|
{
|
||||||
|
public class GivenThatIWantToMigrateRootOptions : TestBase
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void It_migrates_authors()
|
||||||
|
{
|
||||||
|
var mockProj = RunPropertiesRuleOnPj(@"
|
||||||
|
{
|
||||||
|
""authors"": [ ""Some author"", ""Some other author"" ]
|
||||||
|
}");
|
||||||
|
|
||||||
|
mockProj.Properties.Count(p => p.Name == "Authors").Should().Be(1);
|
||||||
|
mockProj.Properties.First(p => p.Name == "Authors").Value.Should().Be(
|
||||||
|
"Some author;Some other author");
|
||||||
|
}
|
||||||
|
|
||||||
|
private ProjectRootElement RunPropertiesRuleOnPj(string project, string testDirectory = null)
|
||||||
|
{
|
||||||
|
testDirectory = testDirectory ?? Temp.CreateDirectory().Path;
|
||||||
|
return TemporaryProjectFileRuleRunner.RunRules(new IMigrationRule[]
|
||||||
|
{
|
||||||
|
new MigrateRootOptionsRule()
|
||||||
|
}, project, testDirectory);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue