[limb-svn] r6008 - in 3.x/trunk/limb/active_record: src tests/cases

svn at limb-project.com svn at limb-project.com
Wed Jun 20 12:32:15 MSD 2007


Author: serega
Date: 2007-06-20 12:32:14 +0400 (Wed, 20 Jun 2007)
New Revision: 6008
URL: http://fisheye.limb-project.com/changelog/limb/?cs=6008

Modified:
   3.x/trunk/limb/active_record/src/lmbActiveRecord.class.php
   3.x/trunk/limb/active_record/tests/cases/lmbARImportTest.class.php
Log:
-- lmbActiveRecord :: import() now set related object to null if appropriate property has empty string value "" as well as "null" value

Modified: 3.x/trunk/limb/active_record/src/lmbActiveRecord.class.php
===================================================================
--- 3.x/trunk/limb/active_record/src/lmbActiveRecord.class.php	2007-06-20 06:31:15 UTC (rev 6007)
+++ 3.x/trunk/limb/active_record/src/lmbActiveRecord.class.php	2007-06-20 08:32:14 UTC (rev 6008)
@@ -1755,7 +1755,7 @@
     }
     elseif(is_object($value))
       $this->set($property, $value);
-    elseif(is_null($value) || strcasecmp($value, 'null') === 0)
+    elseif(is_null($value) || strcasecmp($value, 'null') === 0 || ($value === ''))
       $this->set($property, null);
   }
 

Modified: 3.x/trunk/limb/active_record/tests/cases/lmbARImportTest.class.php
===================================================================
--- 3.x/trunk/limb/active_record/tests/cases/lmbARImportTest.class.php	2007-06-20 06:31:15 UTC (rev 6007)
+++ 3.x/trunk/limb/active_record/tests/cases/lmbARImportTest.class.php	2007-06-20 08:32:14 UTC (rev 6008)
@@ -459,6 +459,24 @@
     $this->assertNull($person2->getSocialSecurity());
   }
 
+  function testImportNullEntityEmptyString()
+  {
+    $person = new PersonForTest();
+    $person->setName('Jim');
+    $number = new SocialSecurityForTest();
+    $number->setCode('099123');
+    $person->setSocialSecurity($number);
+    $person->save();
+
+    $source = array('name' => $person->getName(),
+                    'social_security' => '');
+
+    $person2 = clone $person;
+    $person2->import($source);
+    $this->assertEqual($person2->getName(), $person->getName());
+    $this->assertNull($person2->getSocialSecurity());
+  }
+
   function testImportWithValueObject()
   {
     $lesson = new LessonForTest();



More information about the limb-svn mailing list