lithium\tests\cases\data\collection\RecordSetTest::testUnsetInForeach PHP Method

testUnsetInForeach() public method

public testUnsetInForeach ( )
    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'));
    }