public void ConvertFromThrowsForInvalidSemVerStrings(string input)
        {
            var converter = new SemanticVersionConverter();
            var exception = Record.Exception(() => converter.ConvertFrom(input));

            Assert.IsType(typeof(ArgumentException), exception);
        }
        public void CannotConvertToTypesOtherThanString(Type destinationType)
        {
            var  converter  = new SemanticVersionConverter();
            bool canConvert = converter.CanConvertTo(destinationType);

            Assert.False(canConvert);
        }
        public void CanConvertToString()
        {
            var  converter  = new SemanticVersionConverter();
            bool canConvert = converter.CanConvertTo(typeof(string));

            Assert.True(canConvert);
        }
        public void CannotConvertFromTypesOtherThanString(Type sourceType)
        {
            var  converter  = new SemanticVersionConverter();
            bool canConvert = converter.CanConvertFrom(sourceType);

            Assert.False(canConvert);
        }
        public void ConvertFromConvertsValidSemVerStrings(string input)
        {
            var converter = new SemanticVersionConverter();
            var result    = converter.ConvertFrom(input);

            Assert.IsType(typeof(SemanticVersion), result);
            Assert.Equal(input, ((SemanticVersion)result).ToFullString());
        }
        public void ConvertToConvertsSemVerToString(string input)
        {
            var converter = new SemanticVersionConverter();
            var semVer    = SemanticVersion.Parse(input);
            var result    = converter.ConvertTo(semVer, typeof(string));

            Assert.Equal(input, result);
        }