From edf8f0fb4514983c73f103dfce84cd64337103eb Mon Sep 17 00:00:00 2001 From: Peter Yu Date: Fri, 5 May 2017 18:45:05 -0700 Subject: [PATCH] Add nullcheck and use TryParse. --- src/NuGetGallery.Core/SemVerLevelKey.cs | 14 ++++++++------ .../NuGetGallery.Core.Facts/SemVerLevelKeyFacts.cs | 1 + 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/NuGetGallery.Core/SemVerLevelKey.cs b/src/NuGetGallery.Core/SemVerLevelKey.cs index 8ba43aadf2..8010e0f76c 100644 --- a/src/NuGetGallery.Core/SemVerLevelKey.cs +++ b/src/NuGetGallery.Core/SemVerLevelKey.cs @@ -57,12 +57,14 @@ public static class SemVerLevelKey // Check the package dependencies for SemVer-compliance. // As soon as a SemVer2-compliant dependency version is found that is not SemVer1-compliant, // this package in itself is to be identified as to have SemVerLevelKey.SemVer2. - var dependencyVersionRange = VersionRange.Parse(dependency.VersionSpec); - - if ((dependencyVersionRange.MinVersion != null && dependencyVersionRange.MinVersion.IsSemVer2) - || (dependencyVersionRange.MaxVersion != null && dependencyVersionRange.MaxVersion.IsSemVer2)) + VersionRange dependencyVersionRange; + if (dependency.VersionSpec != null && VersionRange.TryParse(dependency.VersionSpec, out dependencyVersionRange)) { - return SemVer2; + if ((dependencyVersionRange.MinVersion != null && dependencyVersionRange.MinVersion.IsSemVer2) + || (dependencyVersionRange.MaxVersion != null && dependencyVersionRange.MaxVersion.IsSemVer2)) + { + return SemVer2; + } } } } @@ -98,7 +100,7 @@ public static class SemVerLevelKey return Unknown; } } - + /// /// Indicates whether the provided SemVer-level key is compliant with the provided SemVer-level version string. /// diff --git a/tests/NuGetGallery.Core.Facts/SemVerLevelKeyFacts.cs b/tests/NuGetGallery.Core.Facts/SemVerLevelKeyFacts.cs index 30256452bb..769673f81c 100644 --- a/tests/NuGetGallery.Core.Facts/SemVerLevelKeyFacts.cs +++ b/tests/NuGetGallery.Core.Facts/SemVerLevelKeyFacts.cs @@ -93,6 +93,7 @@ public void ReturnsSemVer2ForSemVer2CompliantDependenciesThatAreNotSemVer1Compli [InlineData("1.0.0-alpha")] [InlineData("[1.0-alpha, 2.0.0)")] [InlineData("[1.0, 2.0.0-alpha)")] + [InlineData(null)] public void ReturnsUnknownForNonSemVer2CompliantDependenciesThatAreNotSemVer1Compliant(string versionSpec) { // Arrange