Example #1
0
        public void ShouldFilterVersion()
        {
            var fakeIgnoreConfig = new TestIgnoreConfig(new ExcludeSourcesContainingExclude());
            var context          = new GitVersionContextBuilder().WithConfig(new Config
            {
                Ignore = fakeIgnoreConfig
            }).Build();
            var higherVersion = new BaseVersion(context, "exclude", false, new SemanticVersion(2), new MockCommit(), null);
            var lowerVersion  = new BaseVersion(context, "dummy", false, new SemanticVersion(1), new MockCommit(), null);

            var sp = ConfigureServices(services =>
            {
                services.RemoveAll <IVersionStrategy>();
                services.AddSingleton <IVersionStrategy>(new TestVersionStrategy(higherVersion, lowerVersion));
            });

            var versionCalculator = sp.GetService <IBaseVersionCalculator>();

            var baseVersion = versionCalculator.GetBaseVersion(context);

            baseVersion.Source.ShouldNotBe(higherVersion.Source);
            baseVersion.SemanticVersion.ShouldNotBe(higherVersion.SemanticVersion);
            baseVersion.Source.ShouldBe(lowerVersion.Source);
            baseVersion.SemanticVersion.ShouldBe(lowerVersion.SemanticVersion);
        }
Example #2
0
    private static void AssertMergeMessage(string message, string expectedVersion, IEnumerable <ICommit> parents, Config config = null)
    {
        var commit = GitToolsTestingExtensions.CreateMockCommit();

        commit.Message.Returns(message);
        commit.Parents.Returns(parents);

        var mockBranch = GitToolsTestingExtensions.CreateMockBranch(MainBranch, commit, GitToolsTestingExtensions.CreateMockCommit());

        var mockRepository = Substitute.For <IGitRepository>();

        mockRepository.Head.Returns(mockBranch);
        mockRepository.Commits.Returns(mockBranch.Commits);

        var contextBuilder = new GitVersionContextBuilder()
                             .WithConfig(config ?? new Config())
                             .WithRepository(mockRepository);

        contextBuilder.Build();
        var strategy = contextBuilder.ServicesProvider.GetServiceForType <IVersionStrategy, MergeMessageVersionStrategy>();

        var baseVersion = strategy.GetVersions().SingleOrDefault();

        if (expectedVersion == null)
        {
            baseVersion.ShouldBe(null);
        }
        else
        {
            baseVersion.ShouldNotBeNull();
            baseVersion.SemanticVersion.ToString().ShouldBe(expectedVersion);
        }
    }
Example #3
0
    public void ShouldNotAllowIncrementOfVersion()
    {
        // When a branch is merged in you want to start building stable packages of that version
        // So we shouldn't bump the version
        var mockCommit = GitToolsTestingExtensions.CreateMockCommit();

        mockCommit.Message.Returns("Merge branch 'release-0.1.5'");
        mockCommit.Parents.Returns(GetParents(true));

        var mockBranch = GitToolsTestingExtensions.CreateMockBranch(MainBranch, mockCommit);
        var branches   = Substitute.For <IBranchCollection>();

        branches.GetEnumerator().Returns(_ => ((IEnumerable <IBranch>) new[] { mockBranch }).GetEnumerator());

        var mockRepository = Substitute.For <IGitRepository>();

        mockRepository.Head.Returns(mockBranch);
        mockRepository.Branches.Returns(branches);
        mockRepository.Commits.Returns(mockBranch.Commits);

        var contextBuilder = new GitVersionContextBuilder().WithRepository(mockRepository);

        contextBuilder.Build();
        var strategy = contextBuilder.ServicesProvider.GetServiceForType <IVersionStrategy, MergeMessageVersionStrategy>();

        var baseVersion = strategy.GetVersions().Single();

        baseVersion.ShouldIncrement.ShouldBe(false);
    }
