public virtual void ShouldReturnNullWhenBranchDoesntExist()
        {
            BranchTrackingStatus status = BranchTrackingStatus.Of(util.GetRepository(), "doesntexist"
                                                                  );

            NUnit.Framework.Assert.IsNull(status);
        }
        public virtual void ShouldWorkWithoutMergeBase()
        {
            util.Branch("refs/remotes/origin/master").Commit().Create();
            util.Branch("master").Commit().Create();
            BranchTrackingStatus status = BranchTrackingStatus.Of(util.GetRepository(), "master"
                                                                  );

            NUnit.Framework.Assert.AreEqual(1, status.GetAheadCount());
            NUnit.Framework.Assert.AreEqual(1, status.GetBehindCount());
        }
        public virtual void ShouldWorkInNormalCase()
        {
            RevCommit remoteTracking = util.Branch("refs/remotes/origin/master").Commit().Create
                                           ();

            util.Branch("master").Commit().Parent(remoteTracking).Create();
            util.Branch("master").Commit().Create();
            BranchTrackingStatus status = BranchTrackingStatus.Of(util.GetRepository(), "master"
                                                                  );

            NUnit.Framework.Assert.AreEqual(2, status.GetAheadCount());
            NUnit.Framework.Assert.AreEqual(0, status.GetBehindCount());
            NUnit.Framework.Assert.AreEqual("refs/remotes/origin/master", status.GetRemoteTrackingBranch
                                                ());
        }