Browse Source

* additions by Reinier, mantis #21895

git-svn-id: trunk@21148 -
marco 13 years ago
parent
commit
71a4778ba6
1 changed files with 21 additions and 9 deletions
  1. 21 9
      packages/fcl-db/tests/README.txt

+ 21 - 9
packages/fcl-db/tests/README.txt

@@ -1,12 +1,13 @@
 This directory contains a framework to test several TDataset descendents.
+A lot of these tests are only applicable for SQL databases, but there are several tests that also apply to other objects, such as TBufDataset.
 
-The framework is based on the fpcunit unit-test system. The tests can be
+The framework is based on the fpcunit unit test system. The tests can be
 executed using any fpcunit-testrunner. For example the console and graphical
-fpcunit-test runners from Lazarus.
+fpcunit test runners from Lazarus.
 Simply add the test* units in this directory to the uses statement of the
-test-runner and all tests will get registered and executed.
+test runner and all tests will get registered and executed.
 
-An simple test-runner (dbtestframework.pas) which generates XML-output is
+A simple test runner (dbtestframework.pas) which generates XML output is
 included in this directory.
 
 To test a TDataset descendent, a 'connector' is needed to test the database.
@@ -14,14 +15,25 @@ To add a new connector, create a new *toolsunit.pas file, then add it to
 the uses section in 'dbtestframework.pas'. Several connectors are available 
 in the '*toolsunit.pas' files.
 
-Which connector is currently used is dependent on the 'database.ini'
-configuration file. Also some settings which are connector-dependent can be set
-in that file. See 'database.ini.txt' for an example.
+The connector must inherit from TDBConnector in toolsunit.pas.
+The connector implements two different kinds of datasets: 
+- a dataset with as many different kinds of fields as possible (see the *FieldDataSets subroutines).
+- a dataset with only a few fields (ID and NAME), but a lot (well, MaxDataset) of different records (see the *NDataSets subroutines)
 
-I hope this is enough information to get you started,
+CreateNDatasets and CreateFieldDataset should be implemented to set up data stores (e.g. database tables) and fill these stores with test data for the respective datasets.
+The corresponding Drop*Dataset procedures must drop the tables/delete the data.
 
-Joost van der Sluis (30-12-2006)
+GetNDataset and GetFieldsDataset should return the relevant dataset in closed state so the tests can open them and work with them.
+They call InternalGetNDataset and InternalGetFieldDataset which should be implemented in all descendents and returns the relevant dataset, closed, with all data.
 
+Toolsunit.pas defines some variables for use, e.g. testValuesCount is the number of records/test values in the FieldDataset dataset; MaxDataset is the same for NDataset.
+See e.g. the SQLDBToolsUnit for the implementation for SQL Databases.
 
+Which connector is currently used is dependent on the 'database.ini'
+configuration file. Also some settings which are connector-dependent can be set
+in that file. See 'database.ini.txt' for an example.
 
+I hope this is enough information to get you started,
 
+Joost van der Sluis (30-12-2006), 
+amended by Reinier Olislagers (April 2012)