public void CanRecover() { _recoveryManager = new RecoveryManager(_bufferManager, _logManager, 6); var block = new Block(RandomFilename, 0); var buffer = _bufferManager.Pin(block); _recoveryManager.Recover(); _bufferManager.Unpin(buffer); _bufferManager.FlushAll(6); var page = _fileManager.ResolvePage(); _ = page.Read(new Block(_name, 0)); var enumerator = _logManager.GetEnumerator(); var record = enumerator.Current; var checkpointRecord = new CheckpointRecord(_logManager, _bufferManager, record); Assert.AreEqual(LogRecordType.Checkpoint, checkpointRecord.Type); Assert.AreEqual(1, checkpointRecord.Transactions.Length); Assert.AreEqual(6, checkpointRecord.Transactions[0]); }
public void CanRecoverSimpleTransaction() { var startRecord = new StartRecord(_logManager, _bufferManager, 6); var lsn = startRecord.WriteToLog(); _logManager.Flush(lsn); _recoveryManager = new RecoveryManager(_bufferManager, _logManager, 6); var block = new Block(RandomFilename, 0); var buffer = _bufferManager.Pin(block); _recoveryManager.SetInt(buffer, 0, 123); Assert.DoesNotThrow(() => { _recoveryManager.Recover(); _bufferManager.Unpin(buffer); }); }
public void Recover() { _recoveryManager.Recover(); }