Exemplo n.º 1
0
 public void RepoHasNoCommitsTest()
 {
     using (TempRepoProvider tempRepo = new TempRepoProvider("Test1.version.json", DateTimeOffset.Now, false))
     {
         Assert.Throws <ArgumentException>(() => new VersionGenerator(tempRepo.RepoVersionFilePath));
     }
 }
Exemplo n.º 2
0
        public void Test2()
        {
            using (TempRepoProvider tempRepo = new TempRepoProvider("Test2.version.json"))
            {
                VersionGenerator version_generator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                Assert.Equal("2.2.2", version_generator.FullVersion.Split('+')[0]);
            }
        }
Exemplo n.º 3
0
        public void CommitHashTest()
        {
            using (TempRepoProvider tempRepo = new TempRepoProvider("Test1.version.json"))
            {
                using Repository repo = new Repository(tempRepo.RepoDirectory.FullName);

                VersionGenerator versionGenerator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                Assert.Equal(repo.Head.Tip.Sha, versionGenerator.CommitHash);
            }
        }
Exemplo n.º 4
0
        public void Test4()
        {
            using (TempRepoProvider tempRepo = new TempRepoProvider("Test2.version.json"))
            {
                VersionGenerator versionGenerator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                Regex codename_checker = new Regex(@"codename", RegexOptions.ECMAScript);

                Assert.DoesNotMatch(codename_checker, versionGenerator.FullVersion);
            }
        }
Exemplo n.º 5
0
        public void Test3()
        {
            using (TempRepoProvider tempRepo = new TempRepoProvider("Test1.version.json"))
            {
                VersionGenerator version_generator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                Regex codename_checker = new Regex(@"\+codename\.Test1", RegexOptions.ECMAScript);

                Assert.Matches(codename_checker, version_generator.FullVersion);
            }
        }
Exemplo n.º 6
0
        public void LightTagNameTest()
        {
            using (TempRepoProvider tempRepo = new TempRepoProvider("Test3.version.json"))
            {
                using Repository repo = new Repository(tempRepo.RepoDirectory.FullName);
                Commands.Checkout(repo, repo.CreateBranch("ccdd"));

                repo.ApplyTag("v3.2.1");

                VersionGenerator versionGenerator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                Assert.Equal("tag v3.2.1", versionGenerator.BranchName);
            }
        }
Exemplo n.º 7
0
        public void BranchTest()
        {
            using (TempRepoProvider tempRepo = new TempRepoProvider("Test1.version.json"))
            {
                using Repository repo = new Repository(tempRepo.RepoDirectory.FullName);

                Branch test_branch = repo.CreateBranch("testbranch111");

                Commands.Checkout(repo, test_branch);

                VersionGenerator versionGenerator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                Assert.Equal("testbranch111", versionGenerator.BranchName);
            }
        }
Exemplo n.º 8
0
        public void Test6()
        {
            using (TempRepoProvider tempRepo = new TempRepoProvider("Test2.version.json"))
            {
                using Repository repo = new Repository(tempRepo.RepoDirectory.FullName);

                Commands.Checkout(repo, repo.CreateBranch("oh333"));

                VersionGenerator versionGenerator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                string expected_version = "2.2.2+head.oh333.commit." + repo.Head.Tip.Sha;

                Assert.Equal(expected_version, versionGenerator.FullVersion);
            }
        }
Exemplo n.º 9
0
        public void TagNameTest2()
        {
            using (TempRepoProvider tempRepo = new TempRepoProvider("Test3.version.json"))
            {
                using Repository repo = new Repository(tempRepo.RepoDirectory.FullName);
                Commands.Checkout(repo, repo.CreateBranch("ccdd"));

                Signature sig = new Signature("Test runner", "*****@*****.**", DateTimeOffset.Now);

                repo.ApplyTag("release/2.2.2");

                VersionGenerator versionGenerator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                Assert.Equal("tag release/2.2.2", versionGenerator.BranchName);
            }
        }
Exemplo n.º 10
0
        public void CommitTimeTest()
        {
            // DateTime structure which represents February 3nd, 2020. It must be 2851200 seconds since January 1st, 2020
            DateTimeOffset commit_time = new DateTimeOffset(new DateTime(2020, 2, 3), TimeSpan.Zero);

            using (TempRepoProvider tempRepo = new TempRepoProvider("Test3.version.json", commit_time))
            {
                using Repository repo = new Repository(tempRepo.RepoDirectory.FullName);

                Commands.Checkout(repo, repo.CreateBranch("aabb"));

                VersionGenerator version_generator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                string expected_version = "3.0.2-alpha.1.2851200.aabb";

                Assert.Equal(expected_version, version_generator.VersionWithoutBuildData);
            }
        }