Example #4
0
    public void DoesNotIncrementWhenBaseVersionSaysNotTo()
    {
        var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData("ef7d0d7e1e700f1c7c9fa01ea6791bb778a5c37c", 1, MainBranch, "b1a34edbd80e141f7cc046c074f109be7d022074", "b1a34e", DateTimeOffset.Now, 0);

        var contextBuilder = new GitVersionContextBuilder();

        contextBuilder
        .OverrideServices(services =>
        {
            var testBaseVersionCalculator = new TestBaseVersionCalculator(false, new SemanticVersion(1), GitToolsTestingExtensions.CreateMockCommit());
            services.AddSingleton <IBaseVersionCalculator>(testBaseVersionCalculator);
            services.AddSingleton <IMainlineVersionCalculator>(new TestMainlineVersionCalculator(semanticVersionBuildMetaData));
        })
        .WithConfig(new Config())
        .Build();

        contextBuilder.ServicesProvider.ShouldNotBeNull();
        var nextVersionCalculator = contextBuilder.ServicesProvider.GetRequiredService <INextVersionCalculator>();

        nextVersionCalculator.ShouldNotBeNull();

        var version = nextVersionCalculator.FindVersion();

        version.ToString().ShouldBe("1.0.0");
    }
Example #5
0
        private void AssertMergeMessage(string message, string expectedVersion, IList <ICommit> parents, Config config = null)
        {
            var commit = new MockCommit
            {
                MessageEx = message,
                ParentsEx = parents
            };

            var contextBuilder = new GitVersionContextBuilder()
                                 .WithConfig(config ?? new Config())
                                 .WithRepository(new MockRepository
            {
                Head = new MockBranch("master")
                {
                    commit,
                    new MockCommit()
                }
            });

            contextBuilder.Build();
            var strategy = contextBuilder.ServicesProvider.GetServiceForType <IVersionStrategy, MergeMessageVersionStrategy>();

            var baseVersion = strategy.GetVersions().SingleOrDefault();

            if (expectedVersion == null)
            {
                baseVersion.ShouldBe(null);
            }
            else
            {
                baseVersion.ShouldNotBeNull();
                baseVersion.SemanticVersion.ToString().ShouldBe(expectedVersion);
            }
        }
        static void AssertMergeMessage(string message, string expectedVersion, List <Commit> parents, Config config = null)
        {
            var commit = new MockCommit
            {
                MessageEx = message,
                ParentsEx = parents
            };

            var context = new GitVersionContextBuilder()
                          .WithConfig(config ?? new Config())
                          .WithRepository(new MockRepository
            {
                Head = new MockBranch("master")
                {
                    commit,
                    new MockCommit()
                }
            })
                          .Build();
            var sut = new MergeMessageBaseVersionStrategy();

            var baseVersion = sut.GetVersions(context).SingleOrDefault();

            if (expectedVersion == null)
            {
                baseVersion.ShouldBe(null);
            }
            else
            {
                baseVersion.ShouldNotBeNull();
                baseVersion.SemanticVersion.ToString().ShouldBe(expectedVersion);
            }
        }
        public void ReturnsNullWhenNoNextVersionIsInConfig()
        {
            var contextBuilder = new GitVersionContextBuilder();
            var sut = new ConfigNextVersionBaseVersionStrategy();

            var baseVersion = sut.GetVersions(contextBuilder.Build()).SingleOrDefault();

            baseVersion.ShouldBe(null);
        }
Example #8
0
        public void ExcludeShouldAcceptVersionWithNullCommit()
        {
            var context = new GitVersionContextBuilder().Build();
            var version = new BaseVersion(context, "dummy", false, new SemanticVersion(1), null, string.Empty);
            var sut     = new ShaVersionFilter(new[] { "mismatched" });

            sut.Exclude(version, out var reason).ShouldBeFalse();
            reason.ShouldBeNull();
        }
        public void ReturnsNullWhenNoNextVersionIsInConfig()
        {
            var contextBuilder = new GitVersionContextBuilder();
            var sut            = new ConfigNextVersionBaseVersionStrategy();

            var baseVersion = sut.GetVersions(contextBuilder.Build()).SingleOrDefault();

            baseVersion.ShouldBe(null);
        }
Example #10
0
    private static IBaseVersionCalculator GetBaseVersionCalculator(Action <GitVersionContextBuilder> contextBuilderAction)
    {
        var contextBuilder = new GitVersionContextBuilder();

        contextBuilderAction.Invoke(contextBuilder);

        contextBuilder.Build();
        contextBuilder.ServicesProvider.ShouldNotBeNull();
        return(contextBuilder.ServicesProvider.GetRequiredService <IBaseVersionCalculator>());
    }
        public void ExcludeShouldAcceptVersionWithNullCommit()
        {
            var context = new GitVersionContextBuilder().Build();
            var version = new BaseVersion(context, "dummy", false, new SemanticVersion(1), null, string.Empty);
            var sut = new ShaVersionFilter(new[] { "mismatched" });

            string reason;
            sut.Exclude(version, out reason).ShouldBeFalse();
            reason.ShouldBeNull();
        }
        public void ExcludeShouldAcceptVersionWithNullCommit()
        {
            var context    = new GitVersionContextBuilder().Build();
            var version    = new BaseVersion(context, "dummy", false, new SemanticVersion(1), null, string.Empty);
            var futureDate = DateTimeOffset.UtcNow.AddYears(1);
            var sut        = new MinDateVersionFilter(futureDate);

            sut.Exclude(version, out var reason).ShouldBeFalse();
            reason.ShouldBeNull();
        }
