public void GetRevisionIds_ShortThenLong()
        {
            GitInfoProvider provider = Git1;

            Assert.AreEqual("781826a", provider.GetRevisionId());
            Assert.AreEqual("781826aeadce6c4f3a031f15b06353491b44e7eb", provider.GetLongRevisionId());
        }
        public void LooksUpCommitWhenGitSourceIsFortyCharacters()
        {
            // Arrange
            string sha            = "5a6940131b31f6958007ecbc0c51cbc35177f4e0";
            var    strykerOptions = new StrykerOptions(gitSource: sha);

            var commitMock           = new Mock <Commit>();
            var repositoryMock       = new Mock <IRepository>();
            var branchCollectionMock = new Mock <BranchCollection>();

            branchCollectionMock
            .Setup(x => x.GetEnumerator()).Returns(
                ((IEnumerable <Branch>) new List <Branch>()).GetEnumerator());

            repositoryMock.SetupGet(x => x.Branches).Returns(branchCollectionMock.Object);
            repositoryMock.Setup(x => x.Lookup(It.IsAny <ObjectId>())).Returns(commitMock.Object);

            var target = new GitInfoProvider(strykerOptions, repositoryMock.Object);

            // Act
            Commit result = target.DetermineCommit();

            // Assert
            result.ShouldNotBeNull();
            repositoryMock.Verify(x => x.Lookup(It.Is <ObjectId>(x => x.Sha == sha)), Times.Once);
        }
        public void WhenProvidedReturnsRepositoryPath()
        {
            var repository = new Mock <IRepository>(MockBehavior.Strict);

            var target = new GitInfoProvider(null, repository.Object, "path");

            target.RepositoryPath.ShouldBe("path");
        }
Exemple #4
0
        public void WhenProvidedReturnsRepositoryPath()
        {
            var repository = new Mock <IRepository>(MockBehavior.Strict);

            var target = new GitInfoProvider(new StrykerOptions(diff: true), repository.Object, "path", Mock.Of <ILogger <GitInfoProvider> >());

            target.RepositoryPath.ShouldBe("path");
        }
Exemple #5
0
        public void DoesNotCheckForRepositoryPathWhenDisabled()
        {
            var repository = new Mock <IRepository>(MockBehavior.Strict);

            var options = new StrykerOptions(diff: false);

            var target = new GitInfoProvider(options, repository.Object, null);

            target.Repository.ShouldBe(null);
        }
Exemple #6
0
 public GitVersionTokenReplacer(GitInfoProvider infoProvider)
 {
     AddToken("REVNUM", () => infoProvider.GetRevisionNumber().ToString());
     AddToken("REVNUM_MOD", x => (infoProvider.GetRevisionNumber() % x).ToString());
     AddToken("REVNUM_DIV", x => (infoProvider.GetRevisionNumber() / x).ToString());
     AddToken("REVID", () => infoProvider.GetRevisionId());
     AddToken("DIRTY", () => infoProvider.IsWorkingCopyDirty() ? "1" : "0");
     AddToken("BRANCH", () => infoProvider.GetBranch());
     AddToken("TAGS", () => infoProvider.GetTags());
 }
        public void ReturnsCurrentBranchWhenMultipleBranches()
        {
            // Arrange
            var options = new StrykerOptions()
            {
                Since = true,
            };
            var repositoryMock = new Mock <IRepository>(MockBehavior.Strict);

            var branchCollectionMock = new Mock <BranchCollection>(MockBehavior.Strict);
            var branchMock           = new Mock <Branch>();
            var branchMock2          = new Mock <Branch>();

            branchCollectionMock
            .Setup(x => x.Add(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(new Mock <Branch>(MockBehavior.Loose).Object);

            branchMock
            .SetupGet(x => x.IsCurrentRepositoryHead)
            .Returns(true);

            branchMock2
            .SetupGet(x => x.IsCurrentRepositoryHead)
            .Returns(false);

            branchMock
            .SetupGet(x => x.FriendlyName)
            .Returns("master");

            branchMock2
            .SetupGet(x => x.FriendlyName)
            .Returns("dev");

            branchCollectionMock
            .Setup(x => x.GetEnumerator())
            .Returns(((IEnumerable <Branch>) new List <Branch>
            {
                branchMock.Object
            }).GetEnumerator());

            repositoryMock
            .SetupGet(x => x.Branches)
            .Returns(branchCollectionMock.Object);

            var target = new GitInfoProvider(options, repositoryMock.Object);

            // Act
            var res = target.GetCurrentBranchName();

            // Assert
            res.ShouldBe("master");

            repositoryMock.Verify();
        }
        public void ReturnsEmptyStringIfNoCurrentRepositoryHead()
        {
            // Arrange
            var options    = new StrykerOptions();
            var repository = new Mock <IRepository>(MockBehavior.Loose);

            var target = new GitInfoProvider(options, repository.Object);
            // Act
            var result = target.GetCurrentBranchName();

            // Assert
            result.ShouldBe(string.Empty);
        }
Exemple #9
0
        public void ThrowsExceptionIfNoCurrentBranchOrProjectVersionSet()
        {
            // Arrange
            var options    = new StrykerOptions();
            var repository = new Mock <IRepository>(MockBehavior.Loose);

            var target = new GitInfoProvider(options, repository.Object);
            // Act
            Action result = () => target.GetCurrentBranchName();

            // Assert
            result.ShouldThrow <StrykerInputException>();
        }
        public void ReturnsTip_When_Friendly_Name_Is_GitSource()
        {
            // Arrange
            var options        = new StrykerOptions(gitSource: "master");
            var repositoryMock = new Mock <IRepository>(MockBehavior.Strict);

            var branchCollectionMock = new Mock <BranchCollection>(MockBehavior.Strict);
            var branchMock           = new Mock <Branch>();
            var commitMock           = new Mock <Commit>();

            branchMock
            .SetupGet(x => x.FriendlyName)
            .Returns("master");

            branchMock
            .SetupGet(x => x.CanonicalName)
            .Returns("origin/master");

            branchMock.SetupGet(x => x.Tip).Returns(commitMock.Object);

            branchCollectionMock
            .Setup(x => x.GetEnumerator())
            .Returns(((IEnumerable <Branch>) new List <Branch>
            {
                branchMock.Object
            }).GetEnumerator());

            repositoryMock
            .SetupGet(x => x.Branches)
            .Returns(branchCollectionMock.Object);

            var target = new GitInfoProvider(options, repositoryMock.Object);

            // Act
            var res = target.DetermineCommit();

            // Assert
            res.ShouldNotBeNull();
            res.ShouldBe(commitMock.Object);

            repositoryMock.Verify();
        }
        public void DetermineCommitThrowsStrykerInputException()
        {
            var strykerOptions = new StrykerOptions(gitSource: "master");

            var repository = new Mock <IRepository>();

            var branchCollectionMock = new Mock <BranchCollection>();

            branchCollectionMock
            .Setup(x => x.GetEnumerator()).Returns(
                ((IEnumerable <Branch>) new List <Branch>()).GetEnumerator());


            repository.SetupGet(x => x.Branches).Returns(branchCollectionMock.Object);

            var target = new GitInfoProvider(strykerOptions, repository.Object);


            void act() => target.DetermineCommit();

            Should.Throw <StrykerInputException>(act);
        }