From 9c87b5c68978566a4658bb6045d393e01556c293 Mon Sep 17 00:00:00 2001 From: "Fabio B. Silva" Date: Sat, 10 Mar 2012 00:06:32 -0300 Subject: [PATCH] php driver --- .../Doctrine.Tests.Models.CMS.CmsAddress.php | 69 +++++++++ .../php/Doctrine.Tests.Models.CMS.CmsUser.php | 135 ++++++++++++++++++ ...ine.Tests.Models.Company.CompanyPerson.php | 39 +++++ 3 files changed, 243 insertions(+) create mode 100644 tests/Doctrine/Tests/ORM/Mapping/php/Doctrine.Tests.Models.CMS.CmsAddress.php create mode 100644 tests/Doctrine/Tests/ORM/Mapping/php/Doctrine.Tests.Models.CMS.CmsUser.php create mode 100644 tests/Doctrine/Tests/ORM/Mapping/php/Doctrine.Tests.Models.Company.CompanyPerson.php diff --git a/tests/Doctrine/Tests/ORM/Mapping/php/Doctrine.Tests.Models.CMS.CmsAddress.php b/tests/Doctrine/Tests/ORM/Mapping/php/Doctrine.Tests.Models.CMS.CmsAddress.php new file mode 100644 index 000000000..964065cbd --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Mapping/php/Doctrine.Tests.Models.CMS.CmsAddress.php @@ -0,0 +1,69 @@ +setPrimaryTable(array( + 'name' => 'company_person', +)); + + +$metadata->addNamedNativeQuery(array ( + 'name' => 'find-all', + 'query' => 'SELECT id, country, city FROM cms_addresses', + 'resultSetMapping' => 'mapping-find-all', +)); + +$metadata->addNamedNativeQuery(array ( + 'name' => 'find-by-id', + 'query' => 'SELECT * FROM cms_addresses WHERE id = ?', + 'resultClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsAddress', +)); + +$metadata->addNamedNativeQuery(array ( + 'name' => 'count', + 'query' => 'SELECT COUNT(*) AS count FROM cms_addresses', + 'resultSetMapping' => 'mapping-count', +)); + + +$metadata->addSqlResultSetMapping(array ( + 'name' => 'mapping-find-all', + 'columns' => array(), + 'entities' => array ( array ( + 'fields' => array ( + array ( + 'name' => 'id', + 'column' => 'id', + ), + array ( + 'name' => 'city', + 'column' => 'city', + ), + array ( + 'name' => 'country', + 'column' => 'country', + ), + ), + 'entityClass' => 'Doctrine\Tests\Models\CMS\CmsAddress', + ), + ), +)); + +$metadata->addSqlResultSetMapping(array ( + 'name' => 'mapping-without-fields', + 'columns' => array(), + 'entities' => array(array ( + 'entityClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsAddress', + 'fields' => array() + ) + ) +)); + +$metadata->addSqlResultSetMapping(array ( + 'name' => 'mapping-count', + 'columns' =>array ( + array ( + 'name' => 'count', + ), + ) +)); \ No newline at end of file diff --git a/tests/Doctrine/Tests/ORM/Mapping/php/Doctrine.Tests.Models.CMS.CmsUser.php b/tests/Doctrine/Tests/ORM/Mapping/php/Doctrine.Tests.Models.CMS.CmsUser.php new file mode 100644 index 000000000..4dac4b77f --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Mapping/php/Doctrine.Tests.Models.CMS.CmsUser.php @@ -0,0 +1,135 @@ +setPrimaryTable(array( + 'name' => 'cms_users', +)); + +$metadata->addNamedNativeQuery(array ( + 'name' => 'fetchIdAndUsernameWithResultClass', + 'query' => 'SELECT id, username FROM cms_users WHERE username = ?', + 'resultClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsUser', +)); + +$metadata->addNamedNativeQuery(array ( + 'name' => 'fetchAllColumns', + 'query' => 'SELECT * FROM cms_users WHERE username = ?', + 'resultClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsUser', +)); + +$metadata->addNamedNativeQuery(array ( + 'name' => 'fetchJoinedAddress', + 'query' => 'SELECT u.id, u.name, u.status, a.id AS a_id, a.country, a.zip, a.city FROM cms_users u INNER JOIN cms_addresses a ON u.id = a.user_id WHERE u.username = ?', + 'resultSetMapping' => 'mappingJoinedAddress', +)); + +$metadata->addNamedNativeQuery(array ( + 'name' => 'fetchJoinedPhonenumber', + 'query' => 'SELECT id, name, status, phonenumber AS number FROM cms_users INNER JOIN cms_phonenumbers ON id = user_id WHERE username = ?', + 'resultSetMapping' => 'mappingJoinedPhonenumber', +)); + +$metadata->addNamedNativeQuery(array ( + 'name' => 'fetchUserPhonenumberCount', + 'query' => 'SELECT id, name, status, COUNT(phonenumber) AS numphones FROM cms_users INNER JOIN cms_phonenumbers ON id = user_id WHERE username IN (?) GROUP BY id, name, status, username ORDER BY username', + 'resultSetMapping' => 'mappingUserPhonenumberCount', +)); + +$metadata->addSqlResultSetMapping(array ( + 'name' => 'mappingJoinedAddress', + 'columns' => array(), + 'entities' => array(array ( + 'fields'=> array ( + array ( + 'name' => 'id', + 'column' => 'id', + ), + array ( + 'name' => 'name', + 'column' => 'name', + ), + array ( + 'name' => 'status', + 'column' => 'status', + ), + array ( + 'name' => 'address.zip', + 'column' => 'zip', + ), + array ( + 'name' => 'address.city', + 'column' => 'city', + ), + array ( + 'name' => 'address.country', + 'column' => 'country', + ), + array ( + 'name' => 'address.id', + 'column' => 'a_id', + ), + ), + 'entityClass' => 'Doctrine\Tests\Models\CMS\CmsUser', + 'discriminatorColumn' => null + ), + ), +)); + +$metadata->addSqlResultSetMapping(array ( + 'name' => 'mappingJoinedPhonenumber', + 'columns' => array(), + 'entities' => array(array( + 'fields'=> array ( + array ( + 'name' => 'id', + 'column' => 'id', + ), + array ( + 'name' => 'name', + 'column' => 'name', + ), + array ( + 'name' => 'status', + 'column' => 'status', + ), + array ( + 'name' => 'phonenumbers.phonenumber', + 'column' => 'number', + ), + ), + 'entityClass' => 'Doctrine\\Tests\\Models\\CMS\\CmsUser', + 'discriminatorColumn' => null + ), + ), +)); + +$metadata->addSqlResultSetMapping(array ( + 'name' => 'mappingUserPhonenumberCount', + 'columns' => array(), + 'entities' => array ( + array( + 'fields' => array ( + array ( + 'name' => 'id', + 'column' => 'id', + ), + array ( + 'name' => 'name', + 'column' => 'name', + ), + array ( + 'name' => 'status', + 'column' => 'status', + ) + ), + 'entityClass' => 'Doctrine\Tests\Models\CMS\CmsUser', + 'discriminatorColumn' => null + ) + ), + 'columns' => array ( + array ( + 'name' => 'numphones', + ) + ) +)); \ No newline at end of file diff --git a/tests/Doctrine/Tests/ORM/Mapping/php/Doctrine.Tests.Models.Company.CompanyPerson.php b/tests/Doctrine/Tests/ORM/Mapping/php/Doctrine.Tests.Models.Company.CompanyPerson.php new file mode 100644 index 000000000..68703f40a --- /dev/null +++ b/tests/Doctrine/Tests/ORM/Mapping/php/Doctrine.Tests.Models.Company.CompanyPerson.php @@ -0,0 +1,39 @@ +setPrimaryTable(array( + 'name' => 'company_person', +)); + +$metadata->addNamedNativeQuery(array ( + 'name' => 'fetchAllWithResultClass', + 'query' => 'SELECT id, name, discr FROM company_persons ORDER BY name', + 'resultClass' => 'Doctrine\\Tests\\Models\\Company\\CompanyPerson', +)); + +$metadata->addNamedNativeQuery(array ( + 'name' => 'fetchAllWithSqlResultSetMapping', + 'query' => 'SELECT id, name, discr AS discriminator FROM company_persons ORDER BY name', + 'resultSetMapping' => 'mappingFetchAll', +)); + +$metadata->addSqlResultSetMapping(array ( + 'name' => 'mappingFetchAll', + 'columns' => array(), + 'entities' => array ( array ( + 'fields' => array ( + array ( + 'name' => 'id', + 'column' => 'id', + ), + array ( + 'name' => 'name', + 'column' => 'name', + ), + ), + 'entityClass' => 'Doctrine\Tests\Models\Company\CompanyPerson', + 'discriminatorColumn' => 'discriminator', + ), + ), +)); \ No newline at end of file