コード例 #1
0
 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();
     }
 }
コード例 #2
0
 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']);
 }
コード例 #3
0
 /**
  * @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);
 }