Example #13
0
        public void WhenShaMismatchShouldNotExclude()
        {
            var commit  = new MockCommit();
            var context = new GitVersionContextBuilder().Build();
            var version = new BaseVersion(context, "dummy", false, new SemanticVersion(1), commit, string.Empty);
            var sut     = new ShaVersionFilter(new[] { "mismatched" });

            sut.Exclude(version, out var reason).ShouldBeFalse();
            reason.ShouldBeNull();
        }
Example #14
0
        public void WhenShaMatchShouldExcludeWithReason()
        {
            var commit  = new MockCommit();
            var context = new GitVersionContextBuilder().Build();
            var version = new BaseVersion(context, "dummy", false, new SemanticVersion(1), commit, string.Empty);
            var sut     = new ShaVersionFilter(new[] { commit.Sha });

            sut.Exclude(version, out var reason).ShouldBeTrue();
            reason.ShouldNotBeNullOrWhiteSpace();
        }
        public void WhenShaMatchShouldExcludeWithReason()
        {
            var commit = new MockCommit();
            var context = new GitVersionContextBuilder().Build();
            var version = new BaseVersion(context, "dummy", false, new SemanticVersion(1), commit, string.Empty);
            var sut = new ShaVersionFilter(new[] { commit.Sha });

            string reason;
            sut.Exclude(version, out reason).ShouldBeTrue();
            reason.ShouldNotBeNullOrWhiteSpace();
        }
        public void WhenShaMismatchShouldNotExclude()
        {
            var commit = new MockCommit();
            var context = new GitVersionContextBuilder().Build();
            var version = new BaseVersion(context, "dummy", false, new SemanticVersion(1), commit, string.Empty);
            var sut = new ShaVersionFilter(new[] { "mismatched" });

            string reason;
            sut.Exclude(version, out reason).ShouldBeFalse();
            reason.ShouldBeNull();
        }
        public void ExcludeShouldAcceptVersionWithNullCommit()
        {
            var context = new GitVersionContextBuilder().Build();
            var version = new BaseVersion(context, "dummy", false, new SemanticVersion(1), null, string.Empty);
            var futureDate = DateTimeOffset.UtcNow.AddYears(1);
            var sut = new MinDateVersionFilter(futureDate);

            string reason;
            sut.Exclude(version, out reason).ShouldBeFalse();
            reason.ShouldBeNull();
        }
        public void ShouldNotAllowVersionIncrementWhenTagComesFromCurrentCommit()
        {
            var context = new GitVersionContextBuilder()
                          .WithTaggedMaster()
                          .Build();
            var sut = new HighestTagBaseVersionStrategy();

            var baseVersion = sut.GetVersion(context);

            baseVersion.ShouldIncrement.ShouldBe(false);
        }
        public void ShouldNotAllowVersionIncrementWhenTagComesFromCurrentCommit()
        {
            var context = new GitVersionContextBuilder()
                .WithTaggedMaster()
                .Build();
            var sut = new HighestTagBaseVersionStrategy();

            var baseVersion = sut.GetVersion(context);

            baseVersion.ShouldIncrement.ShouldBe(false);
        }
        public void WhenCommitShouldExcludeWithReason()
        {
            var context    = new GitVersionContextBuilder().Build();
            var commit     = new MockCommit(); //when = UtcNow
            var version    = new BaseVersion(context, "dummy", false, new SemanticVersion(1), commit, string.Empty);
            var futureDate = DateTimeOffset.UtcNow.AddYears(1);
            var sut        = new MinDateVersionFilter(futureDate);

            sut.Exclude(version, out var reason).ShouldBeTrue();
            reason.ShouldNotBeNullOrWhiteSpace();
        }
        public void WhenShaMismatchShouldNotExclude()
        {
            var commit   = new MockCommit(); //when = UtcNow
            var context  = new GitVersionContextBuilder().Build();
            var version  = new BaseVersion(context, "dummy", false, new SemanticVersion(1), commit, string.Empty);
            var pastDate = DateTimeOffset.UtcNow.AddYears(-1);
            var sut      = new MinDateVersionFilter(pastDate);

            sut.Exclude(version, out var reason).ShouldBeFalse();
            reason.ShouldBeNull();
        }
        public void ShouldAllowVersionIncrement()
        {
            var context = new GitVersionContextBuilder()
                          .WithTaggedMaster()
                          .AddCommit()
                          .Build();
            var sut = new HighestTagBaseVersionStrategy();

            var baseVersion = sut.GetVersion(context);

            baseVersion.ShouldIncrement.ShouldBe(true);
        }
        public void DoesNotIncrementWhenBaseVersionSaysNotTo()
        {
            var baseCalculator = new TestBaseVersionCalculator(false, new SemanticVersion(1), new MockCommit());
            var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData("ef7d0d7e1e700f1c7c9fa01ea6791bb778a5c37c", 1, "master", "b1a34edbd80e141f7cc046c074f109be7d022074", "b1a34e", DateTimeOffset.Now);
            var sut     = new NextVersionCalculator(baseCalculator, new TestMetaDataCalculator(semanticVersionBuildMetaData));
            var config  = new Config();
            var context = new GitVersionContextBuilder().WithConfig(config).Build();

            var version = sut.FindVersion(context);

            version.ToString().ShouldBe("1.0.0");
        }
        public void WhenCommitShouldExcludeWithReason()
        {
            var context = new GitVersionContextBuilder().Build();
            var commit = new MockCommit(); //when = UtcNow
            var version = new BaseVersion(context, "dummy", false, new SemanticVersion(1), commit, string.Empty);
            var futureDate = DateTimeOffset.UtcNow.AddYears(1);
            var sut = new MinDateVersionFilter(futureDate);

            string reason;
            sut.Exclude(version, out reason).ShouldBeTrue();
            reason.ShouldNotBeNullOrWhiteSpace();
        }
        public void WhenShaMismatchShouldNotExclude()
        {
            var commit = new MockCommit(); //when = UtcNow
            var context = new GitVersionContextBuilder().Build();
            var version = new BaseVersion(context, "dummy", false, new SemanticVersion(1), commit, string.Empty);
            var pastDate = DateTimeOffset.UtcNow.AddYears(-1);
            var sut = new MinDateVersionFilter(pastDate);

            string reason;
            sut.Exclude(version, out reason).ShouldBeFalse();
            reason.ShouldBeNull();
        }
        public void DoesNotIncrementWhenBaseVersionSaysNotTo()
        {
            var baseCalculator = new TestBaseVersionCalculator(false, new SemanticVersion(1), new MockCommit());
            var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData(1, "master", "b1a34e", DateTimeOffset.Now);
            var sut = new NextVersionCalculator(baseCalculator, new TestMetaDataCalculator(semanticVersionBuildMetaData));
            var config = new Config();
            var context = new GitVersionContextBuilder().WithConfig(config).Build();

            var version = sut.FindVersion(context);

            version.ToString().ShouldBe("1.0.0");
        }
        public void ShouldAllowVersionIncrement()
        {
            var context = new GitVersionContextBuilder()
                .WithTaggedMaster()
                .AddCommit()
                .Build();
            var sut = new HighestTagBaseVersionStrategy();

            var baseVersion = sut.GetVersion(context);

            baseVersion.ShouldIncrement.ShouldBe(true);
        }
        public void ChoosesHighestVersionReturnedFromStrategies()
        {
            var context = new GitVersionContextBuilder().Build();
            var dateTimeOffset = DateTimeOffset.Now;
            var sut = new BaseVersionCalculator(new V1Strategy(DateTimeOffset.Now), new V2Strategy(dateTimeOffset));

            var baseVersion = sut.GetBaseVersion(context);

            baseVersion.SemanticVersion.ToString().ShouldBe("2.0.0");
            baseVersion.ShouldIncrement.ShouldBe(true);
            baseVersion.BaseVersionSource.When().ShouldBe(dateTimeOffset);
        }
