public static async Task HasCustomAutoIncrement() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); await Git.Init(path); await Git.Commit(path); await Git.Tag(path, "2.3.4"); await Git.Commit(path); var envVars = ("MinVerAutoIncrement".ToAltCase(), "minor"); var expected = Package.WithVersion(2, 4, 0, new[] { "alpha", "0" }, 1); // act var(sdkActual, _) = await Sdk.BuildProject(path, envVars : envVars); var(cliActual, _) = await MinVerCli.Run(path, envVars : envVars); // assert Assert.Equal(expected, sdkActual); Assert.Equal(expected.Version, cliActual); }
public static async Task HasHeightTwo() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); await Git.Init(path); await Git.Commit(path); await Git.Tag(path, "2.3.4-alpha.5"); await Git.Commit(path); await Git.Commit(path); var expected = Package.WithVersion(2, 3, 4, new[] { "alpha", "5", }, 2); // act var(actual, _, _) = await Sdk.BuildProject(path); var(cliStandardOutput, _) = await MinVerCli.ReadAsync(path); // assert Assert.Equal(expected, actual); Assert.Equal(expected.Version, cliStandardOutput.Trim()); }
public static async Task HasMinimumMajorMinorWithHeightOne() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); await Git.Init(path); await Git.Commit(path); await Git.Tag(path, "2.3.4"); await Git.Commit(path); var envVars = ("MinVerMinimumMajorMinor".ToAltCase(), "3.0"); var expected = Package.WithVersion(3, 0, 0, new[] { "alpha", "0" }, 1); // act var(actual, _, _) = await Sdk.BuildProject(path, envVars : envVars); var(cliStandardOutput, _) = await MinVerCli.ReadAsync(path, envVars : envVars); // assert Assert.Equal(expected, actual); Assert.Equal(expected.Version, cliStandardOutput.Trim()); }
public static async Task DoesNotHaveBuildMetadata() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); await Git.Init(path); await Git.Commit(path); await Git.Tag(path, "2.3.4+build.5"); await Git.Commit(path); var expected = Package.WithVersion(2, 3, 5, new[] { "alpha", "0" }, 1); // act var(sdkActual, _) = await Sdk.BuildProject(path); var(cliActual, _) = await MinVerCli.Run(path); // assert Assert.Equal(expected, sdkActual); Assert.Equal(expected.Version, cliActual); }
public static async Task HasCustomDefaultPreReleasePhase() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); await Git.Init(path); await Git.Commit(path); await Git.Tag(path, "2.3.4"); await Git.Commit(path); var envVars = ("MinVerDefaultPreReleasePhase".ToAltCase(), "preview"); var expected = Package.WithVersion(2, 3, 5, new[] { "preview", "0" }, 1); // act var(sdkActual, _) = await Sdk.BuildProject(path, envVars : envVars); var(cliActual, _) = await MinVerCli.Run(path, envVars : envVars); // assert Assert.Equal(expected, sdkActual); Assert.Equal(expected.Version, cliActual); }
public static async Task PackagesAreCleaned(bool multiTarget) { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(multiTarget); await Sdk.CreateProject(path, multiTarget : multiTarget); await Git.Init(path); await Git.Commit(path); await Git.Tag(path, "2.3.4"); _ = await Sdk.BuildProject(path); var packages = new Matcher().AddInclude("**/bin/Debug/*.nupkg"); Assert.NotEmpty(packages.GetResultsInFullPath(path)); // act _ = await Sdk.DotNet("clean", path, new Dictionary <string, string> { { "GeneratePackageOnBuild", "true" }, }); // assert Assert.Empty(packages.GetResultsInFullPath(path)); }
public static async Task IsUsed() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); var envVars = ("MinVerVersionOverride".ToAltCase(), "2.3.4-alpha-x.5+build.6+7"); string actual; // act try { actual = (await Sdk.BuildProject(path, envVars: envVars)).StandardOutput; } #pragma warning disable CA1031 // Do not catch general exception types catch (Exception ex) #pragma warning restore CA1031 // Do not catch general exception types { // SemVer doesn't allow multiple plus signs, but MinVer doesn't care actual = ex.Message; } // assert Assert.Contains("MinVer: [output] MinVerVersion=2.3.4-alpha-x.5+build.6+7", actual, StringComparison.Ordinal); Assert.Contains("MinVer: [output] MinVerBuildMetadata=build.6+7", actual, StringComparison.Ordinal); Assert.Contains("MinVer: [output] PackageVersion=2.3.4-alpha-x.5+build.6+7", actual, StringComparison.Ordinal); Assert.Contains("MinVer: [output] Version=2.3.4-alpha-x.5+build.6+7", actual, StringComparison.Ordinal); }
public static async Task HeightIsIgnored() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); await Git.Init(path); await Git.Commit(path); await Git.Tag(path, "2.3.4"); await Git.Commit(path); var envVars = ("MinVerIgnoreHeight".ToAltCase(), "true".ToAltCase()); var expected = Package.WithVersion(2, 3, 4); // act var(actual, _, _) = await Sdk.BuildProject(path, envVars); var(cliStandardOutput, _) = await MinVerCli.ReadAsync(path, envVars : envVars); // assert Assert.Equal(expected, actual); Assert.Equal(expected.Version, cliStandardOutput.Trim()); }
public static async Task HasTagVersion() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); await Git.Init(path); await Git.Commit(path); await Git.Tag(path, "v.2.3.4-alpha.5"); var envVars = ("MinVerTagPrefix", "v."); var expected = Package.WithVersion(2, 3, 4, new[] { "alpha", "5" }); // act var(sdkActual, _) = await Sdk.BuildProject(path, envVars : envVars); var(cliActual, _) = await MinVerCli.Run(path, envVars : envVars); // assert Assert.Equal(expected, sdkActual); Assert.Equal(expected.Version, cliActual); }
public static async Task HasVersionOverride() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); await Git.Init(path); await Git.Commit(path); await Git.Tag(path, "2.3.4"); var envVars = ("MinVerVersionOverride".ToAltCase(), "3.4.5-alpha.6+build.7"); var expected = Package.WithVersion(3, 4, 5, new[] { "alpha", "6" }, 0, "build.7"); // act var(actual, _, _) = await Sdk.BuildProject(path, envVars : envVars); var(cliStandardOutput, _) = await MinVerCli.ReadAsync(path, envVars : envVars); // assert Assert.Equal(expected, actual); Assert.Equal(expected.Version, cliStandardOutput.Trim()); }
public static async Task HasDefaultSdkVersion() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); var envVars = ("MinVerSkip".ToAltCase(), "true"); var expected = Package.WithVersion(1, 0, 0); // act var(actual, _, _) = await Sdk.BuildProject(path, envVars : envVars); // assert Assert.Equal(expected, actual); }
public static async Task HasBuildMetadata() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); var envVars = ("MinVerBuildMetadata", "build.123"); var expected = Package.WithVersion(0, 0, 0, new[] { "alpha", "0" }, 0, "build.123"); // act var(sdkActual, _) = await Sdk.BuildProject(path, envVars : envVars); var(cliActual, _) = await MinVerCli.Run(path, envVars : envVars); // assert Assert.Equal(expected, sdkActual); Assert.Equal(expected.Version, cliActual); }
public static async Task MinVerDoesNotRunWhenPackagesAreNotGeneratedOnBuild() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); // act var(standardOutput, _) = await Sdk.DotNet( "clean", path, new Dictionary <string, string> { { "GeneratePackageOnBuild", "false" }, { "MinVerVerbosity", "diagnostic" }, }); // assert Assert.DoesNotContain("minver:", standardOutput, StringComparison.OrdinalIgnoreCase); }
public static async Task HasDefaultVersion() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); var expected = Package.WithVersion(0, 0, 0, new[] { "alpha", "0", }); // act var(actual, sdkStandardOutput, _) = await Sdk.BuildProject(path); var(cliStandardOutput, cliStandardError) = await MinVerCli.ReadAsync(path); // assert Assert.Equal(expected, actual); Assert.Contains("MINVER1001", sdkStandardOutput, StringComparison.Ordinal); Assert.Equal(expected.Version, cliStandardOutput.Trim()); Assert.Contains("not a valid Git working directory", cliStandardError, StringComparison.Ordinal); }
public static async Task HasDefaultVersion() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); await Git.Init(path); await Git.Commit(path); var expected = Package.WithVersion(0, 0, 0, new[] { "alpha", "0" }); // act var(sdkActual, _) = await Sdk.BuildProject(path); var(cliActual, _) = await MinVerCli.Run(path); // assert Assert.Equal(expected, sdkActual); Assert.Equal(expected.Version, cliActual); }
public static async Task DoesNotRecreatePackage(bool multiTarget) { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(multiTarget); await Sdk.CreateProject(path, multiTarget : multiTarget); await Git.Init(path); await Git.Commit(path); await Git.Tag(path, "2.3.4"); var(_, standardOutput, _) = await Sdk.BuildProject(path); Assert.Contains("Successfully created package", standardOutput, StringComparison.OrdinalIgnoreCase); // act (standardOutput, _) = await Sdk.Pack(path); // assert Assert.DoesNotContain("Successfully created package", standardOutput, StringComparison.OrdinalIgnoreCase); }
public static async Task AreSet() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); var envVars = ("MinVerVersionOverride".ToAltCase(), "2.3.4-alpha-x.5+build.6"); // act var(_, standardOutput, _) = await Sdk.BuildProject(path, envVars : envVars); // assert Assert.Contains("MinVer: [output] MinVerVersion=2.3.4-alpha-x.5+build.6", standardOutput, StringComparison.Ordinal); Assert.Contains("MinVer: [output] MinVerMajor=2", standardOutput, StringComparison.Ordinal); Assert.Contains("MinVer: [output] MinVerMinor=3", standardOutput, StringComparison.Ordinal); Assert.Contains("MinVer: [output] MinVerPatch=4", standardOutput, StringComparison.Ordinal); Assert.Contains("MinVer: [output] MinVerPreRelease=alpha-x.5", standardOutput, StringComparison.Ordinal); Assert.Contains("MinVer: [output] MinVerBuildMetadata=build.6", standardOutput, StringComparison.Ordinal); Assert.Contains("MinVer: [output] AssemblyVersion=2.0.0.0", standardOutput, StringComparison.Ordinal); Assert.Contains("MinVer: [output] FileVersion=2.3.4.0", standardOutput, StringComparison.Ordinal); Assert.Contains("MinVer: [output] PackageVersion=2.3.4-alpha-x.5+build.6", standardOutput, StringComparison.Ordinal); Assert.Contains("MinVer: [output] Version=2.3.4-alpha-x.5+build.6", standardOutput, StringComparison.Ordinal); }
public static async Task HasTagVersion() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); await Git.Init(path); await Git.Commit(path); await Git.AnnotatedTag(path, "2.3.4-alpha.5+build.6", "foo"); var expected = Package.WithVersion(2, 3, 4, new[] { "alpha", "5" }, 0, "build.6"); // act var(sdkActual, _) = await Sdk.BuildProject(path); var(cliActual, _) = await MinVerCli.Run(path); // assert Assert.Equal(expected, sdkActual); Assert.Equal(expected.Version, cliActual); }
public static async Task IsUsed() { // arrange var path = MethodBase.GetCurrentMethod().GetTestDirectory(); await Sdk.CreateProject(path); var envVars = ("MinVerVersionOverride".ToAltCase(), "2.3.4-alpha-x.5+build.6+7"); // act // SemVer doesn't allow multiple plus signs, but MinVer doesn't care string @out = null; var exception = await Record.ExceptionAsync(async() => (_, @out) = await Sdk.BuildProject(path, envVars: envVars)); if (exception != null) { @out = exception.Message; } // assert Assert.Contains("MinVer: [output] MinVerVersion=2.3.4-alpha-x.5+build.6+7", @out); Assert.Contains("MinVer: [output] MinVerBuildMetadata=build.6+7", @out); Assert.Contains("MinVer: [output] PackageVersion=2.3.4-alpha-x.5+build.6+7", @out); Assert.Contains("MinVer: [output] Version=2.3.4-alpha-x.5+build.6+7", @out); }