public void Delegate_validation_to_check() { var check = Substitute.For <IValueCheck>(); var sut = new CheckValidationRule(check); // validation is true const string input = "foobar"; var cultureInfo = CultureInfo.InvariantCulture; check.Validate(input, input, cultureInfo).Returns(ValueCheckResult.Success); var result = sut.Validate(input, cultureInfo); result.IsValid.Should().BeTrue(); result.ErrorContent.Should().Be(string.Empty); // validation is false var error = new ValueCheckResult(false, new Exception("test")); check.Validate(input, input, cultureInfo).Returns(error); result = sut.Validate(input, cultureInfo); result.IsValid.Should().BeFalse(); result.ErrorContent.Should().Be(error.Exception.Message); var exception = new ArgumentException("test"); error = new ValueCheckResult(false, exception); check.Validate(input, input, cultureInfo).Returns(error); result = sut.Validate(input, cultureInfo); result.IsValid.Should().BeFalse(); result.ErrorContent.Should().Be(exception.Message); }
private void SetColor(ValueCheckResult result) { switch (result) { case ValueCheckResult.InvalidFormat: case ValueCheckResult.InvalidOutOfRange: case ValueCheckResult.InvalidUnknown: SetBackColor(Color.FromArgb(255, 230, 230)); break; case ValueCheckResult.Valid: RestoreBackColor(); break; } }
private void ShowTooltip(ValueCheckResult result) { if (result == ValueCheckResult.InvalidFormat) { ShowTooltip("Invalid Format", $"The value is formatted incorrectly for a {NbtUtil.TagTypeName(NbtTag.TagType).ToLower()}", TimeSpan.FromSeconds(2)); } else if (result == ValueCheckResult.InvalidOutOfRange) { var(min, max) = NbtUtil.MinMaxFor(NbtTag.TagType); ShowTooltip("Out of Range", $"The value for {NbtUtil.TagTypeName(NbtTag.TagType).ToLower()}s must be between {min} and {max}", TimeSpan.FromSeconds(4)); } else if (result == ValueCheckResult.InvalidUnknown) { ShowTooltip("Unknown Error", "There was an unknown error attempting to parse the value", TimeSpan.FromSeconds(2)); } }