@@ -580,11 +580,15 @@ public async Task BuildNumber_SetInCI(VersionOptions versionOptions, IReadOnlyDi
580580
581581 [ Theory ]
582582 [ PairwiseData ]
583- public async Task BuildNumber_VariousOptions ( bool isPublic , VersionOptions . CloudBuildNumberCommitWhere where , VersionOptions . CloudBuildNumberCommitWhen when , [ CombinatorialValues ( 0 , 1 , 2 ) ] int extraBuildMetadataCount )
583+ public async Task BuildNumber_VariousOptions ( bool isPublic , VersionOptions . CloudBuildNumberCommitWhere where , VersionOptions . CloudBuildNumberCommitWhen when , [ CombinatorialValues ( 0 , 1 , 2 ) ] int extraBuildMetadataCount , [ CombinatorialValues ( 1 , 2 ) ] int semVer )
584584 {
585585 var versionOptions = BuildNumberVersionOptionsBasis ;
586586 versionOptions . CloudBuild . BuildNumber . IncludeCommitId . Where = where ;
587587 versionOptions . CloudBuild . BuildNumber . IncludeCommitId . When = when ;
588+ versionOptions . NuGetPackageVersion = new VersionOptions . NuGetPackageVersionOptions
589+ {
590+ SemVer = semVer ,
591+ } ;
588592 this . WriteVersionFile ( versionOptions ) ;
589593 this . InitializeSourceControl ( ) ;
590594
@@ -841,6 +845,8 @@ private void AssertStandardProperties(VersionOptions versionOptions, BuildResult
841845 expectedBuildMetadata += "." + string . Join ( "." , additionalBuildMetadata ) ;
842846 }
843847
848+ string expectedBuildMetadataWithoutCommitId = additionalBuildMetadata . Any ( ) ? $ "+{ string . Join ( "." , additionalBuildMetadata ) } " : string . Empty ;
849+
844850 Assert . Equal ( $ "{ version } ", buildResult . AssemblyFileVersion ) ;
845851 Assert . Equal ( $ "{ idAsVersion . Major } .{ idAsVersion . Minor } .{ idAsVersion . Build } { versionOptions . Version . Prerelease } { expectedBuildMetadata } ", buildResult . AssemblyInformationalVersion ) ;
846852
@@ -861,10 +867,13 @@ private void AssertStandardProperties(VersionOptions versionOptions, BuildResult
861867 Assert . Equal ( expectedBuildMetadata , buildResult . SemVerBuildSuffix ) ;
862868
863869 // NuGet is now SemVer 2.0 and will pass additional build metadata if provided
864- bool semVer1 = ( versionOptions ? . NuGetPackageVersion ?? VersionOptions . NuGetPackageVersionOptions . DefaultInstance ) . SemVer == 1 ;
865- string pkgVersionSuffix = buildResult . PublicRelease
866- ? ( semVer1 ? string . Empty : expectedBuildMetadata )
867- : ( semVer1 ? $ "-g{ commitIdShort } " : $ "-g{ commitIdShort } { ( additionalBuildMetadata . Any ( ) ? "+" : string . Empty ) } { string . Join ( "." , additionalBuildMetadata ) } ") ;
870+ bool semVer2 = ( versionOptions ? . NuGetPackageVersion ?? VersionOptions . NuGetPackageVersionOptions . DefaultInstance ) . SemVer == 2 ;
871+ string pkgVersionSuffix = buildResult . PublicRelease ? string . Empty : $ "-g{ commitIdShort } ";
872+ if ( semVer2 )
873+ {
874+ pkgVersionSuffix += expectedBuildMetadataWithoutCommitId ;
875+ }
876+
868877 Assert . Equal ( $ "{ idAsVersion . Major } .{ idAsVersion . Minor } .{ idAsVersion . Build } { GetSemVerAppropriatePrereleaseTag ( versionOptions ) } { pkgVersionSuffix } ", buildResult . NuGetPackageVersion ) ;
869878
870879 var buildNumberOptions = versionOptions . CloudBuild ? . BuildNumber ?? new VersionOptions . CloudBuildNumberOptions ( ) ;
0 commit comments