Example #29
0
        public void DoesNotIncrementWhenBaseVersionSaysNotTo()
        {
            var baseCalculator = new TestBaseVersionCalculator(false, new SemanticVersion(1), new MockCommit());
            var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData(1, "master", "b1a34e", DateTimeOffset.Now);
            var sut     = new NextVersionCalculator(baseCalculator, new TestMetaDataCalculator(semanticVersionBuildMetaData));
            var config  = new Config();
            var context = new GitVersionContextBuilder().WithConfig(config).Build();

            var version = sut.FindVersion(context);

            version.ToString().ShouldBe("1.0.0");
        }
        public void UsesWhenFromNextBestMatchIfHighestDoesntHaveWhenReversedOrder()
        {
            var context = new GitVersionContextBuilder().Build();
            var when = DateTimeOffset.Now;
            var sut = new BaseVersionCalculator(new V1Strategy(null), new V2Strategy(when));

            var baseVersion = sut.GetBaseVersion(context);

            baseVersion.SemanticVersion.ToString().ShouldBe("2.0.0");
            baseVersion.ShouldIncrement.ShouldBe(true);
            baseVersion.BaseVersionSource.When().ShouldBe(when);
        }
        public void ShouldIncrementVersionBasedOnConfig()
        {
            var baseCalculator = new TestBaseVersionCalculator(true, new SemanticVersion(1), new MockCommit());
            var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData(1, "master", "b1a34edbd80e141f7cc046c074f109be7d022074", "b1a34e", DateTimeOffset.Now);
            var sut     = new NextVersionCalculator(baseCalculator, new TestMetaDataCalculator(semanticVersionBuildMetaData));
            var config  = new Config();
            var context = new GitVersionContextBuilder().WithConfig(config).Build();

            var version = sut.FindVersion(context);

            version.ToString().ShouldBe("1.0.1");
        }
