Esempio n. 1
0
        public void TestClearShapesForPatriarch()
        {
            HSSFWorkbook  wb        = new HSSFWorkbook();
            HSSFSheet     sheet     = wb.CreateSheet() as HSSFSheet;
            HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch;

            patriarch.CreateSimpleShape(new HSSFClientAnchor());
            patriarch.CreateSimpleShape(new HSSFClientAnchor());
            patriarch.CreateCellComment(new HSSFClientAnchor());

            EscherAggregate agg = HSSFTestHelper.GetEscherAggregate(patriarch);

            Assert.AreEqual(agg.GetShapeToObjMapping().Count, 6);
            Assert.AreEqual(agg.TailRecords.Count, 1);
            Assert.AreEqual(patriarch.Children.Count, 3);

            patriarch.Clear();

            Assert.AreEqual(agg.GetShapeToObjMapping().Count, 0);
            Assert.AreEqual(agg.TailRecords.Count, 0);
            Assert.AreEqual(patriarch.Children.Count, 0);

            wb        = HSSFTestDataSamples.WriteOutAndReadBack(wb);
            sheet     = wb.GetSheetAt(0) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            Assert.AreEqual(agg.GetShapeToObjMapping().Count, 0);
            Assert.AreEqual(agg.TailRecords.Count, 0);
            Assert.AreEqual(patriarch.Children.Count, 0);
        }
Esempio n. 2
0
        public void TestAllocateNewIds()
        {
            HSSFWorkbook  wb        = HSSFTestDataSamples.OpenSampleWorkbook("empty.xls");
            HSSFSheet     sheet     = wb.GetSheetAt(0) as HSSFSheet;
            HSSFPatriarch patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            /**
             * 2048 - main SpContainer id
             * 2049 - existing shape id
             */
            Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 2050);
            Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 2051);
            Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 2052);

            sheet     = wb.GetSheetAt(1) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            /**
             * 3072 - main SpContainer id
             * 3073 - existing shape id
             */
            Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 3074);
            Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 3075);
            Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 3076);


            sheet     = wb.GetSheetAt(2) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 1026);
            Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 1027);
            Assert.AreEqual(HSSFTestHelper.AllocateNewShapeId(patriarch), 1028);
        }
Esempio n. 3
0
        public void TestChildAnchorFromScratch()
        {
            HSSFChildAnchor         anchor = new HSSFChildAnchor();
            EscherChildAnchorRecord escher = (EscherChildAnchorRecord)HSSFTestHelper.GetEscherAnchor(anchor);

            anchor.SetAnchor(11, 12, 13, 14);

            Assert.AreEqual(anchor.Dx1, 11);
            Assert.AreEqual(escher.Dx1, 11);
            Assert.AreEqual(anchor.Dx2, 13);
            Assert.AreEqual(escher.Dx2, 13);
            Assert.AreEqual(anchor.Dy1, 12);
            Assert.AreEqual(escher.Dy1, 12);
            Assert.AreEqual(anchor.Dy2, 14);
            Assert.AreEqual(escher.Dy2, 14);

            anchor.Dx1 = (115);
            Assert.AreEqual(anchor.Dx1, 115);
            Assert.AreEqual(escher.Dx1, 115);
            anchor.Dx2 = (116);
            Assert.AreEqual(anchor.Dx2, 116);
            Assert.AreEqual(escher.Dx2, 116);
            anchor.Dy1 = (117);
            Assert.AreEqual(anchor.Dy1, 117);
            Assert.AreEqual(escher.Dy1, 117);
            anchor.Dy2 = (118);
            Assert.AreEqual(anchor.Dy2, 118);
            Assert.AreEqual(escher.Dy2, 118);
        }
