Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }