private SemanticVersion IncrementVersion(VersionField incrementField, SemanticVersion semver)
        {
            switch (incrementField)
            {
            case VersionField.None:
                return(new SemanticVersion(semver));

            case VersionField.Major:
                return(new SemanticVersion(
                           major: semver.Major + 1,
                           minor: 0,
                           patch: 0,
                           preReleaseTag: semver.PreReleaseTag,
                           buildMetadata: semver.BuildMetadata));

            case VersionField.Minor:
                return(new SemanticVersion(
                           major: semver.Major,
                           minor: semver.Minor + 1,
                           patch: 0,
                           preReleaseTag: semver.PreReleaseTag,
                           buildMetadata: semver.BuildMetadata));

            case VersionField.Patch:
                return(new SemanticVersion(
                           major: semver.Major,
                           minor: semver.Minor,
                           patch: semver.Patch + 1,
                           preReleaseTag: semver.PreReleaseTag,
                           buildMetadata: semver.BuildMetadata));

            default:
                throw new ArgumentException(nameof(incrementField));
            }
        }
        public static IFormField NewVersionField()
        {
            var field = new VersionField(FieldType.Version)
            {
                IsVisible = false
            };

            return(field);
        }
Beispiel #3
0
        public EnumDescriptionCollection(VersionField field)
        {
            if (field.Values.Count == 0)
            {
                throw new ArgumentException(string.Format("Field type must be enumerated! you passed {0}", field.Name));
            }

            foreach (var item in field.Values)
            {
                Add(new EnumDescription(item.Value.Name, item.Value.Value, item.Value.Description));
            }
        }
Beispiel #4
0
        public SemanticVersion IncrementVersion(VersionField incrementStrategy)
        {
            var incremented = new SemanticVersion(this);

            if (!incremented.PreReleaseTag.HasTag())
            {
                switch (incrementStrategy)
                {
                case VersionField.None:
                    break;

                case VersionField.Major:
                    incremented.Major++;
                    incremented.Minor = 0;
                    incremented.Patch = 0;
                    break;

                case VersionField.Minor:
                    incremented.Minor++;
                    incremented.Patch = 0;
                    break;

                case VersionField.Patch:
                    incremented.Patch++;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            else
            {
                if (incremented.PreReleaseTag.Number != null)
                {
                    incremented.PreReleaseTag.Number = incremented.PreReleaseTag.Number;
                    incremented.PreReleaseTag.Number++;
                }
            }

            return(incremented);
        }
Beispiel #5
0
        public SemanticVersion IncrementVersion(VersionField incrementStrategy)
        {
            var incremented = new SemanticVersion(this);

            if (string.IsNullOrEmpty(incremented.PreReleaseTag))
            {
                switch (incrementStrategy)
                {
                case VersionField.None:
                    break;

                case VersionField.Major:
                    incremented.Major++;
                    incremented.Minor = 0;
                    incremented.Patch = 0;
                    break;

                case VersionField.Minor:
                    incremented.Minor++;
                    incremented.Patch = 0;
                    break;

                case VersionField.Patch:
                    incremented.Patch++;
                    break;

                default:
                    throw new ArgumentOutOfRangeException();
                }
            }
            else
            {
                throw new NotImplementedException();
            }

            return(incremented);
        }
Beispiel #6
0
        public void IncrementVersion_VersionFieldTest(string source, string expected, VersionField versionField)
        {
            var sourceVer   = SemanticVersion.Parse(source);
            var expectedVer = SemanticVersion.Parse(expected);

            var strategy  = new IncrementStrategy(versionField);
            var actualVer = strategy.IncrementVersion(sourceVer);

            Assert.That(actualVer, Is.EqualTo(expectedVer));
        }
 public IncrementStrategy(VersionField incrementField)
 {
     _incrementField = incrementField;
 }