public ClassLayoutEntry(MetadataDirectory directory, ClassLayoutMetadataTableRow row) { this.FileOffset = string.Format("0x{0:x}", row.FileOffset); this.ClassSize = string.Format("0x{0:x}", row.ClassSize); this.PackingSize = string.Format("0x{0:x}", row.PackingSize); this.Parent = string.Format("0x{0:x}", row.Parent.Value); }
public void ClassLayout_WhenCreated_OffsetIsMovedOn(byte indexSize, int expected) { IIndexDetails indexDetails = IndexHelper.CreateIndexDetails(indexSize); Offset offset = 0; byte[] content = new byte[20]; ClassLayoutMetadataTableRow row = new ClassLayoutMetadataTableRow(content, offset, indexDetails); Assert.AreEqual(expected, offset.Current); }
public void ClassLayout_WhenCreated_ValuesAreReadCorrectly() { byte[] content = new byte[] { 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x18, 0x00 }; IIndexDetails indexDetails = IndexHelper.CreateIndexDetails(2); ClassLayoutMetadataTableRow row = new ClassLayoutMetadataTableRow(content, 0, indexDetails); Assert.AreEqual(1, row.PackingSize); Assert.AreEqual(24, row.ClassSize); Assert.AreEqual(24, row.Parent.Value); }