public void TestSnapshotTaker()
{
// create some logs...
Add(30);
_engine.HandsOffOutputLog();
Add(20);
TimeSpan period = TimeSpan.FromSeconds(3);
SnapshotTaker taker = new SnapshotTaker(_engine, period);
// Let's wait for a snapshot to be taken
Thread.Sleep(TimeSpan.FromSeconds(5));
AssertEquals(1, _engine.PrevalenceBase.GetFiles("*.snapshot").Length);
// more log files...
Add(20);
// a second snapshot...
Thread.Sleep(TimeSpan.FromSeconds(2));
// ok, we're done.
taker.Dispose();
// Let's make sure no more snapshots will be
// taken...
Thread.Sleep(period + TimeSpan.FromSeconds(1));
AssertEquals(2, _engine.PrevalenceBase.GetFiles("*.snapshot").Length);
// sanity check
CrashRecover();
AssertTotal(70);
}