Example #32
0
        public void ChoosesHighestVersionReturnedFromStrategies()
        {
            var context        = new GitVersionContextBuilder().Build();
            var dateTimeOffset = DateTimeOffset.Now;
            var sut            = new BaseVersionCalculator(log, new V1Strategy(DateTimeOffset.Now), new V2Strategy(dateTimeOffset));

            var baseVersion = sut.GetBaseVersion(context);

            baseVersion.SemanticVersion.ToString().ShouldBe("2.0.0");
            baseVersion.ShouldIncrement.ShouldBe(true);
            baseVersion.BaseVersionSource.When().ShouldBe(dateTimeOffset);
        }
Example #33
0
        public void UsesWhenFromNextBestMatchIfHighestDoesntHaveWhenReversedOrder()
        {
            var context = new GitVersionContextBuilder().Build();
            var when    = DateTimeOffset.Now;
            var sut     = new BaseVersionCalculator(log, new V1Strategy(null), new V2Strategy(when));

            var baseVersion = sut.GetBaseVersion(context);

            baseVersion.SemanticVersion.ToString().ShouldBe("2.0.0");
            baseVersion.ShouldIncrement.ShouldBe(true);
            baseVersion.BaseVersionSource.When().ShouldBe(when);
        }
        public void NextVersionCanHaveEnormousMinorVersion()
        {
            var contextBuilder = new GitVersionContextBuilder()
                                 .WithConfig(new Config
            {
                NextVersion = "2.118998723"
            });
            var sut = new ConfigNextVersionBaseVersionStrategy();

            var baseVersion = sut.GetVersions(contextBuilder.Build()).Single();

            baseVersion.SemanticVersion.ToString().ShouldBe("2.118998723.0");
        }
