From 4db8f9b31b509fabf87eee7777ef97c4e7014450 Mon Sep 17 00:00:00 2001 From: Tigrov Date: Thu, 14 Dec 2023 13:26:03 +0700 Subject: [PATCH 1/2] Test `BaseActiveRecord::getOldAttribute()` after insert and update --- tests/ActiveQueryTest.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/tests/ActiveQueryTest.php b/tests/ActiveQueryTest.php index 5eda8f3c9..cc5e08c7e 100644 --- a/tests/ActiveQueryTest.php +++ b/tests/ActiveQueryTest.php @@ -2231,6 +2231,29 @@ public function testIsAttributeChangedNotIdentical(): void $this->assertTrue($query->isAttributeChanged('name', false)); } + public function testOldAttributeAfterInsertAndUpdate(): void + { + $this->checkFixture($this->db, 'customer'); + + $customer = new Customer($this->db); + + $customer->setAttributes([ + 'email' => 'info@example.com', + 'name' => 'Jack', + 'address' => '123 Ocean Dr', + 'status' => 1, + ]); + + $this->assertNull($customer->getOldAttribute('name')); + $this->assertTrue($customer->save()); + $this->assertSame('Jack', $customer->getOldAttribute('name')); + + $customer->name = 'Harry'; + + $this->assertTrue($customer->save()); + $this->assertSame('Harry', $customer->getOldAttribute('name')); + } + public function testCheckRelationUnknownPropertyException(): void { $this->checkFixture($this->db, 'customer'); From 8bd3e6fcc0302c5fc1729ff6ccd77ca61f2fcea8 Mon Sep 17 00:00:00 2001 From: Tigrov Date: Sat, 16 Dec 2023 12:55:22 +0700 Subject: [PATCH 2/2] Change `$customer->name = 'Harry';` to `$customer->setAttribute('name', 'Harry');` --- tests/ActiveQueryTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/ActiveQueryTest.php b/tests/ActiveQueryTest.php index cc5e08c7e..4fa25063b 100644 --- a/tests/ActiveQueryTest.php +++ b/tests/ActiveQueryTest.php @@ -2248,7 +2248,7 @@ public function testOldAttributeAfterInsertAndUpdate(): void $this->assertTrue($customer->save()); $this->assertSame('Jack', $customer->getOldAttribute('name')); - $customer->name = 'Harry'; + $customer->setAttribute('name', 'Harry'); $this->assertTrue($customer->save()); $this->assertSame('Harry', $customer->getOldAttribute('name'));