marco 2f06932695 --- Merging r21323 into '.': 13 лет назад
..
Makefile 20d0296453 * Version update to 2.6.1 13 лет назад
Makefile.fpc 4c7f9238c7 * SQL parser 15 лет назад
README.txt f7dffc86a7 --- Merging r20943 into '.': 13 лет назад
XMLXSDExportTest.lpi f0bbea9319 * Tester for XSD export 14 лет назад
XMLXSDExportTest.lpr f0bbea9319 * Tester for XSD export 14 лет назад
bufdatasettoolsunit.pas f7dffc86a7 --- Merging r20943 into '.': 13 лет назад
database.ini.txt 09538b9c8b --- Merging r20546 into '.': 13 лет назад
dbfexporttest.lpi 6b5c954a94 --- Merging r18214 into '.': 13 лет назад
dbfexporttest.lpr 6b5c954a94 --- Merging r18214 into '.': 13 лет назад
dbfexporttestcase1.pas 6b5c954a94 --- Merging r18214 into '.': 13 лет назад
dbftoolsunit.pas f016c79d7a * Patch from Luiz Americo to fix a double pathdelim in filename, bug #16737 15 лет назад
dbtestframework.pas 554ea590e3 * Batch of mostly db merges + TBytes definition that is already used in packages. 13 лет назад
memdstoolsunit.pas 5b8dd4c004 * move fcl sources to separate packages 18 лет назад
sdfdstoolsunit.pas 38b265f60f * Add ability to test TSdfDataset 17 лет назад
sqldbtoolsunit.pas 688f247bbf * note that these are only leftover of these revisions, like testsuite and 13 лет назад
tcgensql.pas 6df8ec1ce8 * Added tests for Grant/Revoke, fixed some bugs on the way 15 лет назад
tcparser.pas 554ea590e3 * Batch of mostly db merges + TBytes definition that is already used in packages. 13 лет назад
tcsqlscanner.pas 6df8ec1ce8 * Added tests for Grant/Revoke, fixed some bugs on the way 15 лет назад
test.json f1f3b95cf4 --- Merging r18133 into '.': 13 лет назад
testbasics.pas 03caff71a4 * Applied patch from Luiz Americo to optimize extraction of field/paramlists (bug 21905) 13 лет назад
testbufdatasetstreams.pas f7dffc86a7 --- Merging r20943 into '.': 13 лет назад
testdatasources.pas 1da7000192 * Added test for CalcLookupValue 17 лет назад
testdbbasics.pas 2f06932695 --- Merging r21323 into '.': 13 лет назад
testdddiff.pp c2dc42bb89 * test for Data dictionary diff mechanism 17 лет назад
testfieldtypes.pas f7dffc86a7 --- Merging r20943 into '.': 13 лет назад
testjsondataset.pp f1f3b95cf4 --- Merging r18133 into '.': 13 лет назад
testsqlfiles.lpi 4c7f9238c7 * SQL parser 15 лет назад
testsqlfiles.lpr 4c7f9238c7 * SQL parser 15 лет назад
testsqlscanner.lpi 6df8ec1ce8 * Added tests for Grant/Revoke, fixed some bugs on the way 15 лет назад
testsqlscanner.lpr 4c7f9238c7 * SQL parser 15 лет назад
testsqlscript.pas cc0c2d6467 * SqlScript committed 17 лет назад
toolsunit.pas f7dffc86a7 --- Merging r20943 into '.': 13 лет назад
xmlxsdexporttestcase1.pas 6b5c954a94 --- Merging r18214 into '.': 13 лет назад

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)