SequenceMock.php 875 Bytes
Newer Older
1 2
<?php

3
namespace Doctrine\Tests\Mocks;
romanb's avatar
romanb committed
4

5 6
use Doctrine\ORM\EntityManager;

7
class SequenceMock extends \Doctrine\ORM\Id\SequenceGenerator
8 9
{
    private $_sequenceNumber = 0;
10

11
    public function generate(EntityManager $em, $entity)
romanb's avatar
romanb committed
12 13 14
    {
        return $this->_sequenceNumber++;
    }
15

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
    /**
     * @override
     */
    public function nextId($seqName, $ondemand = true)
    {
        return $this->_sequenceNumber++;
    }

    /**
     * @override
     */
    public function lastInsertId($table = null, $field = null)
    {
        return $this->_sequenceNumber - 1;
    }

    /**
     * @override
     */
    public function currId($seqName)
    {
        return $this->_sequenceNumber;
    }
39

40
    /* Mock API */
41

42 43 44 45
    public function reset()
    {
        $this->_sequenceNumber = 0;
    }
46

47 48 49 50
    public function autoinc()
    {
        $this->_sequenceNumber++;
    }
51 52
}