1
0
Fork 0
mirror of synced 2025-04-01 20:36:14 +03:00
doctrine2/tests
Sander Marechal edd5d14b06 Pagination using SQL walkers
A CountSqlWalker and LimitSubquerySqlWalker have been implemented. By
default the Paginator will use these SQL walkers. When a query already
uses custom SQL walkers, the Paginator will fall back to the existing
TreeWalker implementations. Improvements:

* Support for more complex DQL queries using named mixed results with
  GROUP BY and HAVING. For example:

  SELECT g, u, COUNT(u.id) AS userCount
      FROM Entity\Group g LEFT JOIN g.users u
      GROUP BY g.id
      HAVING userCount > 0

* Support for entities with composite primary keys in the CountSqlWalker
  and LimitSubquerySqlWalker. Only the WhereInWalker still needs to be
  updated for full composite primary key support. But someone smarter
  than me needs to look at that and figure out how to build a WHERE IN
  query that can select rows based on multiple columns.
2012-03-06 16:24:44 +01:00
..
Doctrine/Tests Pagination using SQL walkers 2012-03-06 16:24:44 +01:00
travis Fix travis configuration files 2011-11-13 22:04:48 +01:00
.gitignore Fix Testsuite to work with Git 2010-04-07 20:47:53 +02:00
dbproperties.xml.dev [2.0] DDC-295 - Add OracleSessionInit postConnect Subscriber 2010-01-31 22:01:58 +00:00
NativePhpunitTask.php Remove all trailing whitespaces 2011-12-19 22:56:19 +01:00
README.markdown Added Gearman Lock Test and Worker, verified lockings indeed works on MySQL, PostgreSQL and Oracle 2010-05-02 13:04:25 +02:00

Running the Doctrine 2 Testsuite

Setting up a PHPUnit Configuration XML

..

Testing Lock-Support

The Lock support in Doctrine 2 is tested using Gearman, which allows to run concurrent tasks in parallel. Install Gearman with PHP as follows:

  1. Go to http://www.gearman.org and download the latest Gearman Server
  2. Compile it and then call ldconfig
  3. Start it up "gearmand -vvvv"
  4. Install pecl/gearman by calling "gearman-beta"

You can then go into tests/ and start up two workers:

php Doctrine/Tests/ORM/Functional/Locking/LockAgentWorker.php

Then run the locking test-suite:

phpunit --configuration <myconfig.xml> Doctrine/Tests/ORM/Functional/Locking/GearmanLockTest.php

This can run considerable time, because it is using sleep() to test for the timing ranges of locks.