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);
        }
Пример #2
0
        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;
            }
        }
Пример #3
0
 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));
     }
 }