Exemplo n.º 1
0
        public void ParentsShareAParent_OnlyVisitGrandParentOnce()
        {
            var grandParent  = Fakes.Commit();
            var grandParents = new List <Commit>()
            {
                grandParent.Object
            };

            var commit = Fakes.Commit()
                         .WithParents(new List <Commit>()
            {
                Fakes.Commit().WithParents(grandParents).Object,
                Fakes.Commit().WithParents(grandParents).Object
            });

            var visitor = new CommitVisitor();

            var visitedCount            = 0;
            var grandParentVisitedCount = 0;

            visitor.Visited += (sender, visited) => {
                visitedCount++;
                if (visited.Sha == grandParent.Object.Sha)
                {
                    grandParentVisitedCount++;
                }
            };

            visitor.Walk(commit.Object);

            Assert.Equal(4, visitedCount);
            Assert.Equal(1, grandParentVisitedCount);
        }
Exemplo n.º 2
0
        public void CanCallWalkMultipleTimes()
        {
            var grandParent  = Fakes.Commit();
            var grandParents = new List <Commit>()
            {
                grandParent.Object
            };

            var commit = Fakes.Commit()
                         .WithParents(new List <Commit>()
            {
                Fakes.Commit().WithParents(grandParents).Object,
                Fakes.Commit().WithParents(grandParents).Object
            });

            var visitor = new CommitVisitor();

            var visitedCount            = 0;
            var grandParentVisitedCount = 0;

            visitor.Visited += (sender, visited) => {
                visitedCount++;
                if (visited.Sha == grandParent.Object.Sha)
                {
                    grandParentVisitedCount++;
                }
            };

            visitor.Walk(commit.Object);
            visitor.Walk(commit.Object);

            Assert.Equal(8, visitedCount);
            Assert.Equal(2, grandParentVisitedCount);
        }
Exemplo n.º 3
0
        public void NoParents_OnlyVisitsCurrentCommit()
        {
            var commit = Fakes.Commit();

            var visitor = new CommitVisitor();

            var visitedCount = 0;

            visitor.Visited += (sender, visited) => visitedCount++;
            visitor.Walk(commit.Object);

            Assert.Equal(1, visitedCount);
        }
Exemplo n.º 4
0
        public void OneParent_VisitsCurrentCommitAndParent()
        {
            var commit = Fakes.Commit()
                         .WithParents(new List <Commit>()
            {
                Fakes.Commit().Object
            });

            var visitor = new CommitVisitor();

            var visitedCount = 0;

            visitor.Visited += (sender, visited) => visitedCount++;

            visitor.Walk(commit.Object);

            Assert.Equal(2, visitedCount);
        }