Add support for Migration defaults (#4242)
* Add support for sdk props/targets defaults to Migration. * fix the transform applicator * remove transform applicator dependency on insertion order for item merges * defaults constructor msbuild version change
This commit is contained in:
parent
6373cdde60
commit
ecbc45098d
28 changed files with 1251 additions and 302 deletions
|
@ -49,16 +49,13 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Tests
|
|||
}
|
||||
|
||||
[Fact]
|
||||
public void Migrating_empty_buildOptions_populates_only_AssemblyName_Compile_and_EmbeddedResource()
|
||||
public void Migrating_empty_buildOptions_populates_only_Compile_and_EmbeddedResource()
|
||||
{
|
||||
var mockProj = RunBuildOptionsRuleOnPj(@"
|
||||
{
|
||||
""buildOptions"": { }
|
||||
}");
|
||||
|
||||
mockProj.Properties.Count().Should().Be(1);
|
||||
mockProj.Properties.Any(p => !p.Name.Equals("AssemblyName", StringComparison.Ordinal)).Should().BeFalse();
|
||||
|
||||
mockProj.Items.Count().Should().Be(2);
|
||||
mockProj.Items.First(i => i.ItemType == "Compile").Include.Should().Be(@"**\*.cs");
|
||||
mockProj.Items.First(i => i.ItemType == "Compile").Exclude.Should().Be(@"bin\**;obj\**;**\*.xproj;packages\**");
|
||||
|
@ -346,20 +343,6 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Tests
|
|||
mockProj.Properties.First(p => p.Name == "DebugType").Value.Should().Be("foo");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Migrating_outputName_populates_AssemblyName()
|
||||
{
|
||||
var mockProj = RunBuildOptionsRuleOnPj(@"
|
||||
{
|
||||
""buildOptions"": {
|
||||
""outputName"": ""ARandomName""
|
||||
}
|
||||
}");
|
||||
|
||||
mockProj.Properties.Count(p => p.Name == "AssemblyName").Should().Be(1);
|
||||
mockProj.Properties.First(p => p.Name == "AssemblyName").Value.Should().Be("ARandomName");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Migrating_xmlDoc_populates_GenerateDocumentationFile()
|
||||
{
|
||||
|
|
|
@ -44,7 +44,7 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Tests
|
|||
item2.AddMetadata(metadata[1].MetadataName, metadata[1].GetMetadataValue(null));
|
||||
|
||||
var transformApplicator = new TransformApplicator();
|
||||
transformApplicator.Execute(new ProjectItemElement[] {item1, item2}, itemGroup, mergeExisting:true);
|
||||
transformApplicator.Execute(new ProjectItemElement[] {item1, item2}.Select(i => i), itemGroup, mergeExisting:true);
|
||||
|
||||
itemGroup.Items.Count.Should().Be(1);
|
||||
|
||||
|
@ -64,5 +64,26 @@ namespace Microsoft.DotNet.ProjectJsonMigration.Tests
|
|||
|
||||
foundMetadata.All(kv => kv.Value).Should().BeTrue();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void It_merges_Properties_value_split_by_semicolon_except_variables_when_mergeExisting_is_true()
|
||||
{
|
||||
var mockProj = ProjectRootElement.Create();
|
||||
var existingProperty = mockProj.AddProperty("property1","value1;$(Variable1);$(Variable2);value2");
|
||||
|
||||
var propertyGeneratorProject = ProjectRootElement.Create();
|
||||
var propertyToAdd = propertyGeneratorProject.AddProperty("property1", "$(Variable2);value1;value3;$(Variable3)");
|
||||
|
||||
var transformApplicator = new TransformApplicator();
|
||||
|
||||
transformApplicator.Execute(propertyToAdd, mockProj.AddPropertyGroup(), mergeExisting: true);
|
||||
|
||||
var outputProperties = mockProj.Properties.Where(p => p.Name == "property1");
|
||||
outputProperties.Should().HaveCount(2);
|
||||
|
||||
var mergedPropertyToAdd = outputProperties.Where(p => p.Value.Contains("value3")).First();
|
||||
|
||||
mergedPropertyToAdd.Value.Should().Be("$(Variable2);value3;$(Variable3)");
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue