Skip to content

Commit

Permalink
Add functionality to build with global properties (#59)
Browse files Browse the repository at this point in the history
  • Loading branch information
jeffkl authored Mar 4, 2021
1 parent 0ff2619 commit cb36aa6
Show file tree
Hide file tree
Showing 3 changed files with 238 additions and 19 deletions.
32 changes: 28 additions & 4 deletions src/MSBuildProjectCreator.UnitTests/BuildTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,15 +62,39 @@ public void BuildTargetOutputsTest()
item.Value.Items.Select(i => i.ItemSpec).ShouldBe(new[] { "E32099C7AF4E481885B624E5600C718A", "7F38E64414104C6182F492B535926187" });
}

[Fact]
public void BuildWithGlobalProperties()
{
Dictionary<string, string> globalProperties = new Dictionary<string, string>
{
["Property1"] = "D7BBABDFB2D142D3A75E0C1A33E33780",
};

ProjectCreator
.Create(Path.Combine(TestRootPath, "project1.proj"))
.Target("Build")
.TaskMessage("Value = $(Property1)", MessageImportance.High)
.TryBuild("Build", out bool resultWithoutGlobalProperties, out BuildOutput buildOutputWithoutGlobalProperties)
.TryBuild("Build", globalProperties, out bool resultWithGlobalProperties, out BuildOutput buildOutputWithGlobalProperties);

resultWithoutGlobalProperties.ShouldBeTrue();

buildOutputWithoutGlobalProperties.MessageEvents.High.ShouldHaveSingleItem(buildOutputWithoutGlobalProperties.GetConsoleLog()).Message.ShouldBe("Value = ", buildOutputWithoutGlobalProperties.GetConsoleLog());

resultWithGlobalProperties.ShouldBeTrue();

buildOutputWithGlobalProperties.MessageEvents.High.ShouldHaveSingleItem(buildOutputWithGlobalProperties.GetConsoleLog()).Message.ShouldBe("Value = D7BBABDFB2D142D3A75E0C1A33E33780", buildOutputWithGlobalProperties.GetConsoleLog());
}

[Fact]
public void CanRestoreAndBuild()
{
ProjectCreator.Create(
path: GetTempFileName(".csproj"))
.Target("Restore")
.TaskMessage("Restoring...", Framework.MessageImportance.High)
.TaskMessage("Restoring...", MessageImportance.High)
.Target("Build")
.TaskMessage("Building...", Framework.MessageImportance.High)
.TaskMessage("Building...", MessageImportance.High)
.Save()
.TryBuild(restore: true, "Build", out bool result, out BuildOutput buildOutput);

Expand Down Expand Up @@ -174,13 +198,13 @@ public void RestoreTargetCanBeRun()
ProjectCreator
.Create(Path.Combine(TestRootPath, "project1.proj"))
.Target("Restore")
.TaskMessage("312D2E6ABDDC4735B437A016CED1A68E", Framework.MessageImportance.High, condition: "'$(MSBuildRestoreSessionId)' != ''")
.TaskMessage("312D2E6ABDDC4735B437A016CED1A68E", MessageImportance.High, condition: "'$(MSBuildRestoreSessionId)' != ''")
.TaskError("MSBuildRestoreSessionId was not defined", condition: "'$(MSBuildRestoreSessionId)' == ''")
.TryRestore(out bool result, out BuildOutput buildOutput);

result.ShouldBeTrue(buildOutput.GetConsoleLog());

buildOutput.MessageEvents.High.ShouldContain(i => i.Message == "312D2E6ABDDC4735B437A016CED1A68E" && i.Importance == Framework.MessageImportance.High, buildOutput.GetConsoleLog());
buildOutput.MessageEvents.High.ShouldContain(i => i.Message == "312D2E6ABDDC4735B437A016CED1A68E" && i.Importance == MessageImportance.High, buildOutput.GetConsoleLog());
}
}
}
Loading

0 comments on commit cb36aa6

Please sign in to comment.