Esempio n. 4
0
        public void TestCorrectOrderInOptRecord()
        {
            HSSFWorkbook  wb        = new HSSFWorkbook();
            HSSFSheet     sheet     = wb.CreateSheet() as HSSFSheet;
            HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch;

            HSSFTextbox     textbox = patriarch.CreateTextbox(new HSSFClientAnchor()) as HSSFTextbox;
            EscherOptRecord opt     = HSSFTestHelper.GetOptRecord(textbox);

            String opt1Str = opt.ToXml();

            textbox.FillColor = textbox.FillColor;
            EscherContainerRecord Container = HSSFTestHelper.GetEscherContainer(textbox);
            EscherOptRecord       optRecord = Container.GetChildById(EscherOptRecord.RECORD_ID) as EscherOptRecord;

            Assert.AreEqual(opt1Str, optRecord.ToXml());
            textbox.LineStyle = textbox.LineStyle;
            Assert.AreEqual(opt1Str, optRecord.ToXml());
            textbox.LineWidth = textbox.LineWidth;
            Assert.AreEqual(opt1Str, optRecord.ToXml());
            textbox.LineStyleColor = textbox.LineStyleColor;
            Assert.AreEqual(opt1Str, optRecord.ToXml());

            wb.Close();
        }
Esempio n. 5
0
        public void TestDgRecordNumShapes()
        {
            HSSFWorkbook  wb        = new HSSFWorkbook();
            HSSFSheet     sheet     = wb.CreateSheet() as HSSFSheet;
            HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch;

            EscherAggregate aggregate = HSSFTestHelper.GetEscherAggregate(patriarch);
            EscherDgRecord  dgRecord  = (EscherDgRecord)aggregate.GetEscherRecord(0).GetChild(0) as EscherDgRecord;

            Assert.AreEqual(dgRecord.NumShapes, 1);
        }
Esempio n. 6
0
        public void TestTextForSimpleShape()
        {
            HSSFWorkbook  wb1       = new HSSFWorkbook();
            HSSFSheet     sheet     = wb1.CreateSheet() as HSSFSheet;
            HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch;

            HSSFSimpleShape shape = patriarch.CreateSimpleShape(new HSSFClientAnchor());

            shape.ShapeType = HSSFSimpleShape.OBJECT_TYPE_RECTANGLE;

            EscherAggregate agg = HSSFTestHelper.GetEscherAggregate(patriarch);

            Assert.AreEqual(agg.GetShapeToObjMapping().Count, 2);

            HSSFWorkbook wb2 = HSSFTestDataSamples.WriteOutAndReadBack(wb1);

            wb1.Close();
            sheet     = wb2.GetSheetAt(0) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            shape = (HSSFSimpleShape)patriarch.Children[0];

            agg = HSSFTestHelper.GetEscherAggregate(patriarch);
            Assert.AreEqual(agg.GetShapeToObjMapping().Count, 2);

            shape.String = new HSSFRichTextString("string1");
            Assert.AreEqual(shape.String.String, "string1");

            Assert.IsNotNull(HSSFTestHelper.GetEscherContainer(shape).GetChildById(EscherTextboxRecord.RECORD_ID));
            Assert.AreEqual(agg.GetShapeToObjMapping().Count, 2);

            HSSFWorkbook wb3 = HSSFTestDataSamples.WriteOutAndReadBack(wb2);

            wb2.Close();

            HSSFWorkbook wb4 = HSSFTestDataSamples.WriteOutAndReadBack(wb3);

            wb3.Close();

            sheet     = wb4.GetSheetAt(0) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            shape = (HSSFSimpleShape)patriarch.Children[0];

            Assert.IsNotNull(HSSFTestHelper.GetTextObjRecord(shape));
            Assert.AreEqual(shape.String.String, "string1");
            Assert.IsNotNull(HSSFTestHelper.GetEscherContainer(shape).GetChildById(EscherTextboxRecord.RECORD_ID));
            Assert.AreEqual(agg.GetShapeToObjMapping().Count, 2);

            wb4.Close();
        }
Esempio n. 7
0
        public void TestOpt()
        {
            HSSFWorkbook wb = new HSSFWorkbook();

            // create a sheet with a text box
            HSSFSheet     sheet     = wb.CreateSheet() as HSSFSheet;
            HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch;

            HSSFTextbox     textbox = patriarch.CreateTextbox(new HSSFClientAnchor()) as HSSFTextbox;
            EscherOptRecord opt1    = HSSFTestHelper.GetOptRecord(textbox);
            EscherOptRecord opt2    = HSSFTestHelper.GetEscherContainer(textbox).GetChildById(EscherOptRecord.RECORD_ID) as EscherOptRecord;

            Assert.AreSame(opt1, opt2);
        }
