public void TestThatDefaultReturnedWhenNoSpecificDefaultButImplicitDefaultsWanted()
        {
            var arg = CreateArg <int>();

            ArgumentUsageInfo.TryGetDefaultValue(arg, false, out object value).Should().BeTrue();
            value.Should().Be(default(int));
        }
        public void TestThatNonEdgeCaseDefaultIsReturned()
        {
            const string anyString = "Some default string";
            var          arg       = CreateArg <string>(defaultValue: anyString);

            ArgumentUsageInfo.TryGetDefaultValue(arg, false, out object value).Should().BeTrue();
            value.Should().Be(anyString);
        }
        public void TestThatDefaultNeverReturnedWhenItIsEmptyString()
        {
            var arg = CreateArg <string>(defaultValue: string.Empty);

            ArgumentUsageInfo.TryGetDefaultValue(arg, false, out object value).Should().BeFalse();
        }
        public void TestThatDefaultNeverReturnedWhenItIsFalse()
        {
            var arg = CreateArg <bool>();

            ArgumentUsageInfo.TryGetDefaultValue(arg, false, out object value).Should().BeFalse();
        }
        public void TestThatNoDefaultReturnedWhenNoSpecificDefaultAndOnlyExplicitDefaultsWanted()
        {
            var arg = CreateArg <int>();

            ArgumentUsageInfo.TryGetDefaultValue(arg, true, out object value).Should().BeFalse();
        }
        public void TestThatDefaultValueReturnsFalseForRequiredArgs()
        {
            var arg = CreateArg <int>(required: true, defaultValue: Any.PositiveInt());

            ArgumentUsageInfo.TryGetDefaultValue(arg, false, out object value).Should().BeFalse();
        }