fcl-db: tests: unify test with others

git-svn-id: trunk@29182 -
This commit is contained in:
lacak 2014-11-29 17:52:50 +00:00
parent 2d4288c5d9
commit 2bf0abcdfa

View File

@ -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));