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

Reply via email to