public static void ValidVersion(string version)
        {
            var attribute = new MigrationVersionAttribute(version);

            var expectedVersion = new Version(version);

            attribute.Version.Should().Be(expectedVersion);
            Action validate = () => attribute.Validate(typeof(MigrationVersionAttributeTests));

            validate.Should().NotThrow();
        }
        public static void InvalidVersion(string invalidVersion)
        {
            var attribute = new MigrationVersionAttribute(invalidVersion);

            Action getVersion = () =>
            {
                var _ = attribute.Version;
            };
            Action validate = () => attribute.Validate(typeof(MigrationVersionAttributeTests));

            getVersion.Should().Throw <ArgumentException>()
            .And.Message.Should().Be($"The specified version {invalidVersion.ToStringOrNull()} cannot be parsed.");
            validate.Should().Throw <MigrationException>()
            .And.Message.Should().Be($"The specified version {invalidVersion.ToStringOrNull()} of migration \"{typeof(MigrationVersionAttributeTests)}\" cannot be parsed.");
        }