Exemplo n.º 1
0
        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());
    }
Exemplo n.º 3
0
        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());
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
    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);
        }
Exemplo n.º 8
0
    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());
    }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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());
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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);
        }
Exemplo n.º 13
0
    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);
    }
Exemplo n.º 14
0
    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);
    }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
    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);
    }
Exemplo n.º 17
0
        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);
        }
Exemplo n.º 18
0
        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);
        }