public void CanInsertRecordWithDate() { var fn = RandomFilename; var block = new Block(fn, 0); var sch = new Schema(); sch.AddDateField("field"); recordPage = new RecordPage(block, _tableInfo, _transaction, _fileManager); var canInsert = recordPage.Insert(); recordPage.SetDate("field", new DateTime(2020, 1, 1)); recordPage.Close(); _transaction.Commit(); var page = _fileManager.ResolvePage(block); page.Read(block); page.GetInt(0, out var isUsed); page.GetDate(4, out var value); Assert.IsTrue(canInsert); Assert.AreEqual(1, isUsed); Assert.AreEqual(new DateTime(2020, 1, 1), value); }
public void CanDeleteRecord() { var fn = RandomFilename; var block = new Block(fn, 0); recordPage = new RecordPage(block, _tableInfo, _transaction, _fileManager); var canInsert = recordPage.Insert(); recordPage.SetInt("field", 20); recordPage.Delete(); recordPage.Close(); _transaction.Commit(); var page = _fileManager.ResolvePage(block); page.Read(block); page.GetInt(0, out var isUsed); page.GetInt(4, out var value); Assert.IsTrue(canInsert); Assert.AreEqual(0, isUsed); // It is "soft delete" - we are not changing the value Assert.AreEqual(20, value); }
public void CanInsertRecordWithString() { var fn = RandomFilename; var block = new Block(fn, 0); var sch = new Schema(); sch.AddStringField("field", 50); recordPage = new RecordPage(block, _tableInfo, _transaction, _fileManager); var canInsert = recordPage.Insert(); recordPage.SetString("field", "123123"); recordPage.Close(); _transaction.Commit(); var page = _fileManager.ResolvePage(block); page.Read(block); page.GetInt(0, out var isUsed); page.GetString(4, out var value); Assert.IsTrue(canInsert); Assert.AreEqual(1, isUsed); Assert.AreEqual("123123", value); }
public void CanInsertRecordWithInt() { var fn = RandomFilename; var block = new Block(fn, 0); recordPage = new RecordPage(block, _tableInfo, _transaction, _fileManager); var canInsert = recordPage.Insert(); recordPage.SetInt("field", 20); recordPage.Close(); _transaction.Commit(); var page = _fileManager.ResolvePage(block); page.Read(block); page.GetInt(0, out var isUsed); page.GetInt(4, out var value); Assert.IsTrue(canInsert); Assert.AreEqual(1, isUsed); Assert.AreEqual(20, value); }