Example #35
0
        public void AppliesBranchPreReleaseTag()
        {
            var baseCalculator = new TestBaseVersionCalculator(false, new SemanticVersion(1), new MockCommit());
            var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData(2, "develop", "b1a34e", DateTimeOffset.Now);
            var sut     = new NextVersionCalculator(baseCalculator, new TestMetaDataCalculator(semanticVersionBuildMetaData));
            var context = new GitVersionContextBuilder()
                          .WithDevelopBranch()
                          .Build();

            var version = sut.FindVersion(context);

            version.ToString("f").ShouldBe("1.0.0-alpha.1+2");
        }
        public void NextVersionCanHavePatch()
        {
            var contextBuilder = new GitVersionContextBuilder()
                                 .WithConfig(new Config
            {
                NextVersion = "2.12.654651698"
            });
            var sut = new ConfigNextVersionBaseVersionStrategy();

            var baseVersion = sut.GetVersions(contextBuilder.Build()).Single();

            baseVersion.SemanticVersion.ToString().ShouldBe("2.12.654651698");
        }
        public void AppliesBranchPreReleaseTag()
        {
            var baseCalculator = new TestBaseVersionCalculator(false, new SemanticVersion(1), new MockCommit());
            var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData(2, "develop", "b1a34e", DateTimeOffset.Now);
            var sut = new NextVersionCalculator(baseCalculator, new TestMetaDataCalculator(semanticVersionBuildMetaData));
            var context = new GitVersionContextBuilder()
                .WithDevelopBranch()
                .Build();

            var version = sut.FindVersion(context);

            version.ToString("f").ShouldBe("1.0.0-unstable.1+2");
        }
        public void NextVersionCanHavePatch()
        {
            var contextBuilder = new GitVersionContextBuilder()
                .WithConfig(new Config
                {
                    NextVersion = "2.12.654651698"
                });
            var sut = new ConfigNextVersionBaseVersionStrategy();

            var baseVersion = sut.GetVersions(contextBuilder.Build()).Single();

            baseVersion.SemanticVersion.ToString().ShouldBe("2.12.654651698");
        }
        public void AppliesBranchPreReleaseTag()
        {
            var baseCalculator = new TestBaseVersionCalculator(false, new SemanticVersion(1), new MockCommit());
            var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData("ef7d0d7e1e700f1c7c9fa01ea6791bb778a5c37c", 2, "develop", "b1a34edbd80e141f7cc046c074f109be7d022074", "b1a34e", DateTimeOffset.Now);
            var sut     = new NextVersionCalculator(baseCalculator, new TestMetaDataCalculator(semanticVersionBuildMetaData));
            var context = new GitVersionContextBuilder()
                          .WithDevelopBranch()
                          .Build();

            var version = sut.FindVersion(context);

            version.ToString("f").ShouldBe("1.0.0-alpha.1+2");
        }
        public void NextVersionCanBeInteger()
        {
            var contextBuilder = new GitVersionContextBuilder()
                                 .WithConfig(new Config
            {
                NextVersion = "2"
            });
            var sut = new ConfigNextVersionVersionStrategy();

            var baseVersion = sut.GetVersions(contextBuilder.Build()).Single();

            baseVersion.SemanticVersion.ToString().ShouldBe("2.0.0");
        }
        public void NextVersionCanHaveEnormousMinorVersion()
        {
            var contextBuilder = new GitVersionContextBuilder()
                .WithConfig(new Config
                {
                    NextVersion = "2.118998723"
                });
            var sut = new ConfigNextVersionBaseVersionStrategy();

            var baseVersion = sut.GetVersions(contextBuilder.Build()).Single();

            baseVersion.SemanticVersion.ToString().ShouldBe("2.118998723.0");
        }
        public void ShouldNotBeIncremented()
        {
            var contextBuilder = new GitVersionContextBuilder()
                .WithConfig(new Config
                {
                    NextVersion = "1.0.0"
                });
            var sut = new ConfigNextVersionBaseVersionStrategy();

            var baseVersion = sut.GetVersions(contextBuilder.Build()).Single();

            baseVersion.ShouldIncrement.ShouldBe(false);
            baseVersion.SemanticVersion.ToString().ShouldBe("1.0.0");
        }
        public void ShouldNotBeIncremented()
        {
            var contextBuilder = new GitVersionContextBuilder()
                                 .WithConfig(new Config
            {
                NextVersion = "1.0.0"
            });
            var sut = new ConfigNextVersionBaseVersionStrategy();

            var baseVersion = sut.GetVersions(contextBuilder.Build()).Single();

            baseVersion.ShouldIncrement.ShouldBe(false);
            baseVersion.SemanticVersion.ToString().ShouldBe("1.0.0");
        }
        private static BaseVersion GetBaseVersion(Config config = null)
        {
            var contextBuilder = new GitVersionContextBuilder();

            if (config != null)
            {
                contextBuilder = contextBuilder.WithConfig(config);
            }

            contextBuilder.Build();
            var strategy = contextBuilder.ServicesProvider.GetServiceForType <IVersionStrategy, ConfigNextVersionVersionStrategy>();

            return(strategy.GetVersions().SingleOrDefault());
        }
