Skip to content

Commit

Permalink
bernardphp#251 the doctrine driver should not attempt inserts for alr…
Browse files Browse the repository at this point in the history
…eady existing repositories
  • Loading branch information
Ocramius authored and acrobat committed Jul 9, 2017
1 parent b3931e9 commit 9968e95
Showing 1 changed file with 21 additions and 1 deletion.
22 changes: 21 additions & 1 deletion tests/Driver/AbstractDoctrineDriverTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,8 @@

use Bernard\Doctrine\MessagesSchema;
use Bernard\Driver\DoctrineDriver;
use Doctrine\DBAL\Platforms\MySqlPlatform;

use Doctrine\DBAL\Connection;use Doctrine\DBAL\Platforms\MySqlPlatform;use Doctrine\DBAL\Logging\DebugStack;
use Doctrine\DBAL\Schema\Schema;

abstract class AbstractDoctrineDriverTest extends \PHPUnit_Framework_TestCase
Expand Down Expand Up @@ -72,6 +73,25 @@ public function testCreateAndRemoveQueue()
$this->assertEquals(array('send-newsletter'), $this->driver->listQueues());
}

public function testCreateQueueWillNotAttemptDuplicateQueueCreation()
{
$logger = new DebugStack();

$this->connection->getConfiguration()->setSQLLogger($logger);

$this->driver->createQueue('import-users');
$this->driver->createQueue('import-users');

self::assertCount(7, $logger->queries);
self::assertStringMatchesFormat('%aSTART TRANSACTION%a', $logger->queries[1]['sql']);
self::assertStringStartsWith('SELECT ', $logger->queries[2]['sql']);
self::assertStringStartsWith('INSERT ', $logger->queries[3]['sql']);
self::assertStringMatchesFormat('%aCOMMIT%a', $logger->queries[4]['sql']);
self::assertStringMatchesFormat('%aSTART TRANSACTION%a', $logger->queries[5]['sql']);
self::assertStringStartsWith('SELECT ', $logger->queries[6]['sql']);
self::assertStringMatchesFormat('%aCOMMIT%a', $logger->queries[7]['sql']);
}

public function testPushMessageLazilyCreatesQueue()
{
$this->driver->pushMessage('send-newsletter', 'something');
Expand Down

0 comments on commit 9968e95

Please sign in to comment.