From c62e0cbbfb165e015b679d1d90ea10a921cb2071 Mon Sep 17 00:00:00 2001 From: Carsten Brandt Date: Mon, 28 Oct 2013 10:48:18 +0100 Subject: [PATCH] added unit test to verify AR afterSave isNewRecord value closes #1084 --- tests/unit/data/ar/Customer.php | 10 ++++++++++ tests/unit/framework/db/ActiveRecordTest.php | 9 +++++++++ 2 files changed, 19 insertions(+) diff --git a/tests/unit/data/ar/Customer.php b/tests/unit/data/ar/Customer.php index 60a68b5..0d2add1 100644 --- a/tests/unit/data/ar/Customer.php +++ b/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); + } } diff --git a/tests/unit/framework/db/ActiveRecordTest.php b/tests/unit/framework/db/ActiveRecordTest.php index eb9d425..d8d8f8f 100644 --- a/tests/unit/framework/db/ActiveRecordTest.php +++ b/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);