public function testFindLazy() { /* @var $order CustomerOrder */ $order = CustomerOrder::findOne(['number' => 2]); $this->assertFalse($order->isRelationPopulated('customer')); $customer = $order->customer; $this->assertTrue($order->isRelationPopulated('customer')); $this->assertTrue($customer instanceof Customer); $this->assertEquals((string) $customer->id, (string) $order->customer_id); $this->assertEquals(1, count($order->relatedRecords)); /* @var $customer Customer */ $customer = Customer::findOne(['status' => 2]); $this->assertFalse($customer->isRelationPopulated('orders')); $orders = $customer->orders; $this->assertTrue($customer->isRelationPopulated('orders')); $this->assertTrue($orders[0] instanceof CustomerOrder); $this->assertEquals((string) $customer->id, (string) $orders[0]->customer_id); }
/** * @depends testUpdate */ public function testUpdateNestedAttribute() { $record = new Customer(); $record->name = 'new name'; $record->email = 'new email'; $record->address = ['city' => 'SomeCity', 'street' => 'SomeStreet']; $record->status = 7; $record->save(); // save $record = Customer::findOne($record->id); $newAddress = ['city' => 'AnotherCity']; $record->address = $newAddress; $record->save(); $record2 = Customer::findOne($record->id); $this->assertEquals($newAddress, $record2->address); }