From 9e5316afd1658c9e0b89b0ca9a663083aa17cda0 Mon Sep 17 00:00:00 2001 From: marco Date: Wed, 23 May 2012 06:49:49 +0000 Subject: [PATCH] * Patch from Mantis #22105 by Lacak2 that improves oldvalue testing. git-svn-id: trunk@21365 - --- packages/fcl-db/tests/testdbbasics.pas | 27 ++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/packages/fcl-db/tests/testdbbasics.pas b/packages/fcl-db/tests/testdbbasics.pas index 458f3e0cc9..a77c9c3c28 100644 --- a/packages/fcl-db/tests/testdbbasics.pas +++ b/packages/fcl-db/tests/testdbbasics.pas @@ -612,13 +612,28 @@ begin end; procedure TTestCursorDBBasics.TestOldValue; -var v : variant; - bufds: TDataset; begin - bufds := DBConnector.GetNDataset(0) as TDataset; - bufds.Open; - bufds.InsertRecord([0,'name']); - v := VarToStr(bufds.fields[1].OldValue); + with DBConnector.GetNDataset(1) as TDataset do + begin; + Open; + First; + CheckEquals('1', VarToStr(Fields[0].OldValue), 'Original value'); // unmodified original value + CheckTrue(UpdateStatus=usUnmodified, 'Unmodified'); + + Edit; + Fields[0].AsInteger := -1; + CheckEquals('1', VarToStr(Fields[0].OldValue), 'Editing'); // dsEdit, there is no update-buffer yet + Post; + CheckEquals('1', VarToStr(Fields[0].OldValue), 'Edited'); // there is already update-buffer + CheckTrue(UpdateStatus=usModified, 'Modified'); + + Append; + Fields[0].AsInteger := -2; + CheckTrue(VarIsNull(Fields[0].OldValue), 'Inserting'); // dsInsert, there is no update-buffer yet + Post; + CheckTrue(VarIsNull(Fields[0].OldValue), 'Inserted'); // there is already update-buffer + CheckTrue(UpdateStatus=usInserted, 'Inserted'); + end; end; procedure TTestDBBasics.TestCanModifySpecialFields;