Skip to content

Commit

Permalink
Fix resetting static connections after test with data provider (#244)
Browse files Browse the repository at this point in the history
  • Loading branch information
marmichalski authored Feb 7, 2023
1 parent 91abe52 commit 175b471
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 9 deletions.
18 changes: 9 additions & 9 deletions src/DAMA/DoctrineTestBundle/PHPUnit/PHPUnitExtension.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@
use PHPUnit\Event\Test\FinishedSubscriber as TestFinishedSubscriber;
use PHPUnit\Event\Test\PreparationStarted as TestStartedEvent;
use PHPUnit\Event\Test\PreparationStartedSubscriber as TestStartedSubscriber;
use PHPUnit\Event\TestSuite\Finished as TestSuiteFinishedEvent;
use PHPUnit\Event\TestSuite\FinishedSubscriber as TestSuiteFinishedSubscriber;
use PHPUnit\Event\TestSuite\Started as TestSuiteStartedEvent;
use PHPUnit\Event\TestSuite\StartedSubscriber as TestSuiteStartedSubscriber;
use PHPUnit\Event\TestRunner\Finished as TestRunnerFinishedEvent;
use PHPUnit\Event\TestRunner\FinishedSubscriber as TestRunnerFinishedSubscriber;
use PHPUnit\Event\TestRunner\Started as TestRunnerStartedEvent;
use PHPUnit\Event\TestRunner\StartedSubscriber as TestRunnerStartedSubscriber;
use PHPUnit\Runner\AfterLastTestHook;
use PHPUnit\Runner\AfterTestHook;
use PHPUnit\Runner\BeforeFirstTestHook;
Expand All @@ -20,16 +20,16 @@
use PHPUnit\Runner\Extension\ParameterCollection;
use PHPUnit\TextUI\Configuration\Configuration;

if (class_exists(TestSuiteStartedEvent::class)) {
if (class_exists(TestRunnerStartedEvent::class)) {
/**
* PHPUnit >= 10.
*/
class PHPUnitExtension implements Extension
{
public function bootstrap(Configuration $configuration, Facade $facade, ParameterCollection $parameters): void
{
$facade->registerSubscriber(new class() implements TestSuiteStartedSubscriber {
public function notify(TestSuiteStartedEvent $event): void
$facade->registerSubscriber(new class() implements TestRunnerStartedSubscriber {
public function notify(TestRunnerStartedEvent $event): void
{
StaticDriver::setKeepStaticConnections(true);
}
Expand All @@ -49,8 +49,8 @@ public function notify(TestFinishedEvent $event): void
}
});

$facade->registerSubscriber(new class() implements TestSuiteFinishedSubscriber {
public function notify(TestSuiteFinishedEvent $event): void
$facade->registerSubscriber(new class() implements TestRunnerFinishedSubscriber {
public function notify(TestRunnerFinishedEvent $event): void
{
StaticDriver::setKeepStaticConnections(false);
}
Expand Down
18 changes: 18 additions & 0 deletions tests/Functional/PhpunitTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,24 @@ public function testPreviousChangesAreRolledBack(): void
$this->assertTrue($this->connection->isTransactionActive());
}

/**
* @dataProvider someDataProvider
*/
public function testWithDataProvider(int $expectedRowCount): void
{
$this->assertRowCount($expectedRowCount);
$this->insertRow();
$this->assertTrue($this->connection->isTransactionActive());
}

/**
* @return iterable<array{int}>
*/
public static function someDataProvider(): iterable
{
yield [0];
}

public function testChangeDbStateForReplicaConnection(): void
{
$this->connection = $this->kernel->getContainer()->get('doctrine.dbal.replica_connection');
Expand Down

0 comments on commit 175b471

Please sign in to comment.