[ Index ]

PHP Cross Reference of Limb3

title

Body

[close]

/active_record/tests/cases/ -> lmbARAutoTimesTest.class.php (source)

   1  <?php
   2  /*

   3   * Limb PHP Framework

   4   *

   5   * @link http://limb-project.com

   6   * @copyright  Copyright &copy; 2004-2007 BIT(http://bit-creative.com)

   7   * @license    LGPL http://www.gnu.org/copyleft/lesser.html

   8   */
   9  lmb_require('limb/active_record/src/lmbActiveRecord.class.php');
  10  lmb_require('limb/dbal/src/lmbSimpleDb.class.php');
  11  
  12  class TestAutoTimesObject extends lmbActiveRecord
  13  {
  14    protected $_db_table_name = 'test_auto_times_object';
  15  }
  16  
  17  class lmbARAutoTimesTest extends UnitTestCase
  18  {
  19    var $conn;
  20    var $db;
  21  
  22    function setUp()
  23    {
  24      $toolkit = lmbToolkit :: save();
  25      $this->conn = $toolkit->getDefaultDbConnection();
  26      $this->db = new lmbSimpleDb($this->conn);
  27  
  28      $this->_cleanUp();
  29    }
  30  
  31    function tearDown()
  32    {
  33      $this->_cleanUp();
  34  
  35      lmbToolkit :: restore();
  36    }
  37  
  38    function _cleanUp()
  39    {
  40      $this->db->delete('test_auto_times_object');
  41    }
  42  
  43    function testSetTimesAutomaticallyOnCreate()
  44    {
  45      $time = time();
  46      $object = new TestAutoTimesObject();
  47      $object->setContent('whatever');
  48  
  49      $id = $object->save();
  50  
  51      $object2 = new TestAutoTimesObject($id);
  52      $this->assertTrue($object2->getUpdateTime() >= $time);
  53      $this->assertTrue($object2->getCreateTime() >= $time);
  54  
  55      $this->assertEqual($object->getUpdateTime(), $object2->getUpdateTime());
  56      $this->assertEqual($object->getCreateTime(), $object2->getCreateTime());
  57    }
  58  
  59    function testSetTimesAutomaticallyOnUpdate()
  60    {
  61      $time = time();
  62      $object = new TestAutoTimesObject();
  63      $object->setContent('whatever');
  64  
  65      $object->save();
  66      $ctime1 =  $object->getCreateTime();
  67      $utime1 =  $object->getUpdateTime();
  68  
  69      sleep(1);
  70  
  71      $object->setContent('whatever2');//without this object is considered to be not dirty

  72      $object->save();
  73      $ctime2 =  $object->getCreateTime();
  74      $utime2 =  $object->getUpdateTime();
  75  
  76      $this->assertTrue($ctime1 >= $time);
  77      $this->assertTrue($utime1 >= $time);
  78      $this->assertEqual($ctime1, $ctime2);
  79      $this->assertTrue($utime2 > $utime1);
  80  
  81      $object2 = new TestAutoTimesObject($object->getId());
  82      $this->assertEqual($object2->getCreateTime(), $ctime1);
  83      $this->assertEqual($object2->getUpdateTime(), $utime2);
  84    }
  85  }
  86  ?>


Generated: Sat Nov 22 03:48:54 2008 Cross-referenced by PHPXref 0.7