/** * Test loadLazyAttribute method */ public function testLoadLazyAttribute() { $client = Client::findOne(1); $this->assertInstanceOf(Client::className(), $client); $this->setService('client', $client); $customerAttributes = new CustomerAttributes(array('objectId' => 1)); $this->assertTrue($customerAttributes->hasAttribute('field1')); $this->assertTrue($customerAttributes->hasAttribute('field2')); $customerAttributes->field1 = 'CAField1'; $customerAttributes->field2 = 'CAField2'; $this->assertTrue($customerAttributes->isAttributeChanged('field2')); $dirtyAttributes = $customerAttributes->getDirtyAttributes(); $this->assertInternalType('array', $dirtyAttributes); $dirtyAttributes = $customerAttributes->getDirtyAttributes(array('field2')); $this->assertInternalType('array', $dirtyAttributes); $data = $customerAttributes->toArray(); $this->assertInternalType('array', $data); $data = $customerAttributes->toArray(array('field1')); $this->assertInternalType('array', $data); $this->assertTrue($customerAttributes->save()); $customerAttributes = new CustomerAttributes(array('objectId' => 1)); $this->assertFalse($customerAttributes->isLoaded()); $customerAttributes->loadAttributeValues(true); $this->assertTrue($customerAttributes->isLoaded()); $data = $customerAttributes->allToArray(true); $this->assertTrue(array_key_exists('field1', $data)); $this->assertTrue(array_key_exists('field2', $data)); $this->assertEquals('CAField2', $customerAttributes->field2); $this->assertEquals('CAField1', $customerAttributes->field1); $customerAttributes = new CustomerAttributes(array('objectId' => 1)); $this->assertFalse($customerAttributes->isLoaded()); $customerAttributes->loadAttributeValues(); $this->assertTrue($customerAttributes->isLoaded()); $data = $customerAttributes->allToArray(true); $this->assertTrue(array_key_exists('field1', $data)); $this->assertFalse(array_key_exists('field2', $data)); $this->assertEquals('CAField2', $customerAttributes->field2); $this->assertEquals('CAField1', $customerAttributes->field1); $data = $customerAttributes->allToArray(true); $this->assertTrue(array_key_exists('field2', $data)); $customerAttributes = new CustomerAttributes(array('objectId' => 1)); $this->assertFalse($customerAttributes->isLoaded()); $a = $customerAttributes->field1; $this->assertTrue($customerAttributes->isLoaded()); $this->assertEquals('CAField1', $a); $this->assertEquals('CAField1', $customerAttributes->field1); $data = $customerAttributes->allToArray(true); $this->assertFalse(array_key_exists('field2', $data)); $this->assertTrue($customerAttributes->loadLazyAttribute('field2')); $data = $customerAttributes->allToArray(true); $this->assertTrue(array_key_exists('field2', $data)); $this->assertEquals('CAField2', $data['field2']); $customerAttributes = new CustomerAttributes(array('objectId' => 1)); $this->assertEquals('CAField1', $customerAttributes->field1); $data = $customerAttributes->allToArray(true); $this->assertFalse(array_key_exists('field2', $data)); $this->assertTrue($customerAttributes->loadLazyAttribute(array('field2'))); $data = $customerAttributes->allToArray(true); $this->assertTrue(array_key_exists('field2', $data)); $this->assertEquals('CAField2', $data['field2']); $customerAttributes = new CustomerAttributes(array('objectId' => 1)); $this->assertEquals('CAField1', $customerAttributes->field1); $data = $customerAttributes->allToArray(true); $this->assertFalse(array_key_exists('field2', $data)); $this->assertTrue($customerAttributes->loadLazyAttribute()); $data = $customerAttributes->allToArray(true); $this->assertTrue(array_key_exists('field2', $data)); $this->assertEquals('CAField2', $data['field2']); $customerAttributes = new CustomerAttributes(1); $data = $customerAttributes->allToArray(true); $this->assertFalse(array_key_exists('field2', $data)); $this->assertTrue($customerAttributes->loadLazyAttribute('field2')); $data = $customerAttributes->allToArray(true); $this->assertEquals('CAField2', $data['field2']); $this->assertFalse($customerAttributes->loadLazyAttribute('field2')); }