public RequireServerFactAttribute(string versionText = null, VersionComparison versionCompare = VersionComparison.EqualTo) { var skipText = new StringBuilder(); if (!BoltkitHelper.IsBoltkitAvailable()) { skipText.AppendLine(BoltkitHelper.TestRequireBoltkit); } if (!string.IsNullOrWhiteSpace(versionText)) { var version = ServerVersion.From(versionText); var availableVersion = ServerVersion.From(BoltkitHelper.ServerVersion()); var satisfy = false; switch (versionCompare) { case VersionComparison.LessThan: satisfy = availableVersion.CompareTo(version) < 0; break; case VersionComparison.LessThanOrEqualTo: satisfy = availableVersion.CompareTo(version) <= 0; break; case VersionComparison.EqualTo: satisfy = availableVersion.CompareTo(version) == 0; break; case VersionComparison.GreaterThanOrEqualTo: satisfy = availableVersion.CompareTo(version) >= 0; break; case VersionComparison.GreaterThan: satisfy = availableVersion.CompareTo(version) > 0; break; default: throw new ArgumentOutOfRangeException(nameof(versionCompare)); } if (!satisfy) { skipText.AppendLine( $"Test requires available server version {availableVersion} to be {versionCompare.ToString()} {version}."); } } Skip = skipText.ToString(); }
public static bool RequiredServerAvailable(string versionText, VersionComparison versionCompare, StringBuilder skipText) { var satisfy = true; if (!string.IsNullOrWhiteSpace(versionText)) { var version = ServerVersion.From(versionText); var availableVersion = ServerVersion.From(BoltkitHelper.ServerVersion()); switch (versionCompare) { case VersionComparison.LessThan: satisfy = availableVersion.CompareTo(version) < 0; break; case VersionComparison.LessThanOrEqualTo: satisfy = availableVersion.CompareTo(version) <= 0; break; case VersionComparison.EqualTo: satisfy = availableVersion.CompareTo(version) == 0; break; case VersionComparison.GreaterThanOrEqualTo: satisfy = availableVersion.CompareTo(version) >= 0; break; case VersionComparison.GreaterThan: satisfy = availableVersion.CompareTo(version) > 0; break; default: throw new ArgumentOutOfRangeException(nameof(versionCompare)); } if (!satisfy) { skipText.AppendLine( $"Test requires available server version {availableVersion} to be {versionCompare.ToString()} {version}."); } } return(satisfy); }