static void DumpVersionInfo( CIBuildDescriptor buildInfo, ReleaseTagVersion t ) { var nugetV2Build = t.ToString( ReleaseTagFormat.NugetPackageV2, buildInfo ); int nugetV2BuildSNLen = SemVersion.Parse( nugetV2Build ).Prerelease.Length; Console.WriteLine( "{0}, CI = {1}, NuGet = {2}, NuGet CI = {3}, NugetV2Build.SpecialName.Length = {4}", t, t.ToString( ReleaseTagFormat.SemVer, buildInfo ), t.ToString( ReleaseTagFormat.NugetPackageV2 ), nugetV2Build, nugetV2BuildSNLen ); Assert.That( nugetV2BuildSNLen, Is.LessThanOrEqualTo( 20 ) ); }
public void CIBuildVersion_LastReleaseBased_are_correctely_ordered( string tag ) { ReleaseTagFormat formatV2 = ReleaseTagFormat.NugetPackageV2; var t = ReleaseTagVersion.TryParse( tag ); var v = SemVersion.Parse( t.ToString( ReleaseTagFormat.SemVer ), true ); var tNext = new ReleaseTagVersion( t.OrderedVersion + 1 ); var vNext = SemVersion.Parse( tNext.ToString( ReleaseTagFormat.SemVer ), true ); var tPrev = new ReleaseTagVersion( t.OrderedVersion - 1 ); var vPrev = SemVersion.Parse( tPrev.ToString( ReleaseTagFormat.SemVer ), true ); Assert.That( vPrev < v, "{0} < {1}", vPrev, v ); Assert.That( v < vNext, "{0} < {1}", v, vNext ); var sNuGet = t.ToString( formatV2 ); var sNuGetPrev = tPrev.ToString( formatV2 ); var sNuGetNext = tNext.ToString( formatV2 ); Assert.That( NuGetV2StringComparer.DefaultComparer.Compare( sNuGetPrev, sNuGet ) < 0, "{0} < {1}", sNuGetPrev, sNuGet ); Assert.That( NuGetV2StringComparer.DefaultComparer.Compare( sNuGet, sNuGetNext ) < 0, "{0} < {1}", sNuGet, sNuGetNext ); CIBuildDescriptor ci = new CIBuildDescriptor { BranchName = "dev", BuildIndex = 1 }; string sCI = t.ToString( ReleaseTagFormat.SemVer, ci ); SemVersion vCi = SemVersion.Parse( sCI, true ); Assert.That( v < vCi, "{0} < {1}", v, vCi ); Assert.That( vCi < vNext, "{0} < {1}", vCi, vNext ); var sNuGetCI = t.ToString( formatV2, ci ); Assert.That( NuGetV2StringComparer.DefaultComparer.Compare( sNuGet, sNuGetCI ) < 0, "{0} < {1}", sNuGet, sNuGetCI ); Assert.That( NuGetV2StringComparer.DefaultComparer.Compare( sNuGetCI, sNuGetNext ) < 0, "{0} < {1}", sNuGetCI, sNuGetNext ); string sCiNext = tNext.ToString( ReleaseTagFormat.SemVer, ci ); SemVersion vCiNext = SemVersion.Parse( sCiNext, true ); Assert.That( vCiNext > vCi, "{0} > {1}", vCiNext, vCi ); Assert.That( vCiNext > vNext, "{0} > {1}", vCiNext, vNext ); var sNuGetCINext = tNext.ToString( formatV2, ci ); Assert.That( NuGetV2StringComparer.DefaultComparer.Compare( sNuGetCINext, sNuGetCI ) > 0, "{0} > {1}", sNuGetCINext, sNuGetCI ); Assert.That( NuGetV2StringComparer.DefaultComparer.Compare( sNuGetCINext, sNuGetNext ) > 0, "{0} > {1}", sNuGetCINext, sNuGetNext ); string sCiPrev = tPrev.ToString( ReleaseTagFormat.SemVer, ci ); SemVersion vCiPrev = SemVersion.Parse( sCiPrev, true ); Assert.That( vCiPrev > vPrev, "{0} > {1}", vCiPrev, vPrev ); Assert.That( vCiPrev < v, "{0} < {1}", vCiPrev, v ); Assert.That( vCiPrev < vCiNext, "{0} < {1}", vCiPrev, vCiNext ); var sNuGetCIPrev = tPrev.ToString( formatV2, ci ); Assert.That( NuGetV2StringComparer.DefaultComparer.Compare( sNuGetCIPrev, sNuGetPrev ) > 0, "{0} > {1}", sNuGetCIPrev, sNuGetPrev ); Assert.That( NuGetV2StringComparer.DefaultComparer.Compare( sNuGetCIPrev, sNuGet ) < 0, "{0} < {1}", sNuGetCIPrev, sNuGet ); Assert.That( NuGetV2StringComparer.DefaultComparer.Compare( sNuGetCIPrev, sNuGetCINext ) < 0, "{0} < {1}", sNuGetCIPrev, sNuGetCINext ); }
static void DumpVersionInfo(CIBuildDescriptor buildInfo, ReleaseTagVersion t) { var nugetV2Build = t.ToString(ReleaseTagFormat.NugetPackageV2, buildInfo); int nugetV2BuildSNLen = SemVersion.Parse(nugetV2Build).Prerelease.Length; Console.WriteLine("{0}, CI = {1}, NuGet = {2}, NuGet CI = {3}, NugetV2Build.SpecialName.Length = {4}", t, t.ToString(ReleaseTagFormat.SemVer, buildInfo), t.ToString(ReleaseTagFormat.NugetPackageV2), nugetV2Build, nugetV2BuildSNLen ); Assert.That(nugetV2BuildSNLen, Is.LessThanOrEqualTo(20)); }
public void display_name_for_CI_build_and_check_20_characters_limit( string versions, int range ) { var buildInfo = new CIBuildDescriptor() { BranchName = "develop", BuildIndex = 21 }; foreach( var v in versions.Split( ',' ).Select( s => s.Trim() ) ) { ReleaseTagVersion t = ReleaseTagVersion.TryParse( v ); Console.WriteLine( t ); for( int i = -range; i <= range; ++i ) { var num = t.OrderedVersion + i; if( num > 0m && num <= ReleaseTagVersion.VeryLastVersion.OrderedVersion ) { ReleaseTagVersion tD = new ReleaseTagVersion( num ); DumpVersionInfo( buildInfo, tD ); } } } }
public void display_versions_and_CI_version( string version, string after ) { var buildInfo = new CIBuildDescriptor() { BranchName = "develop", BuildIndex = 15 }; ReleaseTagVersion v = ReleaseTagVersion.TryParse( version ); string vCI = v.ToString( ReleaseTagFormat.SemVer, buildInfo ); ReleaseTagVersion vNext = new ReleaseTagVersion( v.OrderedVersion + 1 ); Console.WriteLine( "Version = {0}, CI = {1}, Next = {2}", v, vCI, vNext ); var vSemVer = SemVersion.Parse( v.ToString( ReleaseTagFormat.SemVer ) ); var vCISemVer = SemVersion.Parse( vCI ); var vNextSemVer = SemVersion.Parse( vNext.ToString( ReleaseTagFormat.SemVer ) ); Assert.That( vSemVer < vCISemVer, "{0} < {1}", vSemVer, vCISemVer ); Assert.That( vCISemVer < vNextSemVer, "{0} < {1}", vCISemVer, vNextSemVer ); foreach( var vAfter in after.Split( ',' ).Select( s => SemVersion.Parse( s.Trim() )) ) { Assert.That( vAfter.CompareTo( vCISemVer ) > 0, "{0} > {1}", vAfter, vCISemVer ); } }
public void testing_cibuild_timebased() { var now = DateTime.UtcNow; var more = now.AddSeconds(1); { var sV = CIBuildDescriptor.CreateSemVerZeroTimed("develop", now); var v = SVersion.Parse(sV); v.AsCSVersion.Should().BeNull(); var vMore = SVersion.Parse(CIBuildDescriptor.CreateSemVerZeroTimed("develop", more)); vMore.Should().BeGreaterThan(v); } { var sV = CIBuildDescriptor.CreateShortFormZeroTimed("develop", now); var v = SVersion.Parse(sV); v.AsCSVersion.Should().BeNull(); var vMore = SVersion.Parse(CIBuildDescriptor.CreateShortFormZeroTimed("develop", more)); vMore.Should().BeGreaterThan(v); } }
public void display_name_for_CI_build_and_check_20_characters_limit(string versions, int range) { var buildInfo = new CIBuildDescriptor() { BranchName = "develop", BuildIndex = 21 }; foreach (var v in versions.Split(',').Select(s => s.Trim())) { ReleaseTagVersion t = ReleaseTagVersion.TryParse(v); Console.WriteLine(t); for (int i = -range; i <= range; ++i) { var num = t.OrderedVersion + i; if (num > 0m && num <= ReleaseTagVersion.VeryLastVersion.OrderedVersion) { ReleaseTagVersion tD = new ReleaseTagVersion(num); DumpVersionInfo(buildInfo, tD); } } } }
public void display_versions_and_CI_version(string version, string after) { var buildInfo = new CIBuildDescriptor() { BranchName = "develop", BuildIndex = 15 }; CSVersion v = CSVersion.TryParse(version); string vCI = v.ToString(CSVersionFormat.Normalized, buildInfo); CSVersion vNext = CSVersion.Create(v.OrderedVersion + 1); Console.WriteLine("Version = {0}, CI = {1}, Next = {2}", v, vCI, vNext); var vSemVer = SVersion.Parse(v.ToString(CSVersionFormat.Normalized)); var vCISemVer = SVersion.Parse(vCI); var vNextSemVer = SVersion.Parse(vNext.ToString(CSVersionFormat.Normalized)); Assert.That(vSemVer < vCISemVer, "{0} < {1}", vSemVer, vCISemVer); Assert.That(vCISemVer < vNextSemVer, "{0} < {1}", vCISemVer, vNextSemVer); foreach (var vAfter in after.Split(',').Select(s => SVersion.Parse(s.Trim()))) { Assert.That(vAfter.CompareTo(vCISemVer) > 0, "{0} > {1}", vAfter, vCISemVer); } }
public void CIBuildVersion_LastReleaseBased_are_correctely_ordered(string tag) { var t = CSVersion.TryParse(tag); var v = SVersion.Parse(t.ToString(CSVersionFormat.Normalized)); var tNext = CSVersion.Create(t.OrderedVersion + 1); var vNext = SVersion.Parse(tNext.ToString(CSVersionFormat.Normalized)); var tPrev = CSVersion.Create(t.OrderedVersion - 1); var vPrev = SVersion.Parse(tPrev.ToString(CSVersionFormat.Normalized)); void CheckLower(SVersion v1, SVersion v2) { Assert.That(v1 < v2, "{0} < {1}", v1, v2); Assert.That(v2 > v1, "{0} > {1}", v2, v1); SVersion v1low = SVersion.Parse(v1.ParsedText.ToLowerInvariant()); SVersion v2low = SVersion.Parse(v2.ParsedText.ToLowerInvariant()); Assert.That(v1low < v2low, "{0} < {1} (lowercase)", v1low, v2low); Assert.That(v2low > v1low, "{0} > {1} (lowercase)", v2low, v1low); SVersion v1up = SVersion.Parse(v1.ParsedText.ToUpperInvariant()); SVersion v2up = SVersion.Parse(v2.ParsedText.ToUpperInvariant()); Assert.That(v1up < v2up, "{0} < {1} (uppercase)", v1up, v2up); Assert.That(v2up > v1up, "{0} > {1} (uppercase)", v2up, v1up); } CheckLower(vPrev, v); CheckLower(v, vNext); var sNuGet = t.ToString(CSVersionFormat.NuGetPackage); var sNuGetPrev = tPrev.ToString(CSVersionFormat.NuGetPackage); var sNuGetNext = tNext.ToString(CSVersionFormat.NuGetPackage); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetPrev, sNuGet) < 0, "{0} < {1}", sNuGetPrev, sNuGet); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGet, sNuGetNext) < 0, "{0} < {1}", sNuGet, sNuGetNext); CIBuildDescriptor ci = new CIBuildDescriptor { BranchName = "dev", BuildIndex = 1 }; string sCI = t.ToString(CSVersionFormat.Normalized, ci); SVersion vCi = SVersion.Parse(sCI); CheckLower(v, vCi); CheckLower(vCi, vNext); var sNuGetCI = t.ToString(CSVersionFormat.NuGetPackage, ci); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGet, sNuGetCI) < 0, "{0} < {1}", sNuGet, sNuGetCI); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetCI, sNuGetNext) < 0, "{0} < {1}", sNuGetCI, sNuGetNext); string sCiNext = tNext.ToString(CSVersionFormat.Normalized, ci); SVersion vCiNext = SVersion.Parse(sCiNext); CheckLower(vCi, vCiNext); CheckLower(vNext, vCiNext); var sNuGetCINext = tNext.ToString(CSVersionFormat.NuGetPackage, ci); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetCINext, sNuGetCI) > 0, "{0} > {1}", sNuGetCINext, sNuGetCI); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetCINext, sNuGetNext) > 0, "{0} > {1}", sNuGetCINext, sNuGetNext); string sCiPrev = tPrev.ToString(CSVersionFormat.Normalized, ci); SVersion vCiPrev = SVersion.Parse(sCiPrev); CheckLower(vPrev, vCiPrev); CheckLower(vCiPrev, v); CheckLower(vCiPrev, vCiNext); var sNuGetCIPrev = tPrev.ToString(CSVersionFormat.NuGetPackage, ci); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetCIPrev, sNuGetPrev) > 0, "{0} > {1}", sNuGetCIPrev, sNuGetPrev); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetCIPrev, sNuGet) < 0, "{0} < {1}", sNuGetCIPrev, sNuGet); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetCIPrev, sNuGetCINext) < 0, "{0} < {1}", sNuGetCIPrev, sNuGetCINext); }
public void CIBuildVersion_LastReleaseBased_are_correctely_ordered(string tag) { ReleaseTagFormat formatV2 = ReleaseTagFormat.NugetPackageV2; var t = ReleaseTagVersion.TryParse(tag); var v = SemVersion.Parse(t.ToString(ReleaseTagFormat.SemVer), true); var tNext = new ReleaseTagVersion(t.OrderedVersion + 1); var vNext = SemVersion.Parse(tNext.ToString(ReleaseTagFormat.SemVer), true); var tPrev = new ReleaseTagVersion(t.OrderedVersion - 1); var vPrev = SemVersion.Parse(tPrev.ToString(ReleaseTagFormat.SemVer), true); Assert.That(vPrev < v, "{0} < {1}", vPrev, v); Assert.That(v < vNext, "{0} < {1}", v, vNext); var sNuGet = t.ToString(formatV2); var sNuGetPrev = tPrev.ToString(formatV2); var sNuGetNext = tNext.ToString(formatV2); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetPrev, sNuGet) < 0, "{0} < {1}", sNuGetPrev, sNuGet); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGet, sNuGetNext) < 0, "{0} < {1}", sNuGet, sNuGetNext); CIBuildDescriptor ci = new CIBuildDescriptor { BranchName = "dev", BuildIndex = 1 }; string sCI = t.ToString(ReleaseTagFormat.SemVer, ci); SemVersion vCi = SemVersion.Parse(sCI, true); Assert.That(v < vCi, "{0} < {1}", v, vCi); Assert.That(vCi < vNext, "{0} < {1}", vCi, vNext); var sNuGetCI = t.ToString(formatV2, ci); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGet, sNuGetCI) < 0, "{0} < {1}", sNuGet, sNuGetCI); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetCI, sNuGetNext) < 0, "{0} < {1}", sNuGetCI, sNuGetNext); string sCiNext = tNext.ToString(ReleaseTagFormat.SemVer, ci); SemVersion vCiNext = SemVersion.Parse(sCiNext, true); Assert.That(vCiNext > vCi, "{0} > {1}", vCiNext, vCi); Assert.That(vCiNext > vNext, "{0} > {1}", vCiNext, vNext); var sNuGetCINext = tNext.ToString(formatV2, ci); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetCINext, sNuGetCI) > 0, "{0} > {1}", sNuGetCINext, sNuGetCI); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetCINext, sNuGetNext) > 0, "{0} > {1}", sNuGetCINext, sNuGetNext); string sCiPrev = tPrev.ToString(ReleaseTagFormat.SemVer, ci); SemVersion vCiPrev = SemVersion.Parse(sCiPrev, true); Assert.That(vCiPrev > vPrev, "{0} > {1}", vCiPrev, vPrev); Assert.That(vCiPrev < v, "{0} < {1}", vCiPrev, v); Assert.That(vCiPrev < vCiNext, "{0} < {1}", vCiPrev, vCiNext); var sNuGetCIPrev = tPrev.ToString(formatV2, ci); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetCIPrev, sNuGetPrev) > 0, "{0} > {1}", sNuGetCIPrev, sNuGetPrev); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetCIPrev, sNuGet) < 0, "{0} < {1}", sNuGetCIPrev, sNuGet); Assert.That(NuGetV2StringComparer.DefaultComparer.Compare(sNuGetCIPrev, sNuGetCINext) < 0, "{0} < {1}", sNuGetCIPrev, sNuGetCINext); }