diff --git a/tests/Driver/AbstractDoctrineDriverTest.php b/tests/Driver/AbstractDoctrineDriverTest.php index 9746c254..5da6c224 100644 --- a/tests/Driver/AbstractDoctrineDriverTest.php +++ b/tests/Driver/AbstractDoctrineDriverTest.php @@ -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 @@ -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');