Exemplo n.º 1
0
        public async Task Run_does_not_add_any_versions_if_no_tag_patterns_are_specified()
        {
            // ARRANGE
            var tags = new GitTag[]
            {
                new GitTag("1.2.3-alpha", new GitId("01")),
                new GitTag("4.5.6", new GitId("02"))
            };

            var repoMock = new Mock <IGitRepository>(MockBehavior.Strict);

            repoMock.Setup(x => x.GetTags()).Returns(tags);

            var config = new ChangeLogConfiguration()
            {
                TagPatterns = Array.Empty <string>()
            };

            var sut = new LoadVersionsFromTagsTask(m_Logger, config, repoMock.Object);

            // ACT
            var changeLog = new ApplicationChangeLog();
            var result    = await sut.RunAsync(changeLog);

            // ASSERT
            Assert.NotNull(changeLog.Versions);
            Assert.Empty(changeLog.Versions);
            Assert.Equal(ChangeLogTaskResult.Skipped, result);
        }
Exemplo n.º 2
0
        public async Task Run_adds_versions_from_tags()
        {
            // ARRANGE
            var tags = new GitTag[]
            {
                new GitTag("1.2.3-alpha", new GitId("01")),
                new GitTag("4.5.6", new GitId("02"))
            };

            var repoMock = new Mock <IGitRepository>(MockBehavior.Strict);

            repoMock.Setup(x => x.GetTags()).Returns(tags);

            var sut = new LoadVersionsFromTagsTask(m_Logger, ChangeLogConfigurationLoader.GetDefaultConfiguration(), repoMock.Object);

            // ACT
            var changeLog = new ApplicationChangeLog();
            var result    = await sut.RunAsync(changeLog);

            // ASSERT
            Assert.All(
                tags,
                tag =>
            {
                var version = NuGetVersion.Parse(tag.Name);
                Assert.Contains(new VersionInfo(version, tag.Commit), changeLog.Versions);
            });
            Assert.Equal(ChangeLogTaskResult.Success, result);
        }
Exemplo n.º 3
0
        public async Task Task_fails_if_version_was_already_added_by_a_previous_task()
        {
            // ARRANGE
            var tags = new GitTag[]
            {
                new GitTag("1.2.3", new GitId("0123")),
            };

            var repoMock = new Mock <IGitRepository>(MockBehavior.Strict);

            repoMock.Setup(x => x.GetTags()).Returns(tags);

            var sut = new LoadVersionsFromTagsTask(m_Logger, ChangeLogConfigurationLoader.GetDefaultConfiguration(), repoMock.Object);

            var changeLog = new ApplicationChangeLog()
            {
                new SingleVersionChangeLog(new VersionInfo(NuGetVersion.Parse("1.2.3"), new GitId("4567")))
            };

            // ACT
            var result = await sut.RunAsync(changeLog);

            // ASSERT
            Assert.Equal(ChangeLogTaskResult.Error, result);
            Assert.DoesNotContain(changeLog.Versions, x => x.Version == NuGetVersion.Parse("1.2.3") && x.Commit == new GitId("0123"));
        }
Exemplo n.º 4
0
        public async Task Run_ignores_duplicate_versions_from_tags()
        {
            // ARRANGE
            var tags = new GitTag[]
            {
                new GitTag("v1.2.3", new GitId("0123")),
                new GitTag("4.5.6", new GitId("4567")),
                new GitTag("1.2.3", new GitId("8910"))
            };

            var repoMock = new Mock <IGitRepository>(MockBehavior.Strict);

            repoMock.Setup(x => x.GetTags()).Returns(tags);

            var sut = new LoadVersionsFromTagsTask(m_Logger, ChangeLogConfigurationLoader.GetDefaultConfiguration(), repoMock.Object);

            // ACT
            var changeLog = new ApplicationChangeLog();
            var result    = await sut.RunAsync(changeLog);

            // ASSERT
            Assert.Contains(changeLog.Versions, x => x.Version == NuGetVersion.Parse("1.2.3") && x.Commit == new GitId("0123"));
            Assert.DoesNotContain(changeLog.Versions, x => x.Version == NuGetVersion.Parse("1.2.3") && x.Commit == new GitId("8910"));
            Assert.Equal(ChangeLogTaskResult.Success, result);
        }
Exemplo n.º 5
0
        public async Task Run_correctly_gets_version_from_tag_name_using_default_configuration(string tagName, string version)
        {
            // ARRANGE
            var tags = new GitTag[]
            {
                new GitTag(tagName, new GitId("0123")),
            };

            var repoMock = new Mock <IGitRepository>(MockBehavior.Strict);

            repoMock.Setup(x => x.GetTags()).Returns(tags);

            var expectedVersion = SemanticVersion.Parse(version);

            var sut = new LoadVersionsFromTagsTask(m_Logger, ChangeLogConfigurationLoader.GetDefaultConfiguration(), repoMock.Object);

            // ACT
            var changeLog = new ApplicationChangeLog();
            var result    = await sut.RunAsync(changeLog);

            // ASSERT
            var versionInfo = Assert.Single(changeLog.Versions);

            Assert.Equal(expectedVersion, versionInfo.Version);
            Assert.Equal(ChangeLogTaskResult.Success, result);
        }
Exemplo n.º 6
0
        public async Task Run_ignores_tags_that_are_not_a_valid_version(string tagName)
        {
            // ARRANGE
            var tags = new GitTag[]
            {
                new GitTag(tagName, new GitId("01")),
            };

            var repoMock = new Mock <IGitRepository>(MockBehavior.Strict);

            repoMock.Setup(x => x.GetTags()).Returns(tags);

            var sut = new LoadVersionsFromTagsTask(m_Logger, ChangeLogConfigurationLoader.GetDefaultConfiguration(), repoMock.Object);

            // ACT
            var changeLog = new ApplicationChangeLog();
            var result    = await sut.RunAsync(changeLog);

            // ASSERT
            Assert.Empty(changeLog.Versions);
            Assert.Equal(ChangeLogTaskResult.Success, result);
        }