public function testBasicTraversal()
{
R::nuke();
$pageA = R::dispense('page')->setAttr('title', 'a');
$pageB = R::dispense('page')->setAttr('title', 'b');
$pageC = R::dispense('page')->setAttr('title', 'c');
$pageD = R::dispense('page')->setAttr('title', 'd');
$pageE = R::dispense('page')->setAttr('title', 'e');
$pageF = R::dispense('page')->setAttr('title', 'f');
$pageG = R::dispense('page')->setAttr('title', 'g');
$pageH = R::dispense('page')->setAttr('title', 'h');
$pageA->ownPage = array($pageB, $pageC);
$pageB->ownPage = array($pageD);
$pageC->ownPage = array($pageE, $pageF);
$pageD->ownPage = array($pageG);
$pageF->ownPage = array($pageH);
R::store($pageA);
$pageA = $pageA->fresh();
//also tests non-existant column handling by count().
asrt(R::count('page', ' price = ? ', array('5')), 0);
asrt(R::count('tag', ' title = ? ', array('new')), 0);
$pageA->traverse('ownPageList', function ($bean) {
$bean->price = 5;
});
R::store($pageA);
asrt(R::count('page', ' price = ? ', array('5')), 7);
}