public function testReset() { $results = array(); $book = new \AuthorBooks\Model\Book(); result_ok($results[] = $book->create(array('title' => 'My Book I'))); result_ok($results[] = $book->create(array('title' => 'My Book II'))); $books = new \AuthorBooks\Model\BookCollection(); $books->fetch(); is(2, $books->size()); ok($book->create(array('title' => 'My Book III'))->success); $books->reset(); $books->fetch(); is(3, $books->size()); foreach ($results as $result) { ok($result->id); $record = new \AuthorBooks\Model\Book(); $record->load($result->id); $record->delete(); } }
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']); }
/** * @rebuild false */ public function testUpdateWithReloadOption() { $b = new \AuthorBooks\Model\Book(); $ret = $b->create(array('title' => 'Create for reload test', 'view' => 0)); $this->assertResultSuccess($ret); // test incremental with Raw statement $ret = $b->update(array('view' => new Raw('view + 1')), array('reload' => true)); $this->assertResultSuccess($ret); $this->assertEquals(1, $b->view); $ret = $b->update(array('view' => new Raw('view + 1')), array('reload' => true)); $this->assertResultSuccess($ret); $this->assertEquals(2, $b->view); $ret = $b->delete(); $this->assertResultSuccess($ret); }