public function testUnsetInForeach()
{
$records = array(array('id' => 1, 'data' => 'delete'));
$result = new MockResult(array('records' => $records));
$model = $this->_model;
$recordSet = new MockRecordSet(compact('result', 'model') + array('exists' => true));
$cpt = 0;
foreach ($recordSet as $i => $word) {
$array = $word->to('array');
if ($array['data'] === 'delete') {
unset($recordSet[$i]);
}
$cpt++;
}
$this->assertEqual(1, $cpt);
$this->assertIdentical(array(), $recordSet->to('array'));
$records = array(1 => array('id' => 1, 'data' => 'delete'), 3 => array('id' => 2, 'data' => 'data2'), 'hello' => array('id' => 3, 'data' => 'delete'), 0 => array('id' => 4, 'data' => 'data4'), 7 => array('id' => 5, 'data' => 'delete'), 8 => array('id' => 6, 'data' => 'delete'), 10 => array('id' => 7, 'data' => 'data7'), 50 => array('id' => 8, 'data' => 'delete'));
$result = new MockResult(array('records' => $records));
$model = $this->_model;
$recordSet = new MockRecordSet(compact('result', 'model') + array('exists' => true));
foreach ($recordSet as $i => $word) {
$array = $word->to('array');
if ($array['data'] === 'delete') {
unset($recordSet[$i]);
}
}
$this->assertCount(3, $recordSet);
$expected = array(2 => array('id' => 2, 'data' => 'data2'), 4 => array('id' => 4, 'data' => 'data4'), 7 => array('id' => 7, 'data' => 'data7'));
$this->assertIdentical($expected, $recordSet->to('array'));
}