* add bufdataset to test framework, Mantis #20081, patch by bigchimp

git-svn-id: trunk@19495 -
This commit is contained in:
marco 2011-10-15 16:09:54 +00:00
parent 293f09e41d
commit 43e9ffca3b
5 changed files with 125 additions and 2 deletions

1
.gitattributes vendored
View File

@ -1982,6 +1982,7 @@ packages/fcl-db/tests/Makefile.fpc -text
packages/fcl-db/tests/README.txt svneol=native#text/plain
packages/fcl-db/tests/XMLXSDExportTest.lpi svneol=native#text/plain
packages/fcl-db/tests/XMLXSDExportTest.lpr svneol=native#text/plain
packages/fcl-db/tests/bufdatasettoolsunit.pas svneol=native#text/plain
packages/fcl-db/tests/database.ini.txt svneol=native#text/plain
packages/fcl-db/tests/dbfexporttest.lpi svneol=native#text/plain
packages/fcl-db/tests/dbfexporttest.lpr svneol=native#text/plain

View File

@ -0,0 +1,118 @@
unit BufDatasetToolsUnit;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, toolsunit,
db,
BufDataset;
type
{ TbufdatasetConnector }
TbufdatasetDBConnector = class(TDBConnector)
protected
procedure CreateNDatasets; override;
procedure CreateFieldDataset; override;
procedure DropNDatasets; override;
procedure DropFieldDataset; override;
Function InternalGetNDataset(n : integer) : TDataset; override;
Function InternalGetFieldDataset : TDataSet; override;
end;
implementation
{ TbufdatasetDBConnector }
procedure TbufdatasetDBConnector.CreateNDatasets;
begin
// All datasets only exist in memory, so nothing has to be done
end;
procedure TbufdatasetDBConnector.CreateFieldDataset;
begin
// All datasets only exist in memory, so nothing has to be done
end;
procedure TbufdatasetDBConnector.DropNDatasets;
begin
// All datasets only exist in memory, so nothing has to be done
end;
procedure TbufdatasetDBConnector.DropFieldDataset;
begin
// All datasets only exist in memory, so nothing has to be done
end;
function TbufdatasetDBConnector.InternalGetNDataset(n: integer): TDataset;
var BufDataset : TBufDataset;
i : integer;
begin
BufDataset := TBufDataset.Create(nil);
BufDataset.FieldDefs.Add('ID',ftInteger);
BufDataset.FieldDefs.Add('NAME',ftString,50);
BufDataset.CreateDataset;
BufDataset.Open;
for i := 1 to n do
begin
BufDataset.Append;
BufDataset.FieldByName('ID').AsInteger := i;
BufDataset.FieldByName('NAME').AsString := 'TestName' + inttostr(i);
BufDataset.Post;
end;
BufDataset.Close;
Result := BufDataset;
end;
function TbufdatasetDBConnector.InternalGetFieldDataset : TDataSet;
var BufDataset : TBufDataset;
i : integer;
begin
BufDataset := TBufDataset.Create(nil);
with BufDataset do
begin
//todo: this is based on memds.
//check and add bufdataset supported fields
FieldDefs.Add('ID',ftInteger);
FieldDefs.Add('FSTRING',ftString,10);
FieldDefs.Add('FSMALLINT',ftSmallint);
FieldDefs.Add('FINTEGER',ftInteger);
// FieldDefs.Add('FWORD',ftWord);
FieldDefs.Add('FBOOLEAN',ftBoolean);
FieldDefs.Add('FFLOAT',ftFloat);
// FieldDefs.Add('FCURRENCY',ftCurrency);
// FieldDefs.Add('FBCD',ftBCD);
FieldDefs.Add('FDATE',ftDate);
FieldDefs.Add('FTIME',ftTime);
FieldDefs.Add('FDATETIME',ftDateTime);
FieldDefs.Add('FLARGEINT',ftLargeint);
CreateDataset;
Open;
for i := 0 to testValuesCount-1 do
begin
Append;
FieldByName('ID').AsInteger := i;
FieldByName('FSTRING').AsString := testStringValues[i];
FieldByName('FSMALLINT').AsInteger := testSmallIntValues[i];
FieldByName('FINTEGER').AsInteger := testIntValues[i];
FieldByName('FBOOLEAN').AsBoolean := testBooleanValues[i];
FieldByName('FFLOAT').AsFloat := testFloatValues[i];
ShortDateFormat := 'yyyy-mm-dd';
FieldByName('FDATE').AsDateTime := StrToDate(testDateValues[i]);
FieldByName('FLARGEINT').AsLargeInt := testLargeIntValues[i];
Post;
end;
Close;
end;
Result := BufDataset;
end;
initialization
RegisterClass(TbufdatasetDBConnector);
end.

View File

@ -10,7 +10,6 @@ type=interbase
; PostgreSQL database:
[postgresql]
; The connector specifies the DB-component that has to be used. The 'sql'
; connector tests the SQLDB components
connector=sql
@ -105,3 +104,7 @@ name=/tmp
; MemDS in memory dataset:
[memds]
connector=memds
; BufDataset in memory dataset:
[bufdataset]
connector=bufdataset

View File

@ -14,6 +14,7 @@ uses
// List of supported database-connectors
sqldbtoolsunit,
dbftoolsunit,
bufdatasettoolsunit,
memdstoolsunit,
SdfDSToolsUnit,
// Units wich contains the tests

View File

@ -330,7 +330,7 @@ begin
DBConnectorClass := GetClass('T'+dbconnectorname+'DBConnector');
if assigned(DBConnectorClass) then
DBConnector := TDBConnectorClass(DBConnectorClass).create
else Raise Exception.Create('Unknown db-connector specified');
else Raise Exception.Create('Unknown db-connector specified: ' + 'T'+dbconnectorname+'DBConnector');
inc(DBConnectorRefCount);
end;