Esempio n. 1
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. 2
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. 3
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);
        }