Example #45
0
        public void ShouldNotFilterVersion()
        {
            var fakeIgnoreConfig = new TestIgnoreConfig(new ExcludeSourcesContainingExclude());
            var context          = new GitVersionContextBuilder().WithConfig(new Config()
            {
                Ignore = fakeIgnoreConfig
            }).Build();
            var version = new BaseVersion(context, "dummy", false, new SemanticVersion(2), new MockCommit(), null);
            var sut     = new BaseVersionCalculator(log, new TestVersionStrategy(version));

            var baseVersion = sut.GetBaseVersion(context);

            baseVersion.Source.ShouldBe(version.Source);
            baseVersion.ShouldIncrement.ShouldBe(version.ShouldIncrement);
            baseVersion.SemanticVersion.ShouldBe(version.SemanticVersion);
        }
        public void DoesNotIncrementWhenBaseVersionSaysNotTo()
        {
            var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData("ef7d0d7e1e700f1c7c9fa01ea6791bb778a5c37c", 1, "master", "b1a34edbd80e141f7cc046c074f109be7d022074", "b1a34e", DateTimeOffset.Now);
            var sp = ConfigureServices(services =>
            {
                services.AddSingleton <IBaseVersionCalculator>(new TestBaseVersionCalculator(false, new SemanticVersion(1), new MockCommit()));
                services.AddSingleton <IMetaDataCalculator>(new TestMetaDataCalculator(semanticVersionBuildMetaData));
            });

            var nextVersionCalculator = sp.GetService <INextVersionCalculator>();

            var context = new GitVersionContextBuilder().WithConfig(new Config()).Build();

            var version = nextVersionCalculator.FindVersion(context);

            version.ToString().ShouldBe("1.0.0");
        }
        public void ShouldNotAllowIncrementOfVersion()
        {
            // When a branch is merged in you want to start building stable packages of that version
            // So we shouldn't bump the version
            var context = new GitVersionContextBuilder().WithRepository(new MockRepository
            {
                Head = new MockBranch("master") { new MockCommit
                {
                    MessageEx = "Merge branch 'hotfix-0.1.5'",
                    ParentsEx = GetParents(true)
                } }
            }).Build();
            var sut = new MergeMessageBaseVersionStrategy();

            var baseVersion = sut.GetVersions(context).Single();

            baseVersion.ShouldIncrement.ShouldBe(false);
        }
        public void PreReleaseTagCanUseBranchName()
        {
            var baseCalculator = new TestBaseVersionCalculator(false, new SemanticVersion(1), new MockCommit());
            var semanticVersionBuildMetaData = new SemanticVersionBuildMetaData(2, "develop", "b1a34e", DateTimeOffset.Now);
            var sut = new NextVersionCalculator(baseCalculator, new TestMetaDataCalculator(semanticVersionBuildMetaData));
            var config = new Config();
            config.Branches.Add("custom/", new BranchConfig
            {
                Tag = "useBranchName"
            });
            var context = new GitVersionContextBuilder()
                .WithConfig(config)
                .WithDevelopBranch()
                .AddBranch("custom/foo")
                .Build();

            var version = sut.FindVersion(context);

            version.ToString("f").ShouldBe("1.0.0-foo.1+2");
        }
        public void ShouldNotFilterVersion()
        {
            var fakeIgnoreConfig = new TestIgnoreConfig(new ExcludeSourcesContainingExclude());
            var context = new GitVersionContextBuilder().WithConfig(new Config() { Ignore = fakeIgnoreConfig }).Build();
            var version = new BaseVersion("dummy", false, new SemanticVersion(2), new MockCommit(), null);
            var sut = new BaseVersionCalculator(new TestVersionStrategy(version));

            var baseVersion = sut.GetBaseVersion(context);

            baseVersion.Source.ShouldBe(version.Source);
            baseVersion.ShouldIncrement.ShouldBe(version.ShouldIncrement);
            baseVersion.SemanticVersion.ShouldBe(version.SemanticVersion);
        }
        static void AssertMergeMessage(string message, string expectedVersion, List<Commit> parents)
        {
            var commit = new MockCommit
            {
                MessageEx = message,
                ParentsEx = parents
            };

            var context = new GitVersionContextBuilder()
                .WithRepository(new MockRepository
                {
                    Head = new MockBranch("master")
                    {
                        commit,
                        new MockCommit()
                    }
                })
                .Build();
            var sut = new MergeMessageBaseVersionStrategy();

            var baseVersion = sut.GetVersions(context).SingleOrDefault();

            if (expectedVersion == null)
            {
                baseVersion.ShouldBe(null);
            }
            else
            {
                baseVersion.SemanticVersion.ToString().ShouldBe(expectedVersion);
            }
        }