Преглед изворни кода

* Patch from Mantis #22105 by Lacak2 that improves oldvalue testing.

git-svn-id: trunk@21365 -
marco пре 13 година
родитељ
комит
9e5316afd1
1 измењених фајлова са 21 додато и 6 уклоњено
  1. 21 6
      packages/fcl-db/tests/testdbbasics.pas

+ 21 - 6
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;