public void GrammarCanParseVersion() { NuGetv2 n; NuGetv2 f = NuGetv2.Grammar.NuGetv2Version.Parse("3.2.5-foo"); NuGetv2 f2 = NuGetv2.Grammar.NuGetv2Version.Parse("3.1.0.3-foo"); NuGetv2 f3 = NuGetv2.Grammar.NuGetv2Version.Parse("3.1.0.3-foo-bar"); NuGetv2 f4 = NuGetv2.Grammar.NuGetv2Version.Parse("3.1.0.3-foo-v1-20200911.23"); n = NuGetv2.Parse("3.2.5-foo"); Assert.Equal(n, NuGetv2.Grammar.NuGetv2Version.Parse("3.2.5-foo")); Assert.Equal(3, n.Version.Major); Assert.Equal(2, n.Version.Minor); Assert.Equal(5, n.Version.Build); Assert.Equal("foo", n.SpecialVersion); n = NuGetv2.Parse("1.2.3.4-foo-v1-20200911.23"); Assert.Equal(n, NuGetv2.Grammar.NuGetv2Version.Parse("1.2.3.4-foo-v1-20200911.23")); Assert.Equal(1, n.Version.Major); Assert.Equal(2, n.Version.Minor); Assert.Equal(3, n.Version.Build); Assert.Equal(3, n.Version.Build); Assert.Equal("foo-v1-20200911.23", n.SpecialVersion); n = NuGetv2.Grammar.NuGetv2Version.Parse("3.4.0199"); //Assert.Throws<ParseException>(() => NuGetv2.Grammar.NuGetv2Version.Parse("A.2.3")); //Assert.Throws<ParseException>(() => NuGetv2.Grammar.NuGetv2Version.Parse("3.2.3.X")); }
public override bool IsVulnerabilityVersionInPackageVersionRange(string vulnerability_version, string package_version) { string message = ""; bool r = NuGetv2.RangeIntersect(vulnerability_version, package_version, out message); if (!r && !string.IsNullOrEmpty(message)) { throw new Exception(message); } else { return(r); } }
public void GrammarCanParseVersion() { NuGetv2 f = NuGetv2.Grammar.NuGetv2Version.Parse("3.2.5-foo"); NuGetv2 f2 = NuGetv2.Grammar.NuGetv2Version.Parse("3.1.0.3-foo"); NuGetv2 n = NuGetv2.Parse("3.2.5-foo"); Assert.Equal(n, NuGetv2.Grammar.NuGetv2Version.Parse("3.2.5-foo")); Assert.Equal(n.Version.Major, 3); Assert.Equal(n.SpecialVersion, "foo"); Assert.Equal(n.Version.Minor, 2); Assert.Equal(n.Version.Build, 5); n = NuGetv2.Grammar.NuGetv2Version.Parse("3.4.0199"); //Assert.Throws<ParseException>(() => NuGetv2.Grammar.NuGetv2Version.Parse("A.2.3")); //Assert.Throws<ParseException>(() => NuGetv2.Grammar.NuGetv2Version.Parse("3.2.3.X")); }
public void CanCompare() { NuGetv2 v0 = new NuGetv2("0.7"); NuGetv2 v1 = new NuGetv2("2.3"); NuGetv2 v2 = new NuGetv2("2.4"); NuGetv2 v3 = new NuGetv2("2.4.4"); NuGetv2 v4 = new NuGetv2("3.3.3.4"); NuGetv2 v4b = new NuGetv2("3.3.3.5"); Assert.True(v2 > v1); Assert.True(v4b > v4); Assert.True(v4 < v4b); Assert.Equal(v0, NuGetv2.Parse("0.7.0")); Assert.True(v3 > v2); Assert.True(v1 < v4); Assert.True(v090b2 > v090a1); Assert.True(v090a1 < v090b2); }
public void CanRangeIntersect() { string e; Assert.True(NuGetv2.RangeIntersect("4.5.7", "(2.4, 6.1.3-alpha5]", out e)); Assert.False(NuGetv2.RangeIntersect("4.5.7", "(4.5.7, 6.1.3-alpha5]", out e)); Assert.True(NuGetv2.RangeIntersect("4.5.7", "[4.5.7, 6.1.3-alpha5]", out e)); Assert.True(NuGetv2.RangeIntersect("(5.5,]", "(2.4, 6.1.3-alpha5]", out e)); Assert.True(NuGetv2.RangeIntersect("(11, 11.9)", "(11, 11.3.0-beta7]", out e)); Assert.True(NuGetv2.RangeIntersect("(11, 13.3.0-beta7]", "12", out e)); Assert.False(NuGetv2.RangeIntersect("(11, 13.3.0-beta7]", "13.4", out e)); Assert.True(NuGetv2.RangeIntersect("3.4.0199", ">= 0.0.0", out e)); Assert.False(NuGetv2.RangeIntersect("1.3.0", ">=1.2.19 <1.2.24", out e)); Assert.False(NuGetv2.RangeIntersect("1.3.0", ">1.3.0-beta.1 <1.3.0-beta.14", out e)); Assert.True(NuGetv2.RangeIntersect("1.3.0", ">1.3.0-beta.14.4 <1.4.0-beta.2", out e)); Assert.True(NuGetv2.RangeIntersect("5.1", "4.4, 6.3,5.1", out e)); Assert.False(NuGetv2.RangeIntersect("5.1", "5.4,6.3, 5.0", out e)); }