Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
 public void Ctor_Test__ThrowsArgumentException()
 {
     MtdImageTable _ = new MtdImageTable(new MtdImageTableRecord[] { });
 }