Esempio n. 8
0
        public void TestClientAnchorFromScratch()
        {
            HSSFClientAnchor         anchor = new HSSFClientAnchor();
            EscherClientAnchorRecord escher = (EscherClientAnchorRecord)HSSFTestHelper.GetEscherAnchor(anchor);

            anchor.SetAnchor((short)11, 12, 13, 14, (short)15, 16, 17, 18);

            Assert.AreEqual(anchor.Col1, 11);
            Assert.AreEqual(escher.Col1, 11);
            Assert.AreEqual(anchor.Col2, 15);
            Assert.AreEqual(escher.Col2, 15);
            Assert.AreEqual(anchor.Row1, 12);
            Assert.AreEqual(escher.Row1, 12);
            Assert.AreEqual(anchor.Row2, 16);
            Assert.AreEqual(escher.Row2, 16);
            Assert.AreEqual(anchor.Dx1, 13);
            Assert.AreEqual(escher.Dx1, 13);
            Assert.AreEqual(anchor.Dx2, 17);
            Assert.AreEqual(escher.Dx2, 17);
            Assert.AreEqual(anchor.Dy1, 14);
            Assert.AreEqual(escher.Dy1, 14);
            Assert.AreEqual(anchor.Dy2, 18);
            Assert.AreEqual(escher.Dy2, 18);

            anchor.Col1 = (111);
            Assert.AreEqual(anchor.Col1, 111);
            Assert.AreEqual(escher.Col1, 111);
            anchor.Col2 = (112);
            Assert.AreEqual(anchor.Col2, 112);
            Assert.AreEqual(escher.Col2, 112);
            anchor.Row1 = (113);
            Assert.AreEqual(anchor.Row1, 113);
            Assert.AreEqual(escher.Row1, 113);
            anchor.Row2 = (114);
            Assert.AreEqual(anchor.Row2, 114);
            Assert.AreEqual(escher.Row2, 114);
            anchor.Dx1 = (115);
            Assert.AreEqual(anchor.Dx1, 115);
            Assert.AreEqual(escher.Dx1, 115);
            anchor.Dx2 = (116);
            Assert.AreEqual(anchor.Dx2, 116);
            Assert.AreEqual(escher.Dx2, 116);
            anchor.Dy1 = (117);
            Assert.AreEqual(anchor.Dy1, 117);
            Assert.AreEqual(escher.Dy1, 117);
            anchor.Dy2 = (118);
            Assert.AreEqual(anchor.Dy2, 118);
            Assert.AreEqual(escher.Dy2, 118);
        }
Esempio n. 9
0
        public void TestShapeIds()
        {
            HSSFWorkbook  wb1        = new HSSFWorkbook();
            HSSFSheet     sheet1     = wb1.CreateSheet() as HSSFSheet;
            HSSFPatriarch patriarch1 = sheet1.CreateDrawingPatriarch() as HSSFPatriarch;

            for (int i = 0; i < 2; i++)
            {
                patriarch1.CreateSimpleShape(new HSSFClientAnchor());
            }

            HSSFWorkbook wb2 = HSSFTestDataSamples.WriteOutAndReadBack(wb1);

            wb1.Close();

            sheet1     = wb2.GetSheetAt(0) as HSSFSheet;
            patriarch1 = sheet1.DrawingPatriarch as HSSFPatriarch;

            EscherAggregate agg1 = HSSFTestHelper.GetEscherAggregate(patriarch1);
            // last shape ID cached in EscherDgRecord
            EscherDgRecord dg1 =
                agg1.GetEscherContainer().GetChildById(EscherDgRecord.RECORD_ID) as EscherDgRecord;

            Assert.AreEqual(1026, dg1.LastMSOSPID);

            // iterate over shapes and check shapeId
            EscherContainerRecord spgrContainer =
                agg1.GetEscherContainer().ChildContainers[0] as EscherContainerRecord;

            // root spContainer + 2 spContainers for shapes
            Assert.AreEqual(3, spgrContainer.ChildRecords.Count);

            EscherSpRecord sp0 =
                ((EscherContainerRecord)spgrContainer.GetChild(0)).GetChildById(EscherSpRecord.RECORD_ID) as EscherSpRecord;

            Assert.AreEqual(1024, sp0.ShapeId);

            EscherSpRecord sp1 =
                ((EscherContainerRecord)spgrContainer.GetChild(1)).GetChildById(EscherSpRecord.RECORD_ID) as EscherSpRecord;

            Assert.AreEqual(1025, sp1.ShapeId);

            EscherSpRecord sp2 =
                ((EscherContainerRecord)spgrContainer.GetChild(2)).GetChildById(EscherSpRecord.RECORD_ID) as EscherSpRecord;

            Assert.AreEqual(1026, sp2.ShapeId);
            wb2.Close();
        }
