public MtdFile FromBytes(byte[] byteStream) { if (byteStream == null || byteStream.Length < MIN_FILE_SIZE || (byteStream.Length - HEADER_SIZE) % RECORD_SIZE != 0) { throw new ArgumentException(nameof(byteStream), "The provided file is empty or corrupted."); } MtdHeader header = BuildMtdHeaderInternal(byteStream); MtdImageTable imageTable = BuildMtdImageTableInternal(byteStream); return(new MtdFile(header, imageTable)); }
public void Size_Test__AsExpected() { MtdImageTable mtdImageTable = new MtdImageTable(new[] { new MtdImageTableRecord(TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_NAME, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_X_POSITION, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_Y_POSITION, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_X_EXTEND, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_Y_EXTEND, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_ALPHA), new MtdImageTableRecord(TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_NAME, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_X_POSITION, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_Y_POSITION, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_X_EXTEND, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_Y_EXTEND, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_ALPHA) }); Assert.AreEqual(mtdImageTable.Size, 2 * TestConstants.MtdImageTableRecordTestConstants.OBJECT_SIZE_IN_BYTE); }
public void ToBytes_Test__AreBinaryEquivalent() { MtdImageTable mtdImageTable = new MtdImageTable(new[] { new MtdImageTableRecord(TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_NAME, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_X_POSITION, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_Y_POSITION, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_X_EXTEND, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_Y_EXTEND, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_ALPHA), new MtdImageTableRecord(TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_NAME, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_X_POSITION, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_Y_POSITION, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_X_EXTEND, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_Y_EXTEND, TestConstants.MtdImageTableRecordTestConstants.DEFAULT_TEST_RECORD_ALPHA) }); byte[] actual = mtdImageTable.ToBytes(); Assert.AreEqual(actual.Length, 2 * TestConstants.MtdImageTableRecordTestConstants.OBJECT_SIZE_IN_BYTE); TestUtility.AssertAreBinaryEquivalent(TestConstants.MtdImageTableTestConstants.DEFAULT_TO_BYTES, actual); }
public void Ctor_Test__ThrowsArgumentException() { MtdImageTable _ = new MtdImageTable(new MtdImageTableRecord[] { }); }