Skip to content

Commit

Permalink
Extract a method to assert read preference mode
Browse files Browse the repository at this point in the history
  • Loading branch information
Oriol Parcerisa committed Oct 3, 2024
1 parent 84d95eb commit ef15b4d
Showing 1 changed file with 7 additions and 26 deletions.
33 changes: 7 additions & 26 deletions tests/Unit/Capsule/DatabaseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,10 +35,6 @@ public function test_selectCollection(): void

public function test_withOptions_using_mongodb_extension_lower_than_1_20_0(): void
{
if (version_compare(phpversion('mongodb'), '1.20.0', '>=')) {
$this->markTestSkipped('This test requires mongodb extension version 1.20.0 or later.');
}

$manager = new Manager('mongodb://localhost');
$logger = $this->prophesize(EventDispatcherInterface::class);

Expand All @@ -52,31 +48,16 @@ public function test_withOptions_using_mongodb_extension_lower_than_1_20_0(): vo
$debugInfo = $newDb->__debugInfo();
self::assertSame($manager, $debugInfo['manager']);
self::assertEquals('testdb', $debugInfo['databaseName']);
self::assertEquals(ReadPreference::RP_NEAREST, $debugInfo['readPreference']->getMode());

$this->assertReadPreferenceMode($debugInfo['readPreference']);
}

/**
* @requires extension mongodb 1.20.0
*/
public function test_withOptions_using_mongodb_extension_1_20_0_or_greater(): void
public function assertReadPreferenceMode(ReadPreference $readPreference): void
{
if (version_compare(phpversion('mongodb'), '1.20.0', '<')) {
$this->markTestSkipped('This test requires mongodb extension version 1.20.0 or later.');
if (method_exists(ReadPreference::class, 'getModeString')) {
self::assertEquals(ReadPreference::NEAREST, $readPreference->getModeString());
} else {
self::assertEquals(ReadPreference::RP_NEAREST, $readPreference->getMode());
}

$manager = new Manager('mongodb://localhost');
$logger = $this->prophesize(EventDispatcherInterface::class);

$db = new Database($manager, 'client_name', 'testdb', [], $logger->reveal());
self::assertInstanceOf(\MongoDB\Database::class, $db);

$newDb = $db->withOptions(['readPreference' => new ReadPreference(ReadPreference::NEAREST)]);

self::assertInstanceOf(Database::class, $newDb);

$debugInfo = $newDb->__debugInfo();
self::assertSame($manager, $debugInfo['manager']);
self::assertEquals('testdb', $debugInfo['databaseName']);
self::assertEquals(ReadPreference::NEAREST, $debugInfo['readPreference']->getModeString());
}
}

0 comments on commit ef15b4d

Please sign in to comment.