Esempio n. 10
0
        public void TestCorrectOrderInSpContainer()
        {
            HSSFWorkbook  wb      = HSSFTestDataSamples.OpenSampleWorkbook("drawings.xls");
            HSSFSheet     sheet   = wb.GetSheet("pictures") as HSSFSheet;
            HSSFPatriarch drawing = sheet.DrawingPatriarch as HSSFPatriarch;

            HSSFSimpleShape rectangle = (HSSFSimpleShape)drawing.Children[0];

            Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(0).RecordId, EscherSpRecord.RECORD_ID);
            Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(1).RecordId, EscherOptRecord.RECORD_ID);
            Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(2).RecordId, EscherClientAnchorRecord.RECORD_ID);
            Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(3).RecordId, EscherClientDataRecord.RECORD_ID);

            rectangle.Anchor = (new HSSFClientAnchor());

            Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(0).RecordId, EscherSpRecord.RECORD_ID);
            Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(1).RecordId, EscherOptRecord.RECORD_ID);
            Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(2).RecordId, EscherClientAnchorRecord.RECORD_ID);
            Assert.AreEqual(HSSFTestHelper.GetEscherContainer(rectangle).GetChild(3).RecordId, EscherClientDataRecord.RECORD_ID);
        }
Esempio n. 11
0
        public void TestShapeEscherMustHaveAnchorRecord()
        {
            HSSFWorkbook wb    = new HSSFWorkbook();
            HSSFSheet    sheet = wb.CreateSheet() as HSSFSheet;

            HSSFPatriarch    drawing = sheet.CreateDrawingPatriarch() as HSSFPatriarch;
            HSSFClientAnchor anchor  = new HSSFClientAnchor(10, 10, 200, 200, (short)2, 2, (short)15, 15);

            anchor.AnchorType = (2);

            HSSFSimpleShape rectangle = drawing.CreateSimpleShape(anchor);

            rectangle.ShapeType = (HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);

            rectangle.Anchor = (anchor);

            Assert.IsNotNull(HSSFTestHelper.GetEscherAnchor(anchor));
            Assert.IsNotNull(HSSFTestHelper.GetEscherContainer(rectangle));
            Assert.IsTrue(HSSFTestHelper.GetEscherAnchor(anchor).Equals(HSSFTestHelper.GetEscherContainer(rectangle).GetChildById(EscherClientAnchorRecord.RECORD_ID)));
        }
Esempio n. 12
0
        public void TestDgContainerMustBeRootOfHSSFSheetEscherRecords()
        {
            HSSFWorkbook      wb      = HSSFTestDataSamples.OpenSampleWorkbook("47251.xls");
            HSSFSheet         sh      = wb.GetSheetAt(0) as HSSFSheet;
            InternalSheet     ish     = HSSFTestHelper.GetSheetForTest(sh);
            List <RecordBase> records = ish.Records;
            // records to be aggregated
            List <RecordBase> dgRecords = records.GetRange(19, 23 - 19);

            byte[]          dgBytes = toByteArray(dgRecords);
            IDrawing        d       = sh.DrawingPatriarch;
            EscherAggregate agg     = (EscherAggregate)ish.FindFirstRecordBySid(EscherAggregate.sid);

            Assert.AreEqual(true, agg.EscherRecords[0] is EscherContainerRecord);
            Assert.AreEqual(EscherContainerRecord.DG_CONTAINER, agg.EscherRecords[0].RecordId);
            Assert.AreEqual((short)0x0, agg.EscherRecords[0].Options);
            agg = (EscherAggregate)ish.FindFirstRecordBySid(EscherAggregate.sid);
            byte[] dgBytesAfterSave = agg.Serialize();
            Assert.AreEqual(dgBytes.Length, dgBytesAfterSave.Length, "different size of drawing data before and after save");
            Assert.IsTrue(Arrays.Equals(dgBytes, dgBytesAfterSave), "drawing data before and after save is different");
        }
