public void ConvertBack_InvalidStringToInt32_ThrowsException(object value, CultureInfo culture, int minimum, int maximum) { var uut = new Int32ToStringValueConverterAndValidationRule() { Minimum = minimum, Maximum = maximum }; var targetType = typeof(int); var parameter = (object)null; var result = Should.Throw<Exception>(() => { uut.ConvertBack(value, targetType, parameter, culture); }); result.ShouldSatisfyAnyCondition( () => result.ShouldSatisfyAllConditions( () => result.ShouldBeOfType<ArgumentException>(), () => (result as ArgumentException)?.ParamName.ShouldBe(nameof(value)), () => (result as ArgumentException)?.Message.ShouldContain(value?.ToString() ?? "null")), () => result.ShouldSatisfyAllConditions( () => result.ShouldBeOfType<ArgumentOutOfRangeException>(), () => (result as ArgumentOutOfRangeException)?.ParamName.ShouldBe(nameof(value)), () => (result as ArgumentOutOfRangeException)?.ActualValue.ShouldBe(value), () => (result as ArgumentOutOfRangeException)?.Message.ShouldContain(minimum.ToString()), () => (result as ArgumentOutOfRangeException)?.Message.ShouldContain(maximum.ToString()))); }
public void Maximum_Otherwise_SetsToGiven(int maximum) { var uut = new Int32ToStringValueConverterAndValidationRule() { Maximum = maximum }; uut.Maximum.ShouldBe(maximum); }
public void Validate_ValueIsNotValid_ReturnsIsValidFalse(object value, CultureInfo cultureInfo, int minimum, int maximum) { var uut = new Int32ToStringValueConverterAndValidationRule() { Minimum = minimum, Maximum = maximum }; uut.Validate(value, cultureInfo).IsValid.ShouldBeFalse(); }
public void ConvertBack_ValidStringToInt32_ReturnsExpected(object value, CultureInfo culture, int expectedResult, int minimum, int maximum) { var uut = new Int32ToStringValueConverterAndValidationRule() { Minimum = minimum, Maximum = maximum }; var targetType = typeof(int); var parameter = (object)null; uut.Convert(value, targetType, parameter, culture).ShouldBe(expectedResult); }
public void Convert_TargetTypeIsNull_ThrowsException() { var uut = new Int32ToStringValueConverterAndValidationRule(); var value = 0; var targetType = (Type)null; var parameter = (object)null; var culture = (CultureInfo)null; var result = Should.Throw<ArgumentNullException>(() => uut.Convert(value, targetType, parameter, culture)); result.ParamName.ShouldBe(nameof(targetType)); }
public void ConvertBack_ConversionIsInvalid_ThrowsException(object value, Type targetType) { var uut = new Int32ToStringValueConverterAndValidationRule(); var parameter = (object)null; var culture = (CultureInfo)null; var result = Should.Throw<NotSupportedException>(() => { uut.ConvertBack(value, targetType, parameter, culture); }); result.ShouldSatisfyAllConditions( () => result.Message.ShouldContain(value?.GetType().Name ?? "null"), () => result.Message.ShouldContain(targetType.Name)); }
public void Validate_ValueIsNotValid_ReturnsErrorContentAsExpected(object value, CultureInfo cultureInfo, int minimum, int maximum) { var uut = new Int32ToStringValueConverterAndValidationRule() { Minimum = minimum, Maximum = maximum }; var result = uut.Validate(value, cultureInfo).ErrorContent; result.ShouldSatisfyAllConditions( () => result.ShouldBeOfType<string>(), () => result.ShouldSatisfyAnyCondition( () => result.ShouldSatisfyAllConditions( () => (result as string)?.ShouldContain(minimum.ToString()), () => (result as string)?.ShouldContain(maximum.ToString())), () => (result as string)?.ShouldContain(value?.ToString() ?? "null"))); }
public void Maximum_GivenIsLessThanMinimum_ThrowsException() { var minimum = 0; var maximum = -1; var uut = new Int32ToStringValueConverterAndValidationRule() { Minimum = minimum }; var result = Should.Throw<PropertyValidationException>(() => { uut.Maximum = maximum; }); result.ShouldSatisfyAllConditions( () => result.PropertyName.ShouldBe(nameof(uut.Maximum)), () => result.InvalidValue.ShouldBe(maximum), () => result.Message.ShouldContain(nameof(uut.Minimum)), () => result.Message.ShouldContain(minimum.ToString())); }
public void ConvertBack_InvalidInt32ToString_ReturnsExpected(int value, CultureInfo culture, int minimum, int maximum) { var uut = new Int32ToStringValueConverterAndValidationRule() { Minimum = minimum, Maximum = maximum }; var targetType = typeof(string); var parameter = (object)null; var result = Should.Throw<ArgumentOutOfRangeException>(() => { uut.Convert(value, targetType, parameter, culture); }); result.ShouldSatisfyAllConditions( () => result.ParamName.ShouldBe(nameof(value)), () => result.ActualValue.ShouldBe(value), () => result.Message.ShouldContain(minimum.ToString()), () => result.Message.ShouldContain(maximum.ToString())); }
public void Maximum_ByDefault_IsMaxValue() { var uut = new Int32ToStringValueConverterAndValidationRule(); uut.Maximum.ShouldBe(int.MaxValue); }