summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2012-04-30 14:58:39 +0000
committermarco <marco@3ad0048d-3df7-0310-abae-a5850022a9f2>2012-04-30 14:58:39 +0000
commitd8955d76ccd4d494d5b2916b2957ffa1b6185e0e (patch)
tree0a03d5e932e35ee70552bdf9cc148d134d829505
parentb7d71a23354d6dbbb829ba14a0d62678fdc5af92 (diff)
downloadfpc-d8955d76ccd4d494d5b2916b2957ffa1b6185e0e.tar.gz
* additions by Reinier, mantis #21895
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@21148 3ad0048d-3df7-0310-abae-a5850022a9f2
-rw-r--r--packages/fcl-db/tests/README.txt30
1 files changed, 21 insertions, 9 deletions
diff --git a/packages/fcl-db/tests/README.txt b/packages/fcl-db/tests/README.txt
index e5aa23f781..e845d346ea 100644
--- a/packages/fcl-db/tests/README.txt
+++ b/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)