diff --git a/MinVerTests.Packages/BuildMetadataWithMultiplePlusSigns.cs b/MinVerTests.Packages/BuildMetadataWithMultiplePlusSigns.cs new file mode 100644 index 00000000..93c1fcda --- /dev/null +++ b/MinVerTests.Packages/BuildMetadataWithMultiplePlusSigns.cs @@ -0,0 +1,34 @@ +using System.Reflection; +using System.Threading.Tasks; +using MinVerTests.Infra; +using Xunit; + +namespace MinVerTests.Packages +{ + public static class BuildMetadataWithMultiplePlusSigns + { + [Fact] + public static async Task IsUsed() + { + // arrange + var path = MethodBase.GetCurrentMethod().GetTestDirectory(); + await Sdk.CreateProject(path); + var envVars = ("MinVerVersionOverride".ToAltCase(), "2.3.4-alpha-x.5+build.6+7"); + + // act + // SemVer doesn't allow multiple plus signs, but MinVer doesn't care + string @out = null; + var exception = await Record.ExceptionAsync(async () => (_, @out) = await Sdk.BuildProject(path, envVars: envVars)); + if (exception != null) + { + @out = exception.Message; + } + + // assert + Assert.Contains("MinVer: [output] MinVerVersion=2.3.4-alpha-x.5+build.6+7", @out); + Assert.Contains("MinVer: [output] MinVerBuildMetadata=build.6+7", @out); + Assert.Contains("MinVer: [output] PackageVersion=2.3.4-alpha-x.5+build.6+7", @out); + Assert.Contains("MinVer: [output] Version=2.3.4-alpha-x.5+build.6+7", @out); + } + } +}