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); }
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); }
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")); }
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); }
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); }
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); }