fpspreadsheet: Modify write/read tests for numbers and dates to support any file format. BIFF5 passed.

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@2980 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
wp_xxyyzz
2014-04-30 21:22:19 +00:00
parent 70f1d5c5e8
commit f478cb4597
2 changed files with 44 additions and 14 deletions

View File

@ -198,16 +198,18 @@ type
{ TSpreadWriteReadDateTests }
//Write to xls/xml file and read back
TSpreadWriteReadDateTests= class(TTestCase)
TSpreadWriteReadDateTests = class(TTestCase)
private
protected
// Set up expected values:
procedure SetUp; override;
procedure TearDown; override;
published
// Reads dates, date/time and time values from spreadsheet and checks against list
// One cell per test so some tests can fail and those further below may still work
procedure TestWriteReadDates;
procedure TestWriteReadDates(AFormat: TsSpreadsheetFormat);
published
procedure TestWriteReadDates_BIFF5;
procedure TestWriteReadDates_BIFF8;
end;
@ -281,7 +283,7 @@ begin
inherited TearDown;
end;
procedure TSpreadWriteReadDateTests.TestWriteReadDates;
procedure TSpreadWriteReadDateTests.TestWriteReadDates(AFormat: TsSpreadsheetFormat);
var
MyWorksheet: TsWorksheet;
MyWorkbook: TsWorkbook;
@ -305,13 +307,16 @@ begin
Fail('Failed writing date time for cell '+CellNotation(MyWorkSheet,Row));
CheckEquals(SollDates[Row],ActualDateTime,'Test date/time value mismatch cell '+CellNotation(MyWorksheet,Row));
end;
MyWorkBook.WriteToFile(TempFile,sfExcel8,true);
MyWorkBook.WriteToFile(TempFile, AFormat, true);
MyWorkbook.Free;
// Open the spreadsheet, as biff8
MyWorkbook := TsWorkbook.Create;
MyWorkbook.ReadFromFile(TempFile, sfExcel8);
MyWorksheet:=GetWorksheetByName(MyWorkBook,DatesSheet);
MyWorkbook.ReadFromFile(TempFile, AFormat);
if AFormat = sfExcel2 then
MyWorksheet := MyWorkbook.GetFirstWorksheet
else
MyWorksheet := GetWorksheetByName(MyWorkBook,DatesSheet);
if MyWorksheet=nil then
fail('Error in test code. Failed to get named worksheet');
@ -328,6 +333,16 @@ begin
DeleteFile(TempFile);
end;
procedure TSpreadWriteReadDateTests.TestWriteReadDates_BIFF5;
begin
TestWriteReadDates(sfExcel5);
end;
procedure TSpreadWriteReadDateTests.TestWriteReadDates_BIFF8;
begin
TestWriteReadDates(sfExcel8);
end;
procedure TSpreadReadDateTests.TestReadDate(FileName: string; Row: integer);
var
MyWorksheet: TsWorksheet;

View File

@ -91,10 +91,12 @@ type
// Set up expected values:
procedure SetUp; override;
procedure TearDown; override;
published
// Reads numbers values from spreadsheet and checks against list
// One cell per test so some tests can fail and those further below may still work
procedure TestWriteReadNumbers;
procedure TestWriteReadNumbers(AFormat: TsSpreadsheetFormat);
published
procedure TestWriteReadNumbers_BIFF5;
procedure TestWriteReadNumbers_BIFF8;
end;
@ -149,7 +151,7 @@ begin
inherited TearDown;
end;
procedure TSpreadWriteReadNumberTests.TestWriteReadNumbers;
procedure TSpreadWriteReadNumberTests.TestWriteReadNumbers(AFormat: TsSpreadsheetFormat);
var
MyWorksheet: TsWorksheet;
MyWorkbook: TsWorkbook;
@ -165,7 +167,7 @@ begin
}
// Write out all test values
MyWorkbook := TsWorkbook.Create;
MyWorkSheet:=MyWorkBook.AddWorksheet(NumbersSheet);
MyWorkSheet := MyWorkBook.AddWorksheet(NumbersSheet);
for Row := Low(SollNumbers) to High(SollNumbers) do
begin
MyWorkSheet.WriteNumber(Row,0,SollNumbers[Row]);
@ -173,13 +175,16 @@ begin
ActualNumber:=MyWorkSheet.ReadAsNumber(Row,0);
CheckEquals(SollNumbers[Row],ActualNumber,'Test value mismatch cell '+CellNotation(MyWorkSheet,Row));
end;
MyWorkBook.WriteToFile(TempFile,sfExcel8,true);
MyWorkBook.WriteToFile(TempFile, AFormat, true);
MyWorkbook.Free;
// Open the spreadsheet, as biff8
MyWorkbook := TsWorkbook.Create;
MyWorkbook.ReadFromFile(TempFile, sfExcel8);
MyWorksheet:=GetWorksheetByName(MyWorkBook,NumbersSheet);
MyWorkbook.ReadFromFile(TempFile, AFormat);
if AFormat = sfExcel2 then
MyWorksheet := MyWorkbook.GetFirstWorksheet
else
MyWorksheet := GetWorksheetByName(MyWorkBook,NumbersSheet);
if MyWorksheet=nil then
fail('Error in test code. Failed to get named worksheet');
@ -195,6 +200,16 @@ begin
DeleteFile(TempFile);
end;
procedure TSpreadWriteReadNumberTests.TestWriteReadNumbers_BIFF5;
begin
TestWriteReadNumbers(sfExcel5);
end;
procedure TSpreadWriteReadNumberTests.TestWriteReadNumbers_BIFF8;
begin
TestWriteReadNumbers(sfExcel8);
end;
procedure TSpreadReadNumberTests.TestReadNumber(FileName: string; Row: integer);
var
MyWorksheet: TsWorksheet;