public function testWithNoIndexes() { $records = array( array('data' => 'data1'), array('data' => 'data2'), array('data' => 'data3'), array('data' => 'data4') ); $result = new MockResult(); $result->records = array_merge(array(false), $records); $model = $this->_model; $recordSet = new MockRecordSet(compact('result', 'model') + array('exists' => true)); $this->assertEqual($records, $recordSet->data()); $this->assertEqual($records[1]['data'], $recordSet[1]->data); }
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')); }
public function testOffsetGet() { $expected = array('id' => 1, 'data' => 'data1'); $this->assertEqual($expected, $this->_recordSet[1]->to('array')); $expected = array('id' => 2, 'data' => 'data2'); $this->assertEqual($expected, $this->_recordSet[2]->to('array')); $expected = array('id' => 3, 'data' => 'data3'); $this->assertEqual($expected, $this->_recordSet[3]->to('array')); $expected = array('id' => 4, 'data' => 'data4'); $this->assertEqual($expected, $this->_recordSet[4]->to('array')); $expected = array('id' => 3, 'data' => 'data3'); $this->assertEqual($this->_records[2], $this->_recordSet[3]->to('array')); $recordSet = new MockRecordSet(); $this->assertEqual(array(), $recordSet->data()); $this->expectException(); $this->_recordSet[5]; }