public void ConvertBack_Otherwise_ReturnsExpected(bool value, bool expectedResult)
        {
            var parameter = (object)null;
            var culture   = (CultureInfo)null;

            var uut = new BooleanInversionValueConverter();

            uut.ConvertBack(value, typeof(bool), parameter, culture).ShouldBe(expectedResult);
        }
        public void ConvertBack_TargetTypeIsNull_ThrowsException()
        {
            var value      = false;
            var targetType = (Type)null;
            var parameter  = (object)null;
            var culture    = (CultureInfo)null;

            var uut = new BooleanInversionValueConverter();

            var result = Should.Throw <ArgumentNullException>(() =>
            {
                uut.ConvertBack(value, targetType, parameter, culture);
            });

            result.ParamName.ShouldBe(nameof(targetType));
        }
        public void ConvertBack_ConversionIsInvalid_ThrowsException(object value, Type targetType)
        {
            var parameter = (object)null;
            var culture   = (CultureInfo)null;

            var uut = new BooleanInversionValueConverter();

            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));
        }