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"); }
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); }
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); }