public void VersionSatisfies_NullInput() { // Arrange var target = GetToolsService(); VersionSatisfiesInput input = null; // Act var output = target.VersionSatisfies(input); // Assert Assert.Same(input, output.Input); Assert.Equal(InputStatus.Missing, output.InputStatus); Assert.False(output.IsVersionRangeValid); Assert.False(output.IsVersionValid); Assert.Null(output.VersionRange); Assert.Null(output.Version); Assert.False(output.Satisfies); }
public void VersionSatisfies_Satisfies() { // Arrange var target = GetToolsService(); var input = new VersionSatisfiesInput { VersionRange = "(, 1.0.0]", Version = "1.0.0" }; // Act var output = target.VersionSatisfies(input); // Assert Assert.Same(input, output.Input); Assert.Equal(InputStatus.Valid, output.InputStatus); Assert.True(output.IsVersionRangeValid); Assert.True(output.IsVersionValid); Assert.Equal(GetVersionRangeNormalizedString(input.VersionRange), output.VersionRange.NormalizedString); Assert.Equal(GetVersionNormalizedString(input.Version), output.Version.NormalizedString); Assert.True(output.Satisfies); }
public void VersionSatisfies_MissingVersionRange() { // Arrange var target = GetToolsService(); var input = new VersionSatisfiesInput { VersionRange = null, Version = "2.0" }; // Act var output = target.VersionSatisfies(input); // Assert Assert.Same(input, output.Input); Assert.Equal(InputStatus.Missing, output.InputStatus); Assert.False(output.IsVersionRangeValid); Assert.True(output.IsVersionValid); Assert.Null(output.VersionRange); Assert.Equal(GetVersionNormalizedString(input.Version), output.Version.NormalizedString); Assert.False(output.Satisfies); }
public void VersionSatisfies_InvalidVersionRangeAndVersion() { // Arrange var target = GetToolsService(); var input = new VersionSatisfiesInput { VersionRange = "a", Version = "b" }; // Act var output = target.VersionSatisfies(input); // Assert Assert.Same(input, output.Input); Assert.Equal(InputStatus.Invalid, output.InputStatus); Assert.False(output.IsVersionRangeValid); Assert.False(output.IsVersionValid); Assert.Null(output.VersionRange); Assert.Null(output.Version); Assert.False(output.Satisfies); }
public async Task <IActionResult> VersionSatisfies([FromRoute] string nuGetVersion, [FromQuery] VersionSatisfiesInput input, CancellationToken token) { var redirect = GetVersionRedirect(); if (redirect != null) { return(redirect); } var toolsService = await _toolsFactory.GetServiceAsync(nuGetVersion, token); if (toolsService == null) { return(NotFound()); } var output = toolsService.VersionSatisfies(input); var versionedOutput = await GetSelectedVersionOutputAsync(toolsService, output, token); return(View(versionedOutput)); }
public VersionSatisfiesOutput VersionSatisfies(VersionSatisfiesInput input) { var output = new VersionSatisfiesOutput { InputStatus = InputStatus.Missing, Input = input, }; if (input == null) { return(output); } var versionRangeMissing = string.IsNullOrWhiteSpace(input.VersionRange); var versionMissing = string.IsNullOrWhiteSpace(input.Version); var versionRange = default(TVersionRange); if (!versionRangeMissing) { try { versionRange = _versionRangeLogic.Parse(input.VersionRange); output.VersionRange = versionRange; output.IsVersionRangeValid = true; } catch { output.IsVersionRangeValid = false; } } var version = default(TVersion); if (!versionMissing) { try { version = _versionLogic.Parse(input.Version); output.Version = version; output.IsVersionValid = true; } catch { output.IsVersionValid = false; } } if (!versionRangeMissing && !versionMissing) { if (output.IsVersionRangeValid && output.IsVersionValid) { output.InputStatus = InputStatus.Valid; output.Satisfies = _versionRangeLogic.Satisfies(versionRange, version); } else { output.InputStatus = InputStatus.Invalid; } } return(output); }