From 55352b6def83978b05cc18c0c57b43db0d23b2ee Mon Sep 17 00:00:00 2001 From: joost Date: Sun, 23 Nov 2008 17:18:23 +0000 Subject: [PATCH] * Added TestDeleteDoubleDelete * Improved check of a streamed dataset definition git-svn-id: trunk@12221 - --- packages/fcl-db/tests/testdbbasics.pas | 49 +++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/packages/fcl-db/tests/testdbbasics.pas b/packages/fcl-db/tests/testdbbasics.pas index bedb2bd42c..abcee4aee5 100644 --- a/packages/fcl-db/tests/testdbbasics.pas +++ b/packages/fcl-db/tests/testdbbasics.pas @@ -95,6 +95,7 @@ type procedure TestEofAfterFirst; //bug 7211 procedure TestBufDatasetCancelUpd1; procedure TestMultipleDeleteUpdateBuffer; + procedure TestDoubleDelete; procedure TestDoubleClose; procedure TestCalculatedField; procedure TestAssignFieldftString; @@ -945,16 +946,20 @@ begin end; procedure TTestDBBasics.FTestXMLDatasetDefinition(ADataset: TDataset); +var i : integer; begin AssertEquals(2,ADataset.FieldDefs.Count); - AssertEquals(5,ADataset.RecordCount); AssertEquals(2,ADataset.Fields.Count); AssertEquals('ID',ADataset.Fields[0].FieldName); AssertEquals('NAME',ADataset.Fields[1].FieldName); AssertTrue('Incorrect fieldtype',ADataset.fields[1].DataType=ftString); - AssertEquals('TestName1',ADataset.FieldByName('name').AsString); - ADataset.Next; - AssertEquals('TestName2',ADataset.FieldByName('name').AsString); + i := 1; + while not ADataset.EOF do + begin + AssertEquals('TestName'+inttostr(i),ADataset.FieldByName('name').AsString); + ADataset.Next; + inc(i); + end; end; procedure TTestDBBasics.TestOnFilterProc(DataSet: TDataSet; var Accept: Boolean); @@ -2042,6 +2047,42 @@ begin ds.close; end; +procedure TTestDBBasics.TestDoubleDelete; +var ds : TBufDataset; +begin + ds := TBufDataset(DBConnector.GetNDataset(true,5)); + if not (ds is TBufDataset) then + Ignore('This test only applies to TBufDataset and descendents.'); + + with ds do + begin + open; + next; next; + Delete; + Delete; + + first; + AssertEquals(1,fieldbyname('id').AsInteger); + next; + AssertEquals(2,fieldbyname('id').AsInteger); + next; + AssertEquals(5,fieldbyname('id').AsInteger); + + CancelUpdates; + + first; + AssertEquals(1,fieldbyname('id').AsInteger); + next; + AssertEquals(2,fieldbyname('id').AsInteger); + next; + AssertEquals(3,fieldbyname('id').AsInteger); + next; + AssertEquals(4,fieldbyname('id').AsInteger); + next; + AssertEquals(5,fieldbyname('id').AsInteger); + end; +end; + procedure TTestDBBasics.TestNullAtOpen; begin with dbconnector.getndataset(0) do