Exemplo n.º 11
0
        public void Test10()
        {
            using (TempRepoProvider tempRepo = new TempRepoProvider("Test3.version.json"))
            {
                using Repository repo = new Repository(tempRepo.RepoDirectory.FullName);

                Commands.Checkout(repo, repo.CreateBranch("uuuu8"));

                VersionGenerator versionGenerator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                DateTime time = repo.Head.Tip.Committer.When.UtcDateTime;

                string expected_version = "3.0.2-alpha.1."
                                          + (new DateTimeOffset(time).ToUnixTimeSeconds() - new DateTimeOffset(new DateTime(2020, 1, 1), TimeSpan.Zero).ToUnixTimeSeconds())
                                          + ".uuuu8";

                Assert.Equal(expected_version, versionGenerator.VersionWithoutBuildData);
            }
        }
Exemplo n.º 12
0
        public void Test7()
        {
            using (TempRepoProvider tempRepo = new TempRepoProvider("Test3.version.json"))
            {
                using Repository repo = new Repository(tempRepo.RepoDirectory.FullName);

                Commands.Checkout(repo, repo.CreateBranch("snd5"));

                VersionGenerator versionGenerator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                DateTime time = repo.Head.Tip.Committer.When.UtcDateTime;

                string expected_string = "3.0.2-alpha.1."
                                         + (new DateTimeOffset(time).ToUnixTimeSeconds() - new DateTimeOffset(new DateTime(2020, 1, 1), TimeSpan.Zero).ToUnixTimeSeconds())
                                         + ".snd5+codename.Test3.head.snd5.commit." + repo.Head.Tip.Sha + ".bugfix";

                Assert.Equal(expected_string, versionGenerator.FullVersion);
            }
        }
Exemplo n.º 13
0
        public void NormalizationTest2()
        {
            // DateTime structure which represents February 3nd, 2020. It must be 2851200 seconds since January 1st, 2020
            DateTimeOffset commit_time = new DateTimeOffset(new DateTime(2020, 2, 3), TimeSpan.Zero);

            using (TempRepoProvider tempRepo = new TempRepoProvider("Test1.version.json", commit_time))
            {
                using Repository repo = new Repository(tempRepo.RepoDirectory.FullName);

                repo.ApplyTag("release/5.0.300");

                VersionGenerator versionGenerator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                Assert.Equal("tag release/5.0.300", versionGenerator.BranchName);

                string expected_version = "1.1.1+codename.Test1.head.tag-release-5-0-300.commit." + repo.Head.Tip.Sha;

                Assert.Equal(expected_version, versionGenerator.FullVersion);

                Assert.True(SemVersion.TryParse(versionGenerator.FullVersion, out _, true));
            }
        }
Exemplo n.º 14
0
        public void NormalizationTest1()
        {
            // DateTime structure which represents February 3nd, 2020. It must be 2851200 seconds since January 1st, 2020
            DateTimeOffset commit_time = new DateTimeOffset(new DateTime(2020, 2, 3), TimeSpan.Zero);

            using (TempRepoProvider tempRepo = new TempRepoProvider("Test3.version.json", commit_time))
            {
                using Repository repo = new Repository(tempRepo.RepoDirectory.FullName);

                Commands.Checkout(repo, repo.CreateBranch("feature/NewFeature"));

                VersionGenerator versionGenerator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                Assert.Equal("feature/NewFeature", versionGenerator.BranchName);

                string expected_version = "3.0.2-alpha.1.2851200.feature-NewFeature+codename.Test3.head.feature-NewFeature.commit." + repo.Head.Tip.Sha + ".bugfix";

                Assert.Equal(expected_version, versionGenerator.FullVersion);

                Assert.True(SemVersion.TryParse(versionGenerator.FullVersion, out _, true));
            }
        }
Exemplo n.º 15
0
        public void DetachedHeadTest()
        {
            using (TempRepoProvider tempRepo = new TempRepoProvider("Test1.version.json"))
            {
                using Repository repo = new Repository(tempRepo.RepoDirectory.FullName);
                Commands.Checkout(repo, repo.CreateBranch("bd"));

                Commit firstCommit = repo.Head.Tip;

                File.Copy("Test3.version.json", Path.Combine(tempRepo.RepoDirectory.FullName, "Test3.version.json"));

                Signature sig = new Signature("Test runner", "*****@*****.**", DateTimeOffset.Now);

                Commands.Stage(repo, "*");
                repo.Commit("Second commit", sig, sig);

                Commands.Checkout(repo, firstCommit);

                VersionGenerator versionGenerator = new VersionGenerator(tempRepo.RepoVersionFilePath);

                Assert.Equal("detached HEAD", versionGenerator.BranchName);
            }
        }