public function testJoin() { $author = new Author(); $ret = $author->create(['name' => 'Mary III', 'email' => 'zz3@zz3', 'identity' => 'zz3']); $this->assertResultSuccess($ret); $ab = new AuthorBook(); $book = new \AuthorBooks\Model\Book(); $ret = $book->create(array('title' => 'Book I')); $this->assertResultSuccess($ret); $ret = $ab->create(['author_id' => $author->id, 'book_id' => $book->id]); $this->assertResultSuccess($ret); $ret = $book->create(array('title' => 'Book II')); $this->assertResultSuccess($ret); $ret = $ab->create(['author_id' => $author->id, 'book_id' => $book->id]); $this->assertResultSuccess($ret); $ret = $book->create(array('title' => 'Book III')); $this->assertResultSuccess($ret); $ret = $ab->create(array('author_id' => $author->id, 'book_id' => $book->id)); $this->assertResultSuccess($ret); $books = new \AuthorBooks\Model\BookCollection(); $books->join('author_books')->as('ab')->on()->equal('ab.book_id', array('m.id')); $books->where()->equal('ab.author_id', $author->id); $items = $books->items(); $this->assertNotEmpty($items); $bookTitles = array(); foreach ($books as $book) { $bookTitles[$book->title] = true; $ret = $book->delete(); } $this->assertCount(3, array_keys($bookTitles)); ok($bookTitles['Book I']); ok($bookTitles['Book II']); ok($bookTitles['Book III']); }
public function testJoin() { $author = new Author(); $author->create(array('name' => 'Mary III', 'email' => 'zz3@zz3', 'identity' => 'zz3')); $ab = new \AuthorBooks\Model\AuthorBook(); $book = new \AuthorBooks\Model\Book(); ok($book->create(array('title' => 'Book I'))->success); ok($ab->create(array('author_id' => $author->id, 'book_id' => $book->id))->success); ok($book->create(array('title' => 'Book II'))->success); $ab->create(array('author_id' => $author->id, 'book_id' => $book->id)); ok($book->create(array('title' => 'Book III'))->success); $ab->create(array('author_id' => $author->id, 'book_id' => $book->id)); $books = new \AuthorBooks\Model\BookCollection(); $books->join('author_books')->as('ab')->on()->equal('ab.book_id', array('m.id')); $books->where()->equal('ab.author_id', $author->id); $items = $books->items(); $bookTitles = array(); foreach ($items as $item) { $bookTitles[$item->title] = true; $item->delete(); } count_ok(3, array_keys($bookTitles)); ok($bookTitles['Book I']); ok($bookTitles['Book II']); ok($bookTitles['Book III']); }