Example #1
0
        public void CanInsertRecordWithBlob()
        {
            var fn    = RandomFilename;
            var block = new Block(fn, 0);

            var sch = new Schema();

            sch.AddBlobField("field", 50);

            recordPage = new RecordPage(block, _tableInfo, _transaction, _fileManager);
            var canInsert = recordPage.Insert();

            recordPage.SetBlob("field", new byte[] { 1, 2, 3 });
            recordPage.Close();
            _transaction.Commit();

            var page = _fileManager.ResolvePage(block);

            page.Read(block);

            page.GetInt(0, out var isUsed);
            page.GetBlob(4, out var value);

            Assert.IsTrue(canInsert);
            Assert.AreEqual(1, isUsed);
            Assert.AreEqual(new byte[] { 1, 2, 3 }, value);
        }