public void TestFillFields()
        {
            string TestData =
                "0F 02 " +     // options
                "11 F1 " +     // record id
                "00 00 00 00"; // remaining bytes

            UnknownEscherRecord  r       = new UnknownEscherRecord();
            IEscherRecordFactory factory = new DefaultEscherRecordFactory();

            r.FillFields(HexRead.ReadFromString(TestData), factory);

            Assert.AreEqual(0x020F, r.Options);
            Assert.AreEqual(unchecked ((short)0xF111), r.RecordId);
            Assert.IsTrue(r.IsContainerRecord);
            Assert.AreEqual(8, r.RecordSize);
            Assert.AreEqual(0, r.ChildRecords.Count);
            Assert.AreEqual(0, r.Data.Length);

            TestData =
                "00 02 " +       // options
                "11 F1 " +       // record id
                "04 00 00 00 " + // remaining bytes
                "01 02 03 04";

            r = new UnknownEscherRecord();
            r.FillFields(HexRead.ReadFromString(TestData), factory);

            Assert.AreEqual(0x0200, r.Options);
            Assert.AreEqual(unchecked ((short)0xF111), r.RecordId);
            Assert.AreEqual(12, r.RecordSize);
            Assert.IsFalse(r.IsContainerRecord);
            Assert.AreEqual(0, r.ChildRecords.Count);
            Assert.AreEqual(4, r.Data.Length);
            Assert.AreEqual(1, r.Data[0]);
            Assert.AreEqual(2, r.Data[1]);
            Assert.AreEqual(3, r.Data[2]);
            Assert.AreEqual(4, r.Data[3]);

            TestData =
                "0F 02 " +       // options
                "11 F1 " +       // record id
                "08 00 00 00 " + // remaining bytes
                "00 02 " +       // options
                "FF FF " +       // record id
                "00 00 00 00";   // remaining bytes

            r = new UnknownEscherRecord();
            r.FillFields(HexRead.ReadFromString(TestData), factory);

            Assert.AreEqual(0x020F, r.Options);
            Assert.AreEqual(unchecked ((short)0xF111), r.RecordId);
            Assert.AreEqual(8, r.RecordSize);
            Assert.IsTrue(r.IsContainerRecord);
            Assert.AreEqual(1, r.ChildRecords.Count);
            Assert.AreEqual(unchecked ((short)0xFFFF), r.GetChild(0).RecordId);
        }
Пример #2
0
        public void TestToString()
        {
            UnknownEscherRecord r = new UnknownEscherRecord();

            r.Options  = (short)0x1234;
            r.RecordId = unchecked ((short)0xF112);
            byte[] data = new byte[8];
            r.Serialize(0, data);

            String nl = Environment.NewLine;

            Assert.AreEqual("UnknownEscherRecord:" + nl +
                            "  isContainer: False" + nl +
                            "  options: 0x1234" + nl +
                            "  recordId: 0xF112" + nl +
                            "  numchildren: 0" + nl
                            , r.ToString());
        }
Пример #3
0
        public void TestSerialize()
        {
            UnknownEscherRecord r = new UnknownEscherRecord();

            r.Options  = (short)0x123F;
            r.RecordId = unchecked ((short)0xF112);
            byte[] data = new byte[8];
            r.Serialize(0, data);

            Assert.AreEqual("[3F, 12, 12, F1, 00, 00, 00, 00]", HexDump.ToHex(data));

            EscherRecord childRecord = new UnknownEscherRecord();

            childRecord.Options  = unchecked ((short)0x9999);
            childRecord.RecordId = unchecked ((short)0xFF01);
            r.AddChildRecord(childRecord);
            data = new byte[16];
            r.Serialize(0, data);

            Assert.AreEqual("[3F, 12, 12, F1, 08, 00, 00, 00, 99, 99, 01, FF, 00, 00, 00, 00]", HexDump.ToHex(data));
        }