marco be5a8b42d6 --- Merging r20882 into '.': 13 jaren geleden
..
Makefile 20d0296453 * Version update to 2.6.1 13 jaren geleden
Makefile.fpc 4c7f9238c7 * SQL parser 15 jaren geleden
README.txt f7dffc86a7 --- Merging r20943 into '.': 13 jaren geleden
XMLXSDExportTest.lpi f0bbea9319 * Tester for XSD export 14 jaren geleden
XMLXSDExportTest.lpr f0bbea9319 * Tester for XSD export 14 jaren geleden
bufdatasettoolsunit.pas 41c5cef62f --- Merging r21767 into '.': 13 jaren geleden
database.ini.txt 09538b9c8b --- Merging r20546 into '.': 13 jaren geleden
dbfexporttest.lpi 6b5c954a94 --- Merging r18214 into '.': 13 jaren geleden
dbfexporttest.lpr 6b5c954a94 --- Merging r18214 into '.': 13 jaren geleden
dbfexporttestcase1.pas 6b5c954a94 --- Merging r18214 into '.': 13 jaren geleden
dbftoolsunit.pas f016c79d7a * Patch from Luiz Americo to fix a double pathdelim in filename, bug #16737 15 jaren geleden
dbtestframework.pas 41c5cef62f --- Merging r21767 into '.': 13 jaren geleden
dbtestframework_gui.lpi 266117c624 --- Merging r21252 into '.': 13 jaren geleden
dbtestframework_gui.lpr 266117c624 --- Merging r21252 into '.': 13 jaren geleden
memdstoolsunit.pas 5b8dd4c004 * move fcl sources to separate packages 18 jaren geleden
sdfdstoolsunit.pas 38b265f60f * Add ability to test TSdfDataset 17 jaren geleden
sqldbtoolsunit.pas 70972a4f28 * disable oracle on win64 13 jaren geleden
tcgensql.pas 6df8ec1ce8 * Added tests for Grant/Revoke, fixed some bugs on the way 15 jaren geleden
tcparser.pas 554ea590e3 * Batch of mostly db merges + TBytes definition that is already used in packages. 13 jaren geleden
tcsqlscanner.pas 6df8ec1ce8 * Added tests for Grant/Revoke, fixed some bugs on the way 15 jaren geleden
test.json f1f3b95cf4 --- Merging r18133 into '.': 13 jaren geleden
testbasics.pas be5a8b42d6 --- Merging r20882 into '.': 13 jaren geleden
testbufdatasetstreams.pas a57f3e4e38 --- Merging r21280 into '.': 13 jaren geleden
testdatasources.pas 1da7000192 * Added test for CalcLookupValue 17 jaren geleden
testdbbasics.pas 41c5cef62f --- Merging r21767 into '.': 13 jaren geleden
testdddiff.pp c2dc42bb89 * test for Data dictionary diff mechanism 17 jaren geleden
testfieldtypes.pas 29d9c4b50d * remove TestOpenSpecialStatements that got accidentally merged. It contains an dyn array constructor, a feature not in 2.6 13 jaren geleden
testjsondataset.pp f1f3b95cf4 --- Merging r18133 into '.': 13 jaren geleden
testspecifictbufdataset.pas a57f3e4e38 --- Merging r21280 into '.': 13 jaren geleden
testsqlfiles.lpi 4c7f9238c7 * SQL parser 15 jaren geleden
testsqlfiles.lpr 4c7f9238c7 * SQL parser 15 jaren geleden
testsqlscanner.lpi 6df8ec1ce8 * Added tests for Grant/Revoke, fixed some bugs on the way 15 jaren geleden
testsqlscanner.lpr 4c7f9238c7 * SQL parser 15 jaren geleden
testsqlscript.pas cc0c2d6467 * SqlScript committed 17 jaren geleden
toolsunit.pas f7dffc86a7 --- Merging r20943 into '.': 13 jaren geleden
xmlxsdexporttestcase1.pas 6b5c954a94 --- Merging r18214 into '.': 13 jaren geleden

README.txt

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
executed using any fpcunit-testrunner. For example the console and graphical
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.

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.
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.

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)

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.

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)