Browse Source

added unit test to verify AR afterSave isNewRecord value

closes #1084
tags/2.0.0-beta
Carsten Brandt 11 years ago
parent
commit
c62e0cbbfb
  1. 10
      tests/unit/data/ar/Customer.php
  2. 9
      tests/unit/framework/db/ActiveRecordTest.php

10
tests/unit/data/ar/Customer.php

@ -17,6 +17,9 @@ class Customer extends ActiveRecord
public $status2;
public static $afterSaveInsert = null;
public static $afterSaveNewRecord = null;
public static function tableName()
{
return 'tbl_customer';
@ -31,4 +34,11 @@ class Customer extends ActiveRecord
{
$query->andWhere('status=1');
}
public function afterSave($insert)
{
static::$afterSaveInsert = $insert;
static::$afterSaveNewRecord = $this->isNewRecord;
parent::afterSave($insert);
}
}

9
tests/unit/framework/db/ActiveRecordTest.php

@ -295,10 +295,14 @@ class ActiveRecordTest extends DatabaseTestCase
$this->assertNull($customer->id);
$this->assertTrue($customer->isNewRecord);
Customer::$afterSaveNewRecord = null;
Customer::$afterSaveInsert = null;
$customer->save();
$this->assertEquals(4, $customer->id);
$this->assertFalse(Customer::$afterSaveNewRecord);
$this->assertTrue(Customer::$afterSaveInsert);
$this->assertFalse($customer->isNewRecord);
}
@ -309,10 +313,15 @@ class ActiveRecordTest extends DatabaseTestCase
$this->assertTrue($customer instanceof Customer);
$this->assertEquals('user2', $customer->name);
$this->assertFalse($customer->isNewRecord);
Customer::$afterSaveNewRecord = null;
Customer::$afterSaveInsert = null;
$customer->name = 'user2x';
$customer->save();
$this->assertEquals('user2x', $customer->name);
$this->assertFalse($customer->isNewRecord);
$this->assertFalse(Customer::$afterSaveNewRecord);
$this->assertFalse(Customer::$afterSaveInsert);
$customer2 = Customer::find(2);
$this->assertEquals('user2x', $customer2->name);

Loading…
Cancel
Save