ForeignKeyConstraintTest.php 1.58 KB
Newer Older
1 2 3 4 5 6
<?php

namespace Doctrine\Tests\DBAL\Schema;

use Doctrine\DBAL\Schema\ForeignKeyConstraint;

Luís Cobucci's avatar
Luís Cobucci committed
7
class ForeignKeyConstraintTest extends \PHPUnit\Framework\TestCase
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
{
    /**
     * @group DBAL-1062
     *
     * @dataProvider getIntersectsIndexColumnsData
     */
    public function testIntersectsIndexColumns(array $indexColumns, $expectedResult)
    {
        $foreignKey = new ForeignKeyConstraint(array('foo', 'bar'), 'foreign_table', array('fk_foo', 'fk_bar'));

        $index = $this->getMockBuilder('Doctrine\DBAL\Schema\Index')
            ->disableOriginalConstructor()
            ->getMock();
        $index->expects($this->once())
            ->method('getColumns')
            ->will($this->returnValue($indexColumns));

25
        self::assertSame($expectedResult, $foreignKey->intersectsIndexColumns($index));
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
    }

    /**
     * @return array
     */
    public function getIntersectsIndexColumnsData()
    {
        return array(
            array(array('baz'), false),
            array(array('baz', 'bloo'), false),

            array(array('foo'), true),
            array(array('bar'), true),

            array(array('foo', 'bar'), true),
            array(array('bar', 'foo'), true),

            array(array('foo', 'baz'), true),
            array(array('baz', 'foo'), true),

            array(array('bar', 'baz'), true),
            array(array('baz', 'bar'), true),

            array(array('foo', 'bloo', 'baz'), true),
            array(array('bloo', 'foo', 'baz'), true),
            array(array('bloo', 'baz', 'foo'), true),

            array(array('FOO'), true),
        );
    }
}