[DBAL-109] Doctrine/DBAL/Platforms/MySqlPlatform.php is missing test coverage around _getCreateTableSQL method Created: 12/Apr/11 Updated: 18/Nov/11 |
|
| Status: | Open |
| Project: | Doctrine DBAL |
| Component/s: | Platforms |
| Affects Version/s: | 2.1 |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Major |
| Reporter: | Wil Moore III | Assignee: | Benjamin Eberlei |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Environment: |
2.1.0-DEV |
||
| Description |
|
In "Doctrine/DBAL/Platforms/MySqlPlatform.php", the following methods are public: getShowDatabasesSQL, getCreateDatabaseSQL, getDropDatabaseSQL, getDropTableSQL (easy to test); however, the "_getCreateTableSQL" method is not public. Is there a specific reason for this difference? As a result of this method not being tested, there is a "quote" method being called which doesn't exist. See: https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php#L410 The only way at this time to test for this case is to get an error when doing: $table->addOption('comment', '...'); I would suggest making the protected method public so it can be tested. I also suggest moving the options parsing out of _getCreateTableSQL into a helper method...this method seems a bit overloaded. If agreed, I'm happy to take care of the cleanup. Just wanted to get some feedback on the ideas first. |
| Comments |
| Comment by Benjamin Eberlei [ 18/Nov/11 ] |
|
This is an improvement |