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 svn-components@lists.ez.no http://lists.ez.no/mailman/listinfo/svn-components