public function testTraversalWithSQL()
{
$tasks = R::dispense('task', 10);
foreach ($tasks as $key => $task) {
$task->descr = 't' . $key;
}
$tasks[0]->ownTask = array($tasks[1], $tasks[9], $tasks[7]);
$tasks[1]->ownTask = array($tasks[5]);
$tasks[9]->ownTask = array($tasks[3], $tasks[8]);
$tasks[2]->ownTask = array($tasks[4]);
$tasks[7]->ownTask = array($tasks[6]);
R::storeAll($tasks);
$task = R::load('task', $tasks[0]->id);
$todo = array();
$task->with(' ORDER BY descr ASC ')->traverse('ownTaskList', function ($t) use(&$todo) {
$todo[] = $t->descr;
});
asrt(implode(',', $todo), 't1,t5,t7,t6,t9,t3,t8');
$task = R::load('task', $tasks[0]->id);
$todo = array();
$task->withCondition(' ( descr = ? OR descr = ? ) ', array('t7', 't6'))->traverse('ownTaskList', function ($task) use(&$todo) {
$todo[] = $task->descr;
});
asrt(implode(',', $todo), 't7,t6');
}