Ejemplo n.º 1
0
        public void PageReadWriteTest()
        {
            var target = new SimpleDatabase_Accessor("AAA", false);

            target.CreateTableFile("Car", 64, 1024, 128);

            var a = target.ReadDataFileHeader("Car", 0);
            var b = target.ReadDataFileHeader("Car", 1);

            Page p1 = target.DiskReadPage("Car", 0, 0);
            Page p2 = target.DiskReadPage("Car", 12, 1);

            var encoder   = new UTF8Encoding();
            var byteArray = encoder.GetBytes("Page Data");

            var row = p1.CreateEmptyRow();

            Array.Copy(byteArray, row.Data, byteArray.Length);
            p1.UpdateRow(row, 8);

            target.DiskWritePage("Car", p1, p1.FileId);

            p1 = target.DiskReadPage("Car", 0, 0);
            Assert.AreEqual("Page Data", encoder.GetString(p1.GetRow(8).Data, 0, byteArray.Length));

            p2.UpdateRow(row, p2.RowsPerPage - 1);
            target.DiskWritePage("Car", p2, p2.FileId);

            var p3 = target.DiskReadPage("Car", 12, 1);

            Assert.AreEqual("Page Data", encoder.GetString(p3.GetRow(p3.RowsPerPage - 1).Data, 0, byteArray.Length));

            target.DiskWritePage("Car", p3, p3.FileId);
            var p4 = target.DiskReadPage("Car", 12, 1);

            Assert.AreEqual(p3.NextFreeRowIndex, p4.NextFreeRowIndex);
            Assert.AreEqual(p3.PageIndex, p4.PageIndex);
            Assert.AreEqual(p3.PageSize, p4.PageSize);
            Assert.AreEqual(p3.RowSize, p4.RowSize);
            Assert.AreEqual(p3.RowsPerPage, p4.RowsPerPage);
            Assert.AreEqual(p3.FileId, p4.FileId);
        }
        public void PageReadWriteTest()
        {
            var target = new SimpleDatabase_Accessor("AAA", false);
            target.CreateTableFile("Car", 64, 1024, 128);

            var a = target.ReadDataFileHeader("Car", 0);
            var b = target.ReadDataFileHeader("Car", 1);

            Page p1 = target.DiskReadPage("Car", 0, 0);
            Page p2 = target.DiskReadPage("Car", 12, 1);

            var encoder = new UTF8Encoding();
            var byteArray = encoder.GetBytes("Page Data");

            var row = p1.CreateEmptyRow();
            Array.Copy(byteArray, row.Data, byteArray.Length);
            p1.UpdateRow(row, 8);

            target.DiskWritePage("Car", p1, p1.FileId);

            p1 = target.DiskReadPage("Car", 0, 0);
            Assert.AreEqual("Page Data", encoder.GetString(p1.GetRow(8).Data, 0, byteArray.Length));

            p2.UpdateRow(row, p2.RowsPerPage - 1);
            target.DiskWritePage("Car", p2, p2.FileId);

            var p3 = target.DiskReadPage("Car", 12, 1);
            Assert.AreEqual("Page Data", encoder.GetString(p3.GetRow(p3.RowsPerPage - 1).Data, 0, byteArray.Length));

            target.DiskWritePage("Car", p3, p3.FileId);
            var p4 = target.DiskReadPage("Car", 12, 1);

            Assert.AreEqual(p3.NextFreeRowIndex, p4.NextFreeRowIndex);
            Assert.AreEqual(p3.PageIndex, p4.PageIndex);
            Assert.AreEqual(p3.PageSize, p4.PageSize);
            Assert.AreEqual(p3.RowSize, p4.RowSize);
            Assert.AreEqual(p3.RowsPerPage, p4.RowsPerPage);
            Assert.AreEqual(p3.FileId, p4.FileId);
        }