function testResetInternalIteratorIfPrimaryDatasetChanged() { $data = array(new lmbSet(array('x' => '1')), new lmbSet(array('x' => '2')), new lmbSet(array('x' => '3'))); $iterator = new lmbCollection($data); $iterator->paginate($offset = 1, $limit = 3); $str = ''; foreach ($iterator as $record) { $str .= $record->get('x'); } $this->assertEqual($str, '23'); $iterator->add(new lmbSet(array('x' => '4'))); $str = ''; foreach ($iterator as $record) { $str .= $record->get('x'); } $this->assertEqual($str, '234'); }
function testSortByKeys() { $item1 = new lmbSet(array(1)); $item2 = new lmbSet(array(2)); $iterator = new lmbCollection(); $this->assertTrue($iterator->isEmpty()); $iterator->add($item1, 1); $this->assertFalse($iterator->isEmpty()); $iterator->add($item2, 0); $iterator->sortByKeys(); $iterator->rewind(); $this->assertTrue($iterator->valid()); $this->assertEqual($iterator->current(), $item2); $iterator->next(); $this->assertEqual($iterator->current(), $item1); }