Skip to content

Commit bff26ea

Browse files
tanlisujmikola
andcommitted
Apply suggestions from code review
Co-authored-by: Jeremy Mikola <[email protected]>
1 parent 12baa9f commit bff26ea

File tree

5 files changed

+65
-5
lines changed

5 files changed

+65
-5
lines changed

src/MongoDB/TopologyDescription.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ static PHP_METHOD(TopologyDescription, getType)
105105
/* {{{ MongoDB\Driver\TopologyDescription function entries */
106106
/* clang-format off */
107107
ZEND_BEGIN_ARG_INFO_EX(ai_TopologyDescription_hasReadableServer, 0, 0, 0)
108-
ZEND_ARG_OBJ_INFO(0, readPreference, MongoDB\\Driver\\ReadPreference, 1)
108+
ZEND_ARG_OBJ_INFO(0, readPreference, MongoDB\\Driver\\ReadPreference, 0)
109109
ZEND_END_ARG_INFO()
110110

111111
ZEND_BEGIN_ARG_INFO_EX(ai_TopologyDescription_void, 0, 0, 0)

tests/topologyDescription/topologyDescription-debug-001.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,6 @@ object(MongoDB\Driver\TopologyDescription)#%d (%d) {
4141
%a
4242
}
4343
["type"]=>
44-
string(%d) "%rSingle|Sharded|ReplicaSetWithPrimary%r"
44+
string(%d) "%r(Single|Sharded|ReplicaSetWithPrimary)%r"
4545
}
4646
===DONE===

tests/topologyDescription/topologyDescription-getServers-001.phpt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,25 @@ class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubsc
2727
}
2828
}
2929

30-
function assertIsServerDescriptionsArray(array $sds) {
30+
function isArrayOfServerDescriptions(array $sds) {
31+
if (count($sds) < 1) {
32+
return false;
33+
}
34+
3135
foreach ($sds as $sd) {
3236
if (! $sd instanceof MongoDB\Driver\ServerDescription) {
3337
return false;
3438
}
3539
}
40+
3641
return true;
3742
}
3843

3944
$subscriber = new TopologyDescriptionProvider;
4045
$topologyDescription = $subscriber->getTopologyDescription();
4146
$serverDescriptions = $topologyDescription->getServers();
4247

43-
var_dump(assertIsServerDescriptionsArray($serverDescriptions));
48+
var_dump(isArrayOfServerDescriptions($serverDescriptions));
4449

4550
?>
4651
===DONE===

tests/topologyDescription/topologyDescription-getType-001.phpt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,5 @@ var_dump($topologyDescription->getType());
3535
===DONE===
3636
<?php exit(0); ?>
3737
--EXPECTF--
38-
string(%d) "%rSingle|Sharded|ReplicaSetWithPrimary%r"
38+
string(%d) "%r(Single|Sharded|ReplicaSetWithPrimary)%r"
3939
===DONE===
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
--TEST--
2+
MongoDB\Driver\TopologyDescription::hasReadableServer() (argument with bad type)
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php skip_if_not_live(); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
class TopologyDescriptionProvider implements MongoDB\Driver\Monitoring\SDAMSubscriber
11+
{
12+
private $topologyDescription;
13+
14+
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
15+
{
16+
$this->topologyDescription = $event->getNewDescription();
17+
}
18+
19+
public function getTopologyDescription()
20+
{
21+
$manager = create_test_manager();
22+
$manager->addSubscriber($this);
23+
$manager->executeCommand(DATABASE_NAME, new MongoDB\Driver\Command(['ping' => 1]));
24+
$manager->removeSubscriber($this);
25+
26+
return $this->topologyDescription;
27+
}
28+
}
29+
30+
$tests = [
31+
null,
32+
1,
33+
[],
34+
];
35+
36+
$subscriber = new TopologyDescriptionProvider;
37+
$topologyDescription = $subscriber->getTopologyDescription();
38+
39+
foreach ($tests as $test) {
40+
echo throws(function() use ($topologyDescription, $test) {
41+
$topologyDescription->hasReadableServer($test);
42+
}, TypeError::class), "\n";
43+
}
44+
45+
?>
46+
===DONE===
47+
<?php exit(0); ?>
48+
--EXPECT--
49+
OK: Got TypeError
50+
MongoDB\Driver\TopologyDescription::hasReadableServer(): Argument #1 ($readPreference) must be of type MongoDB\Driver\ReadPreference, null given
51+
OK: Got TypeError
52+
MongoDB\Driver\TopologyDescription::hasReadableServer(): Argument #1 ($readPreference) must be of type MongoDB\Driver\ReadPreference, int given
53+
OK: Got TypeError
54+
MongoDB\Driver\TopologyDescription::hasReadableServer(): Argument #1 ($readPreference) must be of type MongoDB\Driver\ReadPreference, array given
55+
===DONE===

0 commit comments

Comments
 (0)