public void CanDeleteRecord() { var tableFile = RandomFilename; var schema = new Schema(); schema.AddIntField("field"); _tableInfo = new TableInfo(tableFile, schema); _recordFile = new RecordFile(_tableInfo, _transaction); _recordFile.BeforeFirst(); _recordFile.Insert(); _recordFile.SetInt("field", 10); _recordFile.Delete(); _transaction.Commit(); var block = new IO.Primitives.Block(tableFile + ".tbl", 0); var page = _fileManager.ResolvePage(block); page.Read(block); page.GetInt(0, out var used); Assert.AreEqual(0, used); }
public void CanGetBeforeFirstAndInsertValues() { var tableFile = RandomFilename; var schema = new Schema(); schema.AddIntField("field"); _tableInfo = new TableInfo(tableFile, schema); _recordFile = new RecordFile(_tableInfo, _transaction); _recordFile.BeforeFirst(); _recordFile.Insert(); _recordFile.SetInt("field", 10); _recordFile.Insert(); _recordFile.SetInt("field", 20); _transaction.Commit(); var block = new IO.Primitives.Block(tableFile + ".tbl", 0); var page = _fileManager.ResolvePage(block); page.Read(block); page.GetInt(0, out var used1); page.GetInt(8, out var used2); page.GetInt(4, out var value1); page.GetInt(12, out var value2); Assert.AreEqual(1, used1); Assert.AreEqual(1, used2); Assert.AreEqual(10, value1); Assert.AreEqual(20, value2); }
public void CanWriteIntOnARecord() { var tableFile = RandomFilename; var schema = new Schema(); schema.AddIntField("field"); _tableInfo = new TableInfo(tableFile, schema); _recordFile = new RecordFile(_tableInfo, _transaction); _recordFile.MoveToRID(new RID(0, 0)); _recordFile.SetInt("field", 10); _recordFile.Close(); _transaction.Commit(); var block = new IO.Primitives.Block(tableFile + ".tbl", 0); var page = _fileManager.ResolvePage(block); page.Read(block); _ = page.GetInt(4, out var value); Assert.AreEqual(10, value); }