Commit d328488d authored by Guilherme Blanco's avatar Guilherme Blanco

Merge pull request #586 from JeroenDeDauw/DropSchemaSqlCollector

Change weird way of adding an entry to SplObjectStorage
parents 4a7ff71e 4ef88ef0
......@@ -80,8 +80,7 @@ class DropSchemaSqlCollector extends AbstractVisitor
throw SchemaException::namedForeignKeyRequired($localTable, $fkConstraint);
}
$this->constraints->attach($fkConstraint);
$this->constraints[$fkConstraint] = $localTable;
$this->constraints->attach($fkConstraint, $localTable);
}
/**
......
<?php
namespace Doctrine\Tests\DBAL\Schema\Visitor;
use \Doctrine\DBAL\Schema\Visitor\DropSchemaSqlCollector;
class DropSchemaSqlCollectorTest extends \PHPUnit_Framework_TestCase
{
public function testGetQueriesUsesAcceptedForeignKeys()
{
$tableOne = $this->getMockWithoutArguments('Doctrine\DBAL\Schema\Table');
$tableTwo = $this->getMockWithoutArguments('Doctrine\DBAL\Schema\Table');
$keyConstraintOne = $this->getStubKeyConstraint('first');
$keyConstraintTwo = $this->getStubKeyConstraint('second');
$platform = $this->getMockBuilder('Doctrine\DBAL\Platforms\AbstractPlatform')
->setMethods(array('getDropForeignKeySQL'))
->getMockForAbstractClass();
$collector = new DropSchemaSqlCollector($platform);
$platform->expects($this->exactly(2))
->method('getDropForeignKeySQL');
$platform->expects($this->at(0))
->method('getDropForeignKeySQL')
->with($keyConstraintOne, $tableOne);
$platform->expects($this->at(1))
->method('getDropForeignKeySQL')
->with($keyConstraintTwo, $tableTwo);
$collector->acceptForeignKey($tableOne, $keyConstraintOne);
$collector->acceptForeignKey($tableTwo, $keyConstraintTwo);
$collector->getQueries();
}
private function getMockWithoutArguments($className)
{
return $this->getMockBuilder($className)->disableOriginalConstructor()->getMock();
}
private function getStubKeyConstraint($name)
{
$constraint = $this->getMockWithoutArguments('Doctrine\DBAL\Schema\ForeignKeyConstraint');
$constraint->expects($this->any())
->method('getName')
->will($this->returnValue($name));
return $constraint;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment