mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-13 09:59:08 +02:00
fcl-db: tests: add more cases into test
git-svn-id: trunk@27126 -
This commit is contained in:
parent
2d8c0942c7
commit
28e0a453c7
@ -921,7 +921,7 @@ end;
|
|||||||
|
|
||||||
procedure TTestCursorDBBasics.TestFieldOldValueObsolete;
|
procedure TTestCursorDBBasics.TestFieldOldValueObsolete;
|
||||||
var v : variant;
|
var v : variant;
|
||||||
bufds: TDataset;
|
ds: TDataset;
|
||||||
begin
|
begin
|
||||||
// this test was created as reaction to AV bug found in TCustomBufDataset.GetFieldData
|
// this test was created as reaction to AV bug found in TCustomBufDataset.GetFieldData
|
||||||
// when retrieving OldValue (State=dsOldValue) of newly inserted or appended record.
|
// when retrieving OldValue (State=dsOldValue) of newly inserted or appended record.
|
||||||
@ -932,17 +932,19 @@ begin
|
|||||||
// but next to it was restored back also original test.
|
// but next to it was restored back also original test.
|
||||||
// So now we have two tests which test same thing, where this 'old' one is subset of 'new' one
|
// So now we have two tests which test same thing, where this 'old' one is subset of 'new' one
|
||||||
// Ideal solution would be remove this 'old' test as it does not test anything what is not tested elsewhere ...
|
// Ideal solution would be remove this 'old' test as it does not test anything what is not tested elsewhere ...
|
||||||
bufds := DBConnector.GetNDataset(0) as TDataset;
|
ds := DBConnector.GetNDataset(0) as TDataset;
|
||||||
bufds.Open;
|
ds.Open;
|
||||||
bufds.InsertRecord([0,'name']);
|
ds.InsertRecord([0,'name']);
|
||||||
v := VarToStr(bufds.fields[1].OldValue);
|
v := VarToStr(ds.Fields[1].OldValue);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TTestCursorDBBasics.TestFieldOldValue;
|
procedure TTestCursorDBBasics.TestFieldOldValue;
|
||||||
var OldValue: string;
|
var ds: TDataSet;
|
||||||
|
OldValue: string;
|
||||||
Fmemo: TField;
|
Fmemo: TField;
|
||||||
begin
|
begin
|
||||||
with DBConnector.GetFieldDataset as TCustomBufDataset do
|
ds := DBConnector.GetFieldDataset;
|
||||||
|
with ds do
|
||||||
begin;
|
begin;
|
||||||
Open;
|
Open;
|
||||||
First;
|
First;
|
||||||
@ -979,9 +981,13 @@ begin
|
|||||||
CheckEquals(OldValue, Fmemo.OldValue, 'Memo.OldValue before Post');
|
CheckEquals(OldValue, Fmemo.OldValue, 'Memo.OldValue before Post');
|
||||||
Post;
|
Post;
|
||||||
CheckEquals(OldValue, Fmemo.OldValue, 'Memo.OldValue after Post');
|
CheckEquals(OldValue, Fmemo.OldValue, 'Memo.OldValue after Post');
|
||||||
MergeChangeLog;
|
|
||||||
CheckEquals('Changed Memo value', Fmemo.OldValue, 'Memo.OldValue after MergeChangeLog');
|
|
||||||
end;
|
end;
|
||||||
|
if ds is TCustomBufDataset then
|
||||||
|
with ds as TCustomBufDataset do
|
||||||
|
begin
|
||||||
|
MergeChangeLog;
|
||||||
|
CheckEquals('Changed Memo value', Fmemo.OldValue, 'Memo.OldValue after MergeChangeLog');
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TTestCursorDBBasics.TestChangeBlobFieldBeforePost;
|
procedure TTestCursorDBBasics.TestChangeBlobFieldBeforePost;
|
||||||
@ -989,24 +995,34 @@ procedure TTestCursorDBBasics.TestChangeBlobFieldBeforePost;
|
|||||||
// Bug 15376
|
// Bug 15376
|
||||||
// See also TTestFieldTypes.TestChangeBlob
|
// See also TTestFieldTypes.TestChangeBlob
|
||||||
var
|
var
|
||||||
DS : TBufDataset;
|
Fmemo: TField;
|
||||||
begin
|
begin
|
||||||
DS := TBufDataset.Create(nil);
|
with DBConnector.GetFieldDataset do
|
||||||
DS.FieldDefs.Add('ID',ftInteger);
|
|
||||||
DS.FieldDefs.Add('NAME',ftString,50);
|
|
||||||
DS.FIeldDefs.Add('MEMO1',ftMemo);
|
|
||||||
DS.CreateDataset;
|
|
||||||
DS.Open;
|
|
||||||
with DS do
|
|
||||||
begin
|
begin
|
||||||
|
Open;
|
||||||
Append;
|
Append;
|
||||||
FieldByName('ID').AsInteger:=1;
|
Fmemo := FieldByName('FMEMO');
|
||||||
FieldByName('NAME').AsString:='NAME1';
|
CheckTrue(Fmemo.IsNull, 'IsNull after Append');
|
||||||
FieldByName('MEMO1').AsString:='NAME1';
|
|
||||||
CheckEquals('NAME1',FieldByName('MEMO1').AsString,'Memo field must match before post');
|
Fmemo.AsString:='MEMO1';
|
||||||
|
CheckFalse(Fmemo.IsNull, 'IsNull after change');
|
||||||
|
CheckEquals('MEMO1', Fmemo.AsString);
|
||||||
|
|
||||||
|
Fmemo.Clear;
|
||||||
|
CheckTrue(Fmemo.IsNull, 'IsNull after Clear');
|
||||||
|
|
||||||
|
Fmemo.AsString:='MEMO2';
|
||||||
|
CheckEquals('MEMO2', Fmemo.AsString);
|
||||||
|
|
||||||
|
Fmemo.AsString:='';
|
||||||
|
CheckTrue(Fmemo.IsNull, 'IsNull');
|
||||||
|
|
||||||
|
Fmemo.AsString:='MEMO3';
|
||||||
|
CheckEquals('MEMO3', Fmemo.AsString);
|
||||||
Post;
|
Post;
|
||||||
|
CheckEquals('MEMO3', Fmemo.AsString);
|
||||||
|
Close;
|
||||||
end;
|
end;
|
||||||
DS.Close;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TTestDBBasics.TestSetFieldValues;
|
procedure TTestDBBasics.TestSetFieldValues;
|
||||||
|
Loading…
Reference in New Issue
Block a user