public virtual void TestRevFilterReceivesParsedCommits()
{
RevCommit a = Commit();
RevCommit b = Commit(a);
RevCommit c = Commit(b);
AtomicBoolean filterRan = new AtomicBoolean();
RevFilter testFilter = new _RevFilter_68(filterRan);
// Do an initial run through the walk
filterRan.Set(false);
rw.SetRevFilter(testFilter);
MarkStart(c);
rw.MarkUninteresting(b);
for (RevCommit cmit = rw.Next(); cmit != null; cmit = rw.Next())
{
}
// Don't dispose the body here, because we want to test the effect
// of marking 'b' as uninteresting.
NUnit.Framework.Assert.IsTrue(filterRan.Get(), "filter ran");
// Run through the walk again, this time disposing of all commits.
filterRan.Set(false);
rw.Reset();
MarkStart(c);
for (RevCommit cmit_1 = rw.Next(); cmit_1 != null; cmit_1 = rw.Next())
{
cmit_1.DisposeBody();
}
NUnit.Framework.Assert.IsTrue(filterRan.Get(), "filter ran");
// Do the third run through the reused walk. Test that the explicitly
// disposed commits are parsed on this walk.
filterRan.Set(false);
rw.Reset();
MarkStart(c);
for (RevCommit cmit_2 = rw.Next(); cmit_2 != null; cmit_2 = rw.Next())
{
}
// spin through the walk.
NUnit.Framework.Assert.IsTrue(filterRan.Get(), "filter ran");
}