diff --git a/.editorconfig b/.editorconfig index 1308025..0ac32aa 100644 --- a/.editorconfig +++ b/.editorconfig @@ -426,3 +426,11 @@ dotnet_diagnostic.RCS1102.severity = suggestion # RCS1213: Remove unused member declaration dotnet_diagnostic.RCS1213.severity = warning + +############################### +# Test Files +############################### +[*Tests.cs] + +# Disable async suffix requirement for test methods +dotnet_naming_rule.async_methods_should_end_with_async.severity = none diff --git a/Directory.Packages.props b/Directory.Packages.props index 5f2442b..49f58ad 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -1,5 +1,4 @@ - true @@ -19,8 +18,6 @@ - - + - - + \ No newline at end of file diff --git a/global.json b/global.json new file mode 100644 index 0000000..3140116 --- /dev/null +++ b/global.json @@ -0,0 +1,5 @@ +{ + "test": { + "runner": "Microsoft.Testing.Platform" + } +} diff --git a/tests/SimpleBranchVersioning.Tests/SimpleBranchVersioning.Tests.csproj b/tests/SimpleBranchVersioning.Tests/SimpleBranchVersioning.Tests.csproj index 9e26427..fe3a37d 100644 --- a/tests/SimpleBranchVersioning.Tests/SimpleBranchVersioning.Tests.csproj +++ b/tests/SimpleBranchVersioning.Tests/SimpleBranchVersioning.Tests.csproj @@ -7,11 +7,7 @@ - - - all - runtime; build; native; contentfiles; analyzers; buildtransitive - + diff --git a/tests/SimpleBranchVersioning.Tests/VersionCalculatorTests.cs b/tests/SimpleBranchVersioning.Tests/VersionCalculatorTests.cs index bc13213..9c876c7 100644 --- a/tests/SimpleBranchVersioning.Tests/VersionCalculatorTests.cs +++ b/tests/SimpleBranchVersioning.Tests/VersionCalculatorTests.cs @@ -1,111 +1,109 @@ -using Xunit; - namespace SimpleBranchVersioning.Tests; public class VersionCalculatorTests { - [Theory] - [InlineData("release/v1.2.3", "abc1234", "1.2.3", "1.2.3+abc1234", "1.2.3.0")] - [InlineData("release/1.2.3", "abc1234", "1.2.3", "1.2.3+abc1234", "1.2.3.0")] - [InlineData("release/v0.0.1", "def5678", "0.0.1", "0.0.1+def5678", "0.0.1.0")] - [InlineData("release/v10.20.30", "ghi9012", "10.20.30", "10.20.30+ghi9012", "10.20.30.0")] - public void Calculate_ReleaseBranch_ReturnsCorrectVersions( + [Test] + [Arguments("release/v1.2.3", "abc1234", "1.2.3", "1.2.3+abc1234", "1.2.3.0")] + [Arguments("release/1.2.3", "abc1234", "1.2.3", "1.2.3+abc1234", "1.2.3.0")] + [Arguments("release/v0.0.1", "def5678", "0.0.1", "0.0.1+def5678", "0.0.1.0")] + [Arguments("release/v10.20.30", "ghi9012", "10.20.30", "10.20.30+ghi9012", "10.20.30.0")] + public async Task Calculate_ReleaseBranch_ReturnsCorrectVersions( string branch, string commitId, string expectedVersion, string expectedPackageVersion, string expectedAssemblyVersion) { var result = VersionCalculator.Calculate(branch, commitId); - Assert.Equal(expectedVersion, result.Version); - Assert.Equal(expectedPackageVersion, result.PackageVersion); - Assert.Equal(expectedAssemblyVersion, result.AssemblyVersion); - Assert.Equal(expectedAssemblyVersion, result.FileVersion); - Assert.Equal(expectedPackageVersion, result.InformationalVersion); + await Assert.That(result.Version).IsEqualTo(expectedVersion); + await Assert.That(result.PackageVersion).IsEqualTo(expectedPackageVersion); + await Assert.That(result.AssemblyVersion).IsEqualTo(expectedAssemblyVersion); + await Assert.That(result.FileVersion).IsEqualTo(expectedAssemblyVersion); + await Assert.That(result.InformationalVersion).IsEqualTo(expectedPackageVersion); } - [Theory] - [InlineData("release/v1.2.3-beta", "abc1234", "1.2.3-beta", "1.2.3-beta+abc1234", "1.2.3-beta.0")] - [InlineData("release/v1.2.3-rc.1", "abc1234", "1.2.3-rc.1", "1.2.3-rc.1+abc1234", "1.2.3-rc.1.0")] - [InlineData("release/1.0.0-alpha", "def5678", "1.0.0-alpha", "1.0.0-alpha+def5678", "1.0.0-alpha.0")] - public void Calculate_ReleaseBranchWithPrerelease_ReturnsCorrectVersions( + [Test] + [Arguments("release/v1.2.3-beta", "abc1234", "1.2.3-beta", "1.2.3-beta+abc1234", "1.2.3-beta.0")] + [Arguments("release/v1.2.3-rc.1", "abc1234", "1.2.3-rc.1", "1.2.3-rc.1+abc1234", "1.2.3-rc.1.0")] + [Arguments("release/1.0.0-alpha", "def5678", "1.0.0-alpha", "1.0.0-alpha+def5678", "1.0.0-alpha.0")] + public async Task Calculate_ReleaseBranchWithPrerelease_ReturnsCorrectVersions( string branch, string commitId, string expectedVersion, string expectedPackageVersion, string expectedAssemblyVersion) { var result = VersionCalculator.Calculate(branch, commitId); - Assert.Equal(expectedVersion, result.Version); - Assert.Equal(expectedPackageVersion, result.PackageVersion); - Assert.Equal(expectedAssemblyVersion, result.AssemblyVersion); + await Assert.That(result.Version).IsEqualTo(expectedVersion); + await Assert.That(result.PackageVersion).IsEqualTo(expectedPackageVersion); + await Assert.That(result.AssemblyVersion).IsEqualTo(expectedAssemblyVersion); } - [Theory] - [InlineData("feature/login", "abc1234", "feature.login.abc1234", "0.0.0-feature.login+abc1234")] - [InlineData("feature/user-auth", "def5678", "feature.user-auth.def5678", "0.0.0-feature.user-auth+def5678")] - [InlineData("bugfix/issue-42", "ghi9012", "bugfix.issue-42.ghi9012", "0.0.0-bugfix.issue-42+ghi9012")] - [InlineData("hotfix/critical", "jkl3456", "hotfix.critical.jkl3456", "0.0.0-hotfix.critical+jkl3456")] - public void Calculate_FeatureOrBugfixBranch_ReturnsCorrectVersions( + [Test] + [Arguments("feature/login", "abc1234", "feature.login.abc1234", "0.0.0-feature.login+abc1234")] + [Arguments("feature/user-auth", "def5678", "feature.user-auth.def5678", "0.0.0-feature.user-auth+def5678")] + [Arguments("bugfix/issue-42", "ghi9012", "bugfix.issue-42.ghi9012", "0.0.0-bugfix.issue-42+ghi9012")] + [Arguments("hotfix/critical", "jkl3456", "hotfix.critical.jkl3456", "0.0.0-hotfix.critical+jkl3456")] + public async Task Calculate_FeatureOrBugfixBranch_ReturnsCorrectVersions( string branch, string commitId, string expectedVersion, string expectedPackageVersion) { var result = VersionCalculator.Calculate(branch, commitId); - Assert.Equal(expectedVersion, result.Version); - Assert.Equal(expectedPackageVersion, result.PackageVersion); - Assert.Equal("0.0.0.0", result.AssemblyVersion); - Assert.Equal("0.0.0.0", result.FileVersion); - Assert.Equal(expectedPackageVersion, result.InformationalVersion); + await Assert.That(result.Version).IsEqualTo(expectedVersion); + await Assert.That(result.PackageVersion).IsEqualTo(expectedPackageVersion); + await Assert.That(result.AssemblyVersion).IsEqualTo("0.0.0.0"); + await Assert.That(result.FileVersion).IsEqualTo("0.0.0.0"); + await Assert.That(result.InformationalVersion).IsEqualTo(expectedPackageVersion); } - [Theory] - [InlineData("main", "abc1234", "main.abc1234", "0.0.0-main+abc1234")] - [InlineData("master", "def5678", "master.def5678", "0.0.0-master+def5678")] - [InlineData("develop", "ghi9012", "develop.ghi9012", "0.0.0-develop+ghi9012")] - public void Calculate_MainBranch_ReturnsCorrectVersions( + [Test] + [Arguments("main", "abc1234", "main.abc1234", "0.0.0-main+abc1234")] + [Arguments("master", "def5678", "master.def5678", "0.0.0-master+def5678")] + [Arguments("develop", "ghi9012", "develop.ghi9012", "0.0.0-develop+ghi9012")] + public async Task Calculate_MainBranch_ReturnsCorrectVersions( string branch, string commitId, string expectedVersion, string expectedPackageVersion) { var result = VersionCalculator.Calculate(branch, commitId); - Assert.Equal(expectedVersion, result.Version); - Assert.Equal(expectedPackageVersion, result.PackageVersion); - Assert.Equal("0.0.0.0", result.AssemblyVersion); + await Assert.That(result.Version).IsEqualTo(expectedVersion); + await Assert.That(result.PackageVersion).IsEqualTo(expectedPackageVersion); + await Assert.That(result.AssemblyVersion).IsEqualTo("0.0.0.0"); } - [Theory] - [InlineData("user/john/feature", "abc1234", "user.john.feature.abc1234", "0.0.0-user.john.feature+abc1234")] - [InlineData("refs/heads/main", "def5678", "refs.heads.main.def5678", "0.0.0-refs.heads.main+def5678")] - public void Calculate_NestedBranch_ReplacesAllSlashes( + [Test] + [Arguments("user/john/feature", "abc1234", "user.john.feature.abc1234", "0.0.0-user.john.feature+abc1234")] + [Arguments("refs/heads/main", "def5678", "refs.heads.main.def5678", "0.0.0-refs.heads.main+def5678")] + public async Task Calculate_NestedBranch_ReplacesAllSlashes( string branch, string commitId, string expectedVersion, string expectedPackageVersion) { var result = VersionCalculator.Calculate(branch, commitId); - Assert.Equal(expectedVersion, result.Version); - Assert.Equal(expectedPackageVersion, result.PackageVersion); + await Assert.That(result.Version).IsEqualTo(expectedVersion); + await Assert.That(result.PackageVersion).IsEqualTo(expectedPackageVersion); } - [Fact] - public void Calculate_ReleaseWithoutVersion_TreatedAsNonReleaseBranch() + [Test] + public async Task Calculate_ReleaseWithoutVersion_TreatedAsNonReleaseBranch() { var result = VersionCalculator.Calculate("release/feature-x", "abc1234"); - Assert.Equal("release.feature-x.abc1234", result.Version); - Assert.Equal("0.0.0-release.feature-x+abc1234", result.PackageVersion); - Assert.Equal("0.0.0.0", result.AssemblyVersion); + await Assert.That(result.Version).IsEqualTo("release.feature-x.abc1234"); + await Assert.That(result.PackageVersion).IsEqualTo("0.0.0-release.feature-x+abc1234"); + await Assert.That(result.AssemblyVersion).IsEqualTo("0.0.0.0"); } - [Theory] - [InlineData("release/v1.2.3", "abc1234", false, "1.2.3")] - [InlineData("feature/login", "abc1234", false, "0.0.0-feature.login")] - [InlineData("main", "def5678", false, "0.0.0-main")] - public void Calculate_WithoutMetadata_OmitsCommitId( + [Test] + [Arguments("release/v1.2.3", "abc1234", false, "1.2.3")] + [Arguments("feature/login", "abc1234", false, "0.0.0-feature.login")] + [Arguments("main", "def5678", false, "0.0.0-main")] + public async Task Calculate_WithoutMetadata_OmitsCommitId( string branch, string commitId, bool includeMetadata, string expectedPackageVersion) { var result = VersionCalculator.Calculate(branch, commitId, includeMetadata); - Assert.Equal(expectedPackageVersion, result.PackageVersion); - Assert.Equal(expectedPackageVersion, result.InformationalVersion); + await Assert.That(result.PackageVersion).IsEqualTo(expectedPackageVersion); + await Assert.That(result.InformationalVersion).IsEqualTo(expectedPackageVersion); } - [Fact] - public void Calculate_DefaultIncludesMetadata() + [Test] + public async Task Calculate_DefaultIncludesMetadata() { var result = VersionCalculator.Calculate("release/v1.0.0", "abc1234"); - Assert.Equal("1.0.0+abc1234", result.PackageVersion); + await Assert.That(result.PackageVersion).IsEqualTo("1.0.0+abc1234"); } }