Esempio n. 13
0
        public void TestRemoveShapes()
        {
            HSSFWorkbook  wb        = new HSSFWorkbook();
            HSSFSheet     sheet     = wb.CreateSheet() as HSSFSheet;
            HSSFPatriarch patriarch = sheet.CreateDrawingPatriarch() as HSSFPatriarch;

            HSSFSimpleShape rectangle = patriarch.CreateSimpleShape(new HSSFClientAnchor());

            rectangle.ShapeType = HSSFSimpleShape.OBJECT_TYPE_RECTANGLE;

            int idx = wb.AddPicture(new byte[] { 1, 2, 3 }, PictureType.JPEG);

            patriarch.CreatePicture(new HSSFClientAnchor(), idx);

            patriarch.CreateCellComment(new HSSFClientAnchor());

            HSSFPolygon polygon = patriarch.CreatePolygon(new HSSFClientAnchor());

            polygon.SetPoints(new int[] { 1, 2 }, new int[] { 2, 3 });

            patriarch.CreateTextbox(new HSSFClientAnchor());

            HSSFShapeGroup group = patriarch.CreateGroup(new HSSFClientAnchor());

            group.CreateTextbox(new HSSFChildAnchor());
            group.CreatePicture(new HSSFChildAnchor(), idx);

            Assert.AreEqual(patriarch.Children.Count, 6);
            Assert.AreEqual(group.Children.Count, 2);

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 12);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1);

            wb        = HSSFTestDataSamples.WriteOutAndReadBack(wb);
            sheet     = wb.GetSheetAt(0) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 12);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1);

            Assert.AreEqual(patriarch.Children.Count, 6);

            group = (HSSFShapeGroup)patriarch.Children[5];
            group.RemoveShape(group.Children[0]);

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 10);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1);

            wb        = HSSFTestDataSamples.WriteOutAndReadBack(wb);
            sheet     = wb.GetSheetAt(0) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 10);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1);

            group = (HSSFShapeGroup)patriarch.Children[(5)];
            patriarch.RemoveShape(group);

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 8);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1);

            wb        = HSSFTestDataSamples.WriteOutAndReadBack(wb);
            sheet     = wb.GetSheetAt(0) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 8);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1);
            Assert.AreEqual(patriarch.Children.Count, 5);

            HSSFShape shape = patriarch.Children[0];

            patriarch.RemoveShape(shape);

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 6);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1);
            Assert.AreEqual(patriarch.Children.Count, 4);

            wb        = HSSFTestDataSamples.WriteOutAndReadBack(wb);
            sheet     = wb.GetSheetAt(0) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 6);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1);
            Assert.AreEqual(patriarch.Children.Count, 4);

            HSSFPicture picture = (HSSFPicture)patriarch.Children[0];

            patriarch.RemoveShape(picture);

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 5);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1);
            Assert.AreEqual(patriarch.Children.Count, 3);

            wb        = HSSFTestDataSamples.WriteOutAndReadBack(wb);
            sheet     = wb.GetSheetAt(0) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 5);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 1);
            Assert.AreEqual(patriarch.Children.Count, 3);

            HSSFComment comment = (HSSFComment)patriarch.Children[0];

            patriarch.RemoveShape(comment);

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 3);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0);
            Assert.AreEqual(patriarch.Children.Count, 2);

            wb        = HSSFTestDataSamples.WriteOutAndReadBack(wb);
            sheet     = wb.GetSheetAt(0) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 3);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0);
            Assert.AreEqual(patriarch.Children.Count, 2);

            polygon = (HSSFPolygon)patriarch.Children[0];
            patriarch.RemoveShape(polygon);

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 2);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0);
            Assert.AreEqual(patriarch.Children.Count, 1);

            wb        = HSSFTestDataSamples.WriteOutAndReadBack(wb);
            sheet     = wb.GetSheetAt(0) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 2);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0);
            Assert.AreEqual(patriarch.Children.Count, 1);

            HSSFTextbox textbox = (HSSFTextbox)patriarch.Children[0];

            patriarch.RemoveShape(textbox);

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 0);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0);
            Assert.AreEqual(patriarch.Children.Count, 0);

            wb        = HSSFTestDataSamples.WriteOutAndReadBack(wb);
            sheet     = wb.GetSheetAt(0) as HSSFSheet;
            patriarch = sheet.DrawingPatriarch as HSSFPatriarch;

            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).GetShapeToObjMapping().Count, 0);
            Assert.AreEqual(HSSFTestHelper.GetEscherAggregate(patriarch).TailRecords.Count, 0);
            Assert.AreEqual(patriarch.Children.Count, 0);
        }
