mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-09-27 10:09:26 +02:00
fcl-db: tests: unify test with others
git-svn-id: trunk@29182 -
This commit is contained in:
parent
2d4288c5d9
commit
2bf0abcdfa
@ -24,7 +24,10 @@ type
|
||||
procedure TestSQLFieldType(ADatatype: TFieldType; ASQLTypeDecl: string;
|
||||
ADataSize: integer; AGetSQLTextProc: TGetSQLTextProc;
|
||||
ACheckFieldValueProc: TCheckFieldValueProc);
|
||||
procedure TestXXParamQuery(ADatatype : TFieldType; ASQLTypeDecl : string; testValuesCount : integer; Cross : boolean = false);
|
||||
procedure TestXXParamQuery(ADataType : TFieldType; ASQLTypeDecl : string;
|
||||
ParamValuesCount : integer); overload;
|
||||
procedure TestXXParamQuery(ADataType : TFieldType; ASQLTypeDecl : string;
|
||||
ParamValuesCount : integer; const ParamValues: array of string; Cross : boolean = False); overload;
|
||||
procedure TestSetBlobAsParam(asWhat : integer);
|
||||
protected
|
||||
procedure SetUp; override;
|
||||
@ -83,6 +86,7 @@ type
|
||||
procedure TestTimeParamQuery;
|
||||
procedure TestDateTimeParamQuery;
|
||||
procedure TestFmtBCDParamQuery;
|
||||
Procedure TestFmtBCDParamQuery2; // Bug 27077
|
||||
procedure TestFloatParamQuery;
|
||||
procedure TestCurrencyParamQuery;
|
||||
procedure TestBCDParamQuery;
|
||||
@ -90,7 +94,6 @@ type
|
||||
procedure TestVarBytesParamQuery;
|
||||
procedure TestBooleanParamQuery;
|
||||
procedure TestBlobParamQuery;
|
||||
Procedure TestFmtBCDParamQuery2; // Bug 27077
|
||||
|
||||
procedure TestSetBlobAsMemoParam;
|
||||
procedure TestSetBlobAsBlobParam;
|
||||
@ -1489,7 +1492,14 @@ end;
|
||||
|
||||
procedure TTestFieldTypes.TestFmtBCDParamQuery;
|
||||
begin
|
||||
TestXXParamQuery(ftFMTBcd,FieldtypeDefinitions[ftFMTBcd],testValuesCount);
|
||||
TestXXParamQuery(ftFMTBcd, FieldtypeDefinitions[ftFMTBcd], testValuesCount, testFmtBCDValues);
|
||||
end;
|
||||
|
||||
Procedure TTestFieldTypes.TestFmtBCDParamQuery2;
|
||||
begin
|
||||
// This test tests FmtBCD params with smaller precision, which fits into INT32
|
||||
// TestFmtBCDParamQuery tests FmtBCD params with bigger precision, which fits into INT64
|
||||
TestXXParamQuery(ftFMTBcd, 'NUMERIC(9,5)', 2, ['1234','1234.56781']);
|
||||
end;
|
||||
|
||||
procedure TTestFieldTypes.TestDateParamQuery;
|
||||
@ -1499,7 +1509,7 @@ end;
|
||||
|
||||
procedure TTestFieldTypes.TestCrossStringDateParam;
|
||||
begin
|
||||
TestXXParamQuery(ftDate,FieldtypeDefinitions[ftDate],testDateValuesCount,True);
|
||||
TestXXParamQuery(ftDate,FieldtypeDefinitions[ftDate],testDateValuesCount,[],True);
|
||||
end;
|
||||
|
||||
procedure TTestFieldTypes.TestTimeParamQuery;
|
||||
@ -1530,12 +1540,12 @@ end;
|
||||
|
||||
procedure TTestFieldTypes.TestBytesParamQuery;
|
||||
begin
|
||||
TestXXParamQuery(ftBytes, FieldtypeDefinitions[ftBytes], testBytesValuesCount, true);
|
||||
TestXXParamQuery(ftBytes, FieldtypeDefinitions[ftBytes], testBytesValuesCount, [], True);
|
||||
end;
|
||||
|
||||
procedure TTestFieldTypes.TestVarBytesParamQuery;
|
||||
begin
|
||||
TestXXParamQuery(ftVarBytes, FieldtypeDefinitions[ftVarBytes], testVarBytesValuesCount, not(SQLServerType in [ssMSSQL, ssSybase]));
|
||||
TestXXParamQuery(ftVarBytes, FieldtypeDefinitions[ftVarBytes], testVarBytesValuesCount, [], not(SQLServerType in [ssMSSQL, ssSybase]));
|
||||
end;
|
||||
|
||||
procedure TTestFieldTypes.TestBooleanParamQuery;
|
||||
@ -1548,30 +1558,7 @@ begin
|
||||
TestXXParamQuery(ftBlob, FieldtypeDefinitions[ftBlob], testBlobValuesCount);
|
||||
end;
|
||||
|
||||
Procedure TTestFieldTypes.TestFmtBCDParamQuery2;
|
||||
begin
|
||||
// This test tests FmtBCD params with smaller precision, which fits into INT32
|
||||
// TestFmtBCDParamQuery tests FmtBCD params with bigger precision, which fits into INT64
|
||||
with TSQLDBConnector(DBConnector) do
|
||||
begin
|
||||
Connection.ExecuteDirect('create table FPDEV2 (ID INT, FIELD1 NUMERIC (9,5))');
|
||||
CommitDDL;
|
||||
with Query do
|
||||
begin
|
||||
SQL.Text:='insert into FPDEV2 (ID,FIELD1) values (:id,:field1)';
|
||||
ParamByName('id').AsInteger := 1;
|
||||
ParamByName('field1').AsFMTBCD := DoubleToBCD(1234.56781);
|
||||
ExecSQL;
|
||||
SQL.Text:='select * from FPDEV2 where (id=1) and (field1=1234.56781)';
|
||||
Open;
|
||||
AssertEquals(1234.56781, Fields[1].AsFloat);
|
||||
Close;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TTestFieldTypes.TestStringParamQuery;
|
||||
|
||||
begin
|
||||
TestXXParamQuery(ftString,'VARCHAR(10)',testValuesCount);
|
||||
end;
|
||||
@ -1581,8 +1568,14 @@ begin
|
||||
TestXXParamQuery(ftFixedChar,'CHAR(10)',testValuesCount);
|
||||
end;
|
||||
|
||||
procedure TTestFieldTypes.TestXXParamQuery(ADataType : TFieldType; ASQLTypeDecl : string;
|
||||
ParamValuesCount : integer);
|
||||
begin
|
||||
TestXXParamQuery(ADataType, ASQLTypeDecl, ParamValuesCount, [], False);
|
||||
end;
|
||||
|
||||
procedure TTestFieldTypes.TestXXParamQuery(ADatatype : TFieldType; ASQLTypeDecl : string; testValuesCount : integer; Cross : boolean = false);
|
||||
procedure TTestFieldTypes.TestXXParamQuery(ADataType : TFieldType; ASQLTypeDecl : string;
|
||||
ParamValuesCount : integer; const ParamValues: array of string; Cross : boolean = False);
|
||||
|
||||
var i : integer;
|
||||
|
||||
@ -1604,7 +1597,7 @@ begin
|
||||
if ADataType=ftFixedChar then
|
||||
Params.ParamByName('field1').DataType := ftFixedChar;
|
||||
|
||||
for i := 0 to testValuesCount -1 do
|
||||
for i := 0 to ParamValuesCount-1 do
|
||||
begin
|
||||
Params.ParamByName('id').AsInteger := i;
|
||||
case ADataType of
|
||||
@ -1623,7 +1616,7 @@ begin
|
||||
else
|
||||
Params.ParamByName('field1').AsDate := StrToDate(testDateValues[i],'yyyy/mm/dd','-');
|
||||
ftDateTime: Params.ParamByName('field1').AsDateTime := StrToDateTime(testValues[ADataType,i], DBConnector.FormatSettings);
|
||||
ftFMTBcd : Params.ParamByName('field1').AsFMTBCD := StrToBCD(testFmtBCDValues[i], DBConnector.FormatSettings);
|
||||
ftFMTBcd : Params.ParamByName('field1').AsFMTBCD := StrToBCD(ParamValues[i], DBConnector.FormatSettings);
|
||||
ftBlob : Params.ParamByName('field1').AsBlob := testBlobValues[i];
|
||||
ftBytes : if cross then
|
||||
Params.ParamByName('field1').Value := StringToByteArray(testBytesValues[i])
|
||||
@ -1639,7 +1632,7 @@ begin
|
||||
ExecSQL;
|
||||
end;
|
||||
// test NULL parameter value
|
||||
Params.ParamByName('id').AsInteger := testValuesCount;
|
||||
Params.ParamByName('id').AsInteger := ParamValuesCount;
|
||||
Params.ParamByName('field1').Clear;
|
||||
ExecSQL;
|
||||
|
||||
@ -1649,7 +1642,7 @@ begin
|
||||
sql.append('select * from FPDEV2 order by ID');
|
||||
open;
|
||||
|
||||
for i := 0 to testValuesCount -1 do
|
||||
for i := 0 to ParamValuesCount-1 do
|
||||
begin
|
||||
AssertEquals(i,FieldByName('ID').AsInteger);
|
||||
case ADataType of
|
||||
@ -1665,7 +1658,7 @@ begin
|
||||
ftTime : AssertEquals(testTimeValues[i],DateTimeToTimeString(FieldByName('FIELD1').AsDateTime));
|
||||
ftDate : AssertEquals(testDateValues[i],DateTimeToStr(FieldByName('FIELD1').AsDateTime, DBConnector.FormatSettings));
|
||||
ftDateTime : AssertEquals(testValues[ADataType,i], DateTimeToStr(FieldByName('FIELD1').AsDateTime, DBConnector.FormatSettings));
|
||||
ftFMTBcd : AssertEquals(testFmtBCDValues[i], BCDToStr(FieldByName('FIELD1').AsBCD, DBConnector.FormatSettings));
|
||||
ftFMTBcd : AssertEquals(ParamValues[i], BCDToStr(FieldByName('FIELD1').AsBCD, DBConnector.FormatSettings));
|
||||
ftBlob : AssertEquals(testBlobValues[i], FieldByName('FIELD1').AsString);
|
||||
ftVarBytes,
|
||||
ftBytes : AssertEquals(testBytesValues[i], shortstring(FieldByName('FIELD1').AsString));
|
||||
|
Loading…
Reference in New Issue
Block a user