示例#1
0
        public void TestRecordSize()
        {
            EscherDggRecord r = new EscherDggRecord();

            r.FileIdClusters = new EscherDggRecord.FileIdCluster[] { new EscherDggRecord.FileIdCluster(0, 0) };
            Assert.AreEqual(32, r.RecordSize);
        }
示例#2
0
 public void TestDrawingGroupExists()
 {
     EscherDggRecord dgg = new EscherDggRecord();
     dgg.DrawingsSaved=(1);
     dgg.FileIdClusters=(new EscherDggRecord.FileIdCluster[]{
     new EscherDggRecord.FileIdCluster( 2, 10 )});
     DrawingManager dm = new DrawingManager(dgg);
     Assert.IsFalse(dm.DrawingGroupExists((short)1));
     Assert.IsTrue(dm.DrawingGroupExists((short)2));
     Assert.IsFalse(dm.DrawingGroupExists((short)3));
 }
示例#3
0
 public void TestFindFreeSPIDBlock()
 {
     EscherDggRecord dgg = new EscherDggRecord();
     DrawingManager dm = new DrawingManager(dgg);
     dgg.ShapeIdMax = (1024);
     Assert.AreEqual(2048, dm.FindFreeSPIDBlock());
     dgg.ShapeIdMax = (1025);
     Assert.AreEqual(2048, dm.FindFreeSPIDBlock());
     dgg.ShapeIdMax = (2047);
     Assert.AreEqual(2048, dm.FindFreeSPIDBlock());
 }
示例#4
0
 public void TestFindNewDrawingGroupId()
 {
     EscherDggRecord dgg = new EscherDggRecord();
     dgg.DrawingsSaved=(1);
     dgg.FileIdClusters=(new EscherDggRecord.FileIdCluster[]{
     new EscherDggRecord.FileIdCluster( 2, 10 )});
     DrawingManager dm = new DrawingManager(dgg);
     Assert.AreEqual(1, dm.FindNewDrawingGroupId());
     dgg.FileIdClusters=(new EscherDggRecord.FileIdCluster[]{
     new EscherDggRecord.FileIdCluster( 1, 10 ),
     new EscherDggRecord.FileIdCluster( 2, 10 )});
     Assert.AreEqual(3, dm.FindNewDrawingGroupId());
 }
示例#5
0
        private EscherDggRecord CreateRecord()
        {
            EscherDggRecord r = new EscherDggRecord();

            r.Options        = (short)0x0000;
            r.RecordId       = EscherDggRecord.RECORD_ID;
            r.ShapeIdMax     = 0x402;
            r.NumShapesSaved = 0x02;
            r.DrawingsSaved  = 0x01;
            r.FileIdClusters = new EscherDggRecord.FileIdCluster[] {
                new EscherDggRecord.FileIdCluster(1, 2)
            };
            return(r);
        }
示例#6
0
        public void TestCreateDgRecord()
        {
            EscherDggRecord dgg = new EscherDggRecord();
            dgg.DrawingsSaved=(0);
            dgg.FileIdClusters=(new EscherDggRecord.FileIdCluster[] { });
            DrawingManager dm = new DrawingManager(dgg);

            EscherDgRecord dgRecord = dm.CreateDgRecord();
            Assert.AreEqual(-1, dgRecord.LastMSOSPID);
            Assert.AreEqual(0, dgRecord.NumShapes);
            Assert.AreEqual(1, dm.Dgg.DrawingsSaved);
            Assert.AreEqual(1, dm.Dgg.FileIdClusters.Length);
            Assert.AreEqual(1, dm.Dgg.FileIdClusters[0].DrawingGroupId);
            Assert.AreEqual(0, dm.Dgg.FileIdClusters[0].NumShapeIdsUsed);
        }
示例#7
0
        public void TestAllocateShapeId()
        {
            EscherDggRecord dgg = new EscherDggRecord();
            dgg.DrawingsSaved=(0);
            dgg.FileIdClusters=(new EscherDggRecord.FileIdCluster[] { });
            DrawingManager dm = new DrawingManager(dgg);

            EscherDgRecord dg = dm.CreateDgRecord();
            int shapeId = dm.AllocateShapeId(dg.DrawingGroupId);
            Assert.AreEqual(1024, shapeId);
            Assert.AreEqual(1025, dgg.ShapeIdMax);
            Assert.AreEqual(1, dgg.DrawingsSaved);
            Assert.AreEqual(1, dgg.FileIdClusters[0].DrawingGroupId);
            Assert.AreEqual(1, dgg.FileIdClusters[0].NumShapeIdsUsed);
            Assert.AreEqual(1024, dg.LastMSOSPID);
            Assert.AreEqual(1, dg.NumShapes);
        }
示例#8
0
        public void TestSerialize()
        {
            EscherDggRecord r = CreateRecord();

            byte[] data         = new byte[32];
            int    bytesWritten = r.Serialize(0, data);

            Assert.AreEqual(32, bytesWritten);
            Assert.AreEqual("[00, 00, " +
                            "06, F0, " +
                            "18, 00, 00, 00, " +
                            "02, 04, 00, 00, " +
                            "02, 00, 00, 00, " +
                            "02, 00, 00, 00, " +
                            "01, 00, 00, 00, " +
                            "01, 00, 00, 00, 02, 00, 00, 00, ]",
                            HexDump.ToHex(data));
        }
示例#9
0
        public void TestFillFields()
        {
            String hexData = "00 00 " +
                             "06 F0 " +
                             "18 00 00 00 " +
                             "02 04 00 00 " +
                             "02 00 00 00 " +
                             "02 00 00 00 " +
                             "01 00 00 00 " +
                             "01 00 00 00 02 00 00 00";

            byte[]          data         = HexRead.ReadFromString(hexData);
            EscherDggRecord r            = new EscherDggRecord();
            int             bytesWritten = r.FillFields(data, new DefaultEscherRecordFactory());

            Assert.AreEqual(32, bytesWritten);
            Assert.AreEqual(0x402, r.ShapeIdMax);
            Assert.AreEqual(0x02, r.NumIdClusters);
            Assert.AreEqual(0x02, r.NumShapesSaved);
            Assert.AreEqual(0x01, r.DrawingsSaved);
            Assert.AreEqual(1, r.FileIdClusters.Length);
            Assert.AreEqual(0x01, r.FileIdClusters[0].DrawingGroupId);
            Assert.AreEqual(0x02, r.FileIdClusters[0].NumShapeIdsUsed);
        }
示例#10
0
        Hashtable dgMap = new Hashtable(); // key = Short(drawingId), value=EscherDgRecord

        public DrawingManager(EscherDggRecord dgg)
        {
            this.dgg = dgg;
        }
示例#11
0
 public void SetUp()
 {
     dgg = new EscherDggRecord();
     dgg.FileIdClusters = (new EscherDggRecord.FileIdCluster[0]);
     drawingManager2    = new DrawingManager2(dgg);
 }