Esempio n. 14
0
        /**
         * create a rectangle, save the workbook, read back and verify that all shape properties are there
         */
        public void TestReadWriteRectangle()
        {
            HSSFWorkbook wb    = new HSSFWorkbook();
            HSSFSheet    sheet = wb.CreateSheet() as HSSFSheet;

            HSSFPatriarch    drawing = sheet.CreateDrawingPatriarch() as HSSFPatriarch;
            HSSFClientAnchor anchor  = new HSSFClientAnchor(10, 10, 50, 50, (short)2, 2, (short)4, 4);

            anchor.AnchorType = (AnchorType)(2);
            Assert.AreEqual(anchor.AnchorType, 2);

            HSSFSimpleShape rectangle = drawing.CreateSimpleShape(anchor);

            rectangle.ShapeType = (HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);
            rectangle.LineWidth = (10000);
            rectangle.FillColor = (777);
            Assert.AreEqual(rectangle.FillColor, 777);
            Assert.AreEqual(10000, rectangle.LineWidth);
            rectangle.LineStyle = (LineStyle)(10);
            Assert.AreEqual(10, rectangle.LineStyle);
            Assert.AreEqual(rectangle.WrapText, HSSFSimpleShape.WRAP_SQUARE);
            rectangle.LineStyleColor = (1111);
            rectangle.IsNoFill       = (true);
            rectangle.WrapText       = (HSSFSimpleShape.WRAP_NONE);
            rectangle.String         = (new HSSFRichTextString("teeeest"));
            Assert.AreEqual(rectangle.LineStyleColor, 1111);
            Assert.AreEqual(((EscherSimpleProperty)((EscherOptRecord)HSSFTestHelper.GetEscherContainer(rectangle).GetChildById(EscherOptRecord.RECORD_ID))
                             .Lookup(EscherProperties.TEXT__TEXTID)).PropertyValue, "teeeest".GetHashCode());
            Assert.AreEqual(rectangle.IsNoFill, true);
            Assert.AreEqual(rectangle.WrapText, HSSFSimpleShape.WRAP_NONE);
            Assert.AreEqual(rectangle.String.String, "teeeest");

            wb      = HSSFTestDataSamples.WriteOutAndReadBack(wb);
            sheet   = wb.GetSheetAt(0) as HSSFSheet;
            drawing = sheet.DrawingPatriarch as HSSFPatriarch;
            Assert.AreEqual(1, drawing.Children.Count);

            HSSFSimpleShape rectangle2 =
                (HSSFSimpleShape)drawing.Children[0];

            Assert.AreEqual(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE,
                            rectangle2.ShapeType);
            Assert.AreEqual(10000, rectangle2.LineWidth);
            Assert.AreEqual(10, (int)rectangle2.LineStyle);
            Assert.AreEqual(anchor, rectangle2.Anchor);
            Assert.AreEqual(rectangle2.LineStyleColor, 1111);
            Assert.AreEqual(rectangle2.FillColor, 777);
            Assert.AreEqual(rectangle2.IsNoFill, true);
            Assert.AreEqual(rectangle2.String.String, "teeeest");
            Assert.AreEqual(rectangle.WrapText, HSSFSimpleShape.WRAP_NONE);

            rectangle2.FillColor      = (3333);
            rectangle2.LineStyle      = (LineStyle)(9);
            rectangle2.LineStyleColor = (4444);
            rectangle2.IsNoFill       = (false);
            rectangle2.LineWidth      = (77);
            rectangle2.Anchor.Dx1     = 2;
            rectangle2.Anchor.Dx2     = 3;
            rectangle2.Anchor.Dy1     = (4);
            rectangle2.Anchor.Dy2     = (5);
            rectangle.WrapText        = (HSSFSimpleShape.WRAP_BY_POINTS);
            rectangle2.String         = (new HSSFRichTextString("test22"));

            wb      = HSSFTestDataSamples.WriteOutAndReadBack(wb);
            sheet   = wb.GetSheetAt(0) as HSSFSheet;
            drawing = sheet.DrawingPatriarch as HSSFPatriarch;
            Assert.AreEqual(1, drawing.Children.Count);
            rectangle2 = (HSSFSimpleShape)drawing.Children[0];
            Assert.AreEqual(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE, rectangle2.ShapeType);
            Assert.AreEqual(rectangle.WrapText, HSSFSimpleShape.WRAP_BY_POINTS);
            Assert.AreEqual(77, rectangle2.LineWidth);
            Assert.AreEqual(9, rectangle2.LineStyle);
            Assert.AreEqual(rectangle2.LineStyleColor, 4444);
            Assert.AreEqual(rectangle2.FillColor, 3333);
            Assert.AreEqual(rectangle2.Anchor.Dx1, 2);
            Assert.AreEqual(rectangle2.Anchor.Dx2, 3);
            Assert.AreEqual(rectangle2.Anchor.Dy1, 4);
            Assert.AreEqual(rectangle2.Anchor.Dy2, 5);
            Assert.AreEqual(rectangle2.IsNoFill, false);
            Assert.AreEqual(rectangle2.String.String, "test22");

            HSSFSimpleShape rect3 = drawing.CreateSimpleShape(new HSSFClientAnchor());

            rect3.ShapeType = (HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);
            wb = HSSFTestDataSamples.WriteOutAndReadBack(wb);

            drawing = (wb.GetSheetAt(0) as HSSFSheet).DrawingPatriarch as HSSFPatriarch;
            Assert.AreEqual(drawing.Children.Count, 2);
        }
