public function testAggrBasic()
{
R::nuke();
$book = R::dispense('book');
$page1 = R::dispense('page');
$page1->name = 'Page 1';
$text1 = R::dispense('text');
$text1->content = 'Text 1';
$page1->text = $text1;
$book->xownPageList[] = $page1;
$page2 = R::dispense('page');
$page2->name = 'Page 2';
$text2 = R::dispense('text');
$text2->content = 'Text 2';
$page2->text = $text2;
$book->xownPageList[] = $page2;
R::store($book);
$book = $book->fresh();
$texts = $book->aggr('ownPageList', 'text');
R::nuke();
asrt(count($texts), 2);
foreach ($texts as $text) {
asrt($text instanceof OODBBean, TRUE);
}
$pages = $book->ownPageList;
asrt(count($pages), 2);
asrt(R::count('page'), 0);
foreach ($pages as $page) {
asrt($page instanceof OODBBean, TRUE);
$text = $page->text;
asrt($text instanceof OODBBean, TRUE);
$text->content = 'CHANGED';
}
foreach ($texts as $text) {
asrt($text->content, 'CHANGED');
}
}