Author: ts
Date: Tue Jan 22 14:57:45 2008
New Revision: 7229
Log:
- Implemented enhancement #10727: Improved error messages for PersistentObject
with ManualGenerator.
Modified:
trunk/PersistentObject/ChangeLog
trunk/PersistentObject/src/generators/manual_generator.php
trunk/PersistentObject/tests/manual_generator_test.php
Modified: trunk/PersistentObject/ChangeLog
==============================================================================
--- trunk/PersistentObject/ChangeLog [iso-8859-1] (original)
+++ trunk/PersistentObject/ChangeLog [iso-8859-1] Tue Jan 22 14:57:45 2008
@@ -4,6 +4,8 @@
- Refactored ezcPersistentSession.
- Implemented enhancement #10373: Several relations to the same table for
PersistentObject.
+- Implemented enhancement #10727: Improved error messages for PersistentObject
+ with ManualGenerator.
- Fixed issue #10205: binding variables with an undeclared var doesn't throw
an exception. If getState() on a persistent object does not return an array
an exception is thrown now.
Modified: trunk/PersistentObject/src/generators/manual_generator.php
==============================================================================
--- trunk/PersistentObject/src/generators/manual_generator.php [iso-8859-1]
(original)
+++ trunk/PersistentObject/src/generators/manual_generator.php [iso-8859-1] Tue
Jan 22 14:57:45 2008
@@ -78,6 +78,15 @@
*/
public function preSave( ezcPersistentObjectDefinition $def, ezcDbHandler
$db, ezcQueryInsert $q )
{
+ // Sanity check.
+ // ID must have been stored during the persistence check before
inserting the object.
+ if ( $this->id === null )
+ {
+ throw new ezcPersistentIdentifierGenerationException(
+ $def->class,
+ 'ezcPersistentManualGenerator expects the ID to be present
before saving.'
+ );
+ }
$q->set( $db->quoteIdentifier( $def->idProperty->columnName ),
$q->bindValue( $this->id ) );
}
Modified: trunk/PersistentObject/tests/manual_generator_test.php
==============================================================================
--- trunk/PersistentObject/tests/manual_generator_test.php [iso-8859-1]
(original)
+++ trunk/PersistentObject/tests/manual_generator_test.php [iso-8859-1] Tue Jan
22 14:57:45 2008
@@ -62,10 +62,9 @@
try
{
$this->session->save( $object );
+ $this->fail( "Did not get exception when saving with null id." );
}
- catch ( ezcPersistentIdentifierGenerationException $e ){ return; } /*
MySQL doesn't fail the insert query for some reason */
- catch ( ezcPersistentObjectException $e ){ return; } /* Other
databases do */
- $this->fail( "Did not get exception when saving with null id." );
+ catch ( ezcPersistentIdentifierGenerationException $e ){}
}
// test save single
--
svn-components mailing list
[email protected]
http://lists.ez.no/mailman/listinfo/svn-components