Esempio n. 15
0
        public void TestWithoutFeatRecord()
        {
            HSSFWorkbook hssf =
                HSSFTestDataSamples.OpenSampleWorkbook("46136-WithWarnings.xls");
            InternalWorkbook wb = HSSFTestHelper.GetWorkbookForTest(hssf);

            Assert.AreEqual(1, hssf.NumberOfSheets);

            int countFR  = 0;
            int countFRH = 0;

            // Check on the workbook, but shouldn't be there!
            foreach (Record r in wb.Records)
            {
                if (r is FeatRecord)
                {
                    countFR++;
                }
                else if (r.Sid == FeatRecord.sid)
                {
                    countFR++;
                }
                if (r is FeatHdrRecord)
                {
                    countFRH++;
                }
                else if (r.Sid == FeatHdrRecord.sid)
                {
                    countFRH++;
                }
            }

            Assert.AreEqual(0, countFR);
            Assert.AreEqual(0, countFRH);

            // Now check on the sheet
            HSSFSheet     s     = (HSSFSheet)hssf.GetSheetAt(0);
            InternalSheet sheet = HSSFTestHelper.GetSheetForTest(s);

            foreach (RecordBase rb in sheet.Records)
            {
                if (rb is Record)
                {
                    Record r = (Record)rb;
                    if (r is FeatRecord)
                    {
                        countFR++;
                    }
                    else if (r.Sid == FeatRecord.sid)
                    {
                        countFR++;
                    }
                    if (r is FeatHdrRecord)
                    {
                        countFRH++;
                    }
                    else if (r.Sid == FeatHdrRecord.sid)
                    {
                        countFRH++;
                    }
                }
            }

            Assert.AreEqual(0, countFR);
            Assert.AreEqual(0, countFRH);
        }
