public void TestStore()
        {

            byte[] src = HexRead.ReadFromString(data1);

            RecordInputStream in1 = TestcaseRecordInputStream.Create(EmbeddedObjectRefSubRecord.sid, src);


            EmbeddedObjectRefSubRecord record1 = new EmbeddedObjectRefSubRecord(in1, src.Length);

            byte[] ser = record1.Serialize();

            RecordInputStream in2 = TestcaseRecordInputStream.Create(ser);
            EmbeddedObjectRefSubRecord record2 = new EmbeddedObjectRefSubRecord(in2, src.Length - 4);

            ConfirmData(src, ser);
            Assert.AreEqual(record1.OLEClassName, record2.OLEClassName);

            byte[] ser2 = record1.Serialize();

            Assert.IsTrue(Arrays.Equals(ser, ser2));
        }
        public void TestCreate()
        {
            EmbeddedObjectRefSubRecord record1 = new EmbeddedObjectRefSubRecord();

            byte[] ser = record1.Serialize();
            RecordInputStream in2 = new RecordInputStream(new MemoryStream(ser));
            in2.NextRecord();
            EmbeddedObjectRefSubRecord record2 = new EmbeddedObjectRefSubRecord(in2, ser.Length - 4);

            Assert.AreEqual(record1.OLEClassName, record2.OLEClassName);
            Assert.AreEqual(record1.StreamId, record2.StreamId);

            byte[] ser2 = record1.Serialize();
            Assert.IsTrue(Arrays.Equals(ser, ser2));

        }
        public void TestCameraTool_bug45912()
        {
            /**
             * taken from ftPictFmla sub-record in attachment 22645 (offset 0x40AB).
             */
            byte[] data45912 = hr(
                    "12 00 0B 00 F8 02 88 04 3B 00 " +
                    "00 00 00 01 00 00 00 01 " +
                    "00 00");
            RecordInputStream in1 = TestcaseRecordInputStream.Create(EORSR_SID, data45912);

            EmbeddedObjectRefSubRecord rec = new EmbeddedObjectRefSubRecord(in1, data45912.Length);
            byte[] ser2 = rec.Serialize();
            ConfirmData(data45912, ser2);
        }
        public void TestVisioDrawing_bug46199()
        {
            /**
             * taken from ftPictFmla sub-record in attachment 22860 (stream offset 0x768F).<br/>
             * Note that the since the string length is zero, there is no unicode flag byte
             */
            byte[] data46199 = hr(
                      "0E 00 "
                    + "05 00 "
                    + "28 25 A3 01 "
                    + "02 6C D1 34 02 "
                    + "03 00 00 "
                    + "0F CB E8 00");
            RecordInputStream in1 = TestcaseRecordInputStream.Create(EORSR_SID, data46199);

            EmbeddedObjectRefSubRecord rec;
            try
            {
                rec = new EmbeddedObjectRefSubRecord(in1, data46199.Length);
            }
            catch (RecordFormatException e)
            {
                if (e.Message.Equals("Not enough data (3) to read requested (4) bytes"))
                {
                    throw new AssertionException("Identified bug 22860");
                }
                throw e;
            }
            byte[] ser2 = rec.Serialize();
            TestcaseRecordInputStream.ConfirmRecordEncoding(EORSR_SID, data46199, ser2);
        }
        private static void ConfirmRead(byte[] data, int i)
        {
            RecordInputStream in1 = TestcaseRecordInputStream.Create(EORSR_SID, data);

            EmbeddedObjectRefSubRecord rec = new EmbeddedObjectRefSubRecord(in1, data.Length);
            byte[] ser2 = rec.Serialize();
            TestcaseRecordInputStream.ConfirmRecordEncoding("Test record " + i, EORSR_SID, data, ser2);
        }