public function testHasManyRelationFetch() { $author = new \AuthorBooks\Model\Author(); $ret = $author->create(array('name' => 'Z', 'email' => 'z@z', 'identity' => 'z')); $this->assertResultSuccess($ret); ok($author->id); $address = new \AuthorBooks\Model\Address(); $ret = $address->create(array('author_id' => $author->id, 'address' => 'Taiwan Taipei')); $this->assertResultSuccess($ret); $this->assertNotNull($address->author, 'has many relation fetch'); $this->assertNotNull($address->author->id); $this->assertEquals($author->id, $address->author->id); $ret = $address->create(array('author_id' => $author->id, 'address' => 'Taiwan Taipei II')); $this->assertResultSuccess($ret); // xxx: provide getAddresses() method generator $addresses = $author->addresses; $this->assertCollectionSize(2, $addresses); $items = $addresses->items(); ok($items); ok($addresses[0]); ok($addresses[1]); ok(!isset($addresses[2])); ok(!@$addresses[2]); ok($addresses[0]->id); ok($addresses[1]->id); ok($size = $addresses->size()); is(2, $size); foreach ($author->addresses as $ad) { ok($ad->delete()->success); } $author->delete(); }
public function testCloneWithQuery() { $a = new \AuthorBooks\Model\Address(); ok($a->create(array('address' => 'Cindy'))->success); ok($a->create(array('address' => 'Hack'))->success); $addresses = new \AuthorBooks\Model\AddressCollection(); $addresses->where()->equal('address', 'Cindy'); $addresses->fetch(); is(1, $addresses->size()); $sql1 = $addresses->toSQL(); $clone = clone $addresses; $sql2 = $clone->toSQL(); is($sql1, $sql2); is(1, $clone->size()); $clone->free(); $clone->where()->equal('address', 'Hack'); is(0, $clone->size()); }
public function testHasManyRelationFetch() { $author = new \AuthorBooks\Model\Author(); $ret = $author->create(array('name' => 'Z', 'email' => 'z@z', 'identity' => 'z')); $this->assertResultSuccess($ret); $address = new \AuthorBooks\Model\Address(); $ret = $address->create(array('author_id' => $author->id, 'address' => 'Taiwan Taipei')); $this->assertResultSuccess($ret); $this->assertInstanceOf('LazyRecord\\BaseModel', $address->author); $this->assertEquals($author->id, $address->author->id); $ret = $address->create(array('author_id' => $author->id, 'address' => 'Taiwan Taipei II')); $this->assertResultSuccess($ret); // xxx: provide getAddresses() method generator $addresses = $author->addresses; $this->assertInstanceOf('LazyRecord\\BaseCollection', $addresses); $items = $addresses->items(); $this->assertNotEmpty($items); $this->assertCount(2, $items); }