Esempio n. 16
0
        public void TestReadFeatRecord()
        {
            HSSFWorkbook hssf =
                HSSFTestDataSamples.OpenSampleWorkbook("46136-NoWarnings.xls");
            InternalWorkbook wb = HSSFTestHelper.GetWorkbookForTest(hssf);

            FeatRecord    fr  = null;
            FeatHdrRecord fhr = null;

            Assert.AreEqual(1, hssf.NumberOfSheets);

            // First check it isn't on the Workbook
            int countFR  = 0;
            int countFRH = 0;

            foreach (Record r in wb.Records)
            {
                if (r is FeatRecord)
                {
                    fr = (FeatRecord)r;
                    countFR++;
                }
                else if (r.Sid == FeatRecord.sid)
                {
                    Assert.Fail("FeatRecord SID found but not Created correctly!");
                }
                if (r is FeatHdrRecord)
                {
                    countFRH++;
                }
                else if (r.Sid == FeatHdrRecord.sid)
                {
                    Assert.Fail("FeatHdrRecord SID found but not Created correctly!");
                }
            }

            Assert.AreEqual(0, countFR);
            Assert.AreEqual(0, countFRH);

            // Now find it on our sheet
            HSSFSheet     s     = (HSSFSheet)hssf.GetSheetAt(0);
            InternalSheet sheet = HSSFTestHelper.GetSheetForTest(s);

            foreach (RecordBase rb in sheet.Records)
            {
                if (rb is Record)
                {
                    Record r = (Record)rb;
                    if (r is FeatRecord)
                    {
                        fr = (FeatRecord)r;
                        countFR++;
                    }
                    else if (r.Sid == FeatRecord.sid)
                    {
                        countFR++;
                    }
                    if (r is FeatHdrRecord)
                    {
                        fhr = (FeatHdrRecord)r;
                        countFRH++;
                    }
                    else if (r.Sid == FeatHdrRecord.sid)
                    {
                        countFRH++;
                    }
                }
            }

            Assert.AreEqual(1, countFR);
            Assert.AreEqual(1, countFRH);
            Assert.IsNotNull(fr);
            Assert.IsNotNull(fhr);

            // Now check the contents are as expected
            Assert.AreEqual(
                FeatHdrRecord.SHAREDFEATURES_ISFFEC2,
                fr.Isf_sharedFeatureType
                );

            // Applies to one cell only
            Assert.AreEqual(1, fr.CellRefs.Length);
            Assert.AreEqual(0, fr.CellRefs[0].FirstRow);
            Assert.AreEqual(0, fr.CellRefs[0].LastRow);
            Assert.AreEqual(0, fr.CellRefs[0].FirstColumn);
            Assert.AreEqual(0, fr.CellRefs[0].LastColumn);

            // More Checking of shared features stuff
            Assert.AreEqual(4, fr.CbFeatData);
            Assert.AreEqual(4, fr.SharedFeature.DataSize);
            Assert.AreEqual(typeof(FeatFormulaErr2), fr.SharedFeature.GetType());

            FeatFormulaErr2 fferr2 = (FeatFormulaErr2)fr.SharedFeature;

            Assert.AreEqual(0x04, fferr2.RawErrorCheckValue);

            Assert.IsFalse(fferr2.CheckCalculationErrors);
            Assert.IsFalse(fferr2.CheckDateTimeFormats);
            Assert.IsFalse(fferr2.CheckEmptyCellRef);
            Assert.IsFalse(fferr2.CheckInconsistentFormulas);
            Assert.IsFalse(fferr2.CheckInconsistentRanges);
            Assert.IsTrue(fferr2.CheckNumbersAsText);
            Assert.IsFalse(fferr2.CheckUnprotectedFormulas);
            Assert.IsFalse(fferr2.PerformDataValidation);
        }