Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }