Skip to content

Commit 40cc244

Browse files
committed
Add TopologyDescription tests
1 parent 00853e6 commit 40cc244

6 files changed

+252
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
--TEST--
2+
MongoDB\Driver\TopologyDescription debug output
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+
$manager = create_test_manager();
11+
12+
class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
13+
{
14+
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
15+
{
16+
$topologyDescription = $event->getNewDescription();
17+
var_dump($topologyDescription);
18+
}
19+
}
20+
21+
$subscriber = new MySubscriber;
22+
MongoDB\Driver\Monitoring\addSubscriber($subscriber);
23+
24+
$command = new MongoDB\Driver\Command(['ping' => 1]);
25+
$manager->executeCommand(DATABASE_NAME, $command);
26+
27+
?>
28+
===DONE===
29+
<?php exit(0); ?>
30+
--EXPECTF--
31+
object(MongoDB\Driver\TopologyDescription)#%d (%d) {
32+
%a
33+
}
34+
object(MongoDB\Driver\TopologyDescription)#%d (%d) {
35+
%a
36+
}
37+
object(MongoDB\Driver\TopologyDescription)#%d (%d) {
38+
%a
39+
}
40+
===DONE===
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
--TEST--
2+
MongoDB\Driver\TopologyDescription::getServers()
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+
$manager = create_test_manager();
11+
12+
class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
13+
{
14+
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
15+
{
16+
$topologyDescription = $event->getNewDescription();
17+
var_dump($topologyDescription->getServers());
18+
}
19+
}
20+
21+
$subscriber = new MySubscriber;
22+
MongoDB\Driver\Monitoring\addSubscriber($subscriber);
23+
24+
$command = new MongoDB\Driver\Command(['ping' => 1]);
25+
$manager->executeCommand(DATABASE_NAME, $command);
26+
27+
?>
28+
===DONE===
29+
<?php exit(0); ?>
30+
--EXPECTF--
31+
array(%d) {%A
32+
}
33+
array(%d) {%A
34+
}
35+
array(%d) {%A
36+
}
37+
===DONE===
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
--TEST--
2+
MongoDB\Driver\TopologyDescription::getType()
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+
$manager = create_test_manager();
11+
12+
class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
13+
{
14+
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
15+
{
16+
$expected_types = array(
17+
MongoDB\Driver\TopologyDescription::TYPE_UNKNOWN,
18+
MongoDB\Driver\TopologyDescription::TYPE_SINGLE,
19+
MongoDB\Driver\TopologyDescription::TYPE_SHARDED,
20+
MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_NO_PRIMARY,
21+
MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_WITH_PRIMARY
22+
);
23+
24+
$topologyDescription = $event->getNewDescription();
25+
var_dump(in_array($topologyDescription->getType(), $expected_types));
26+
}
27+
}
28+
29+
$subscriber = new MySubscriber;
30+
MongoDB\Driver\Monitoring\addSubscriber($subscriber);
31+
32+
$command = new MongoDB\Driver\Command(['ping' => 1]);
33+
$manager->executeCommand(DATABASE_NAME, $command);
34+
35+
?>
36+
===DONE===
37+
<?php exit(0); ?>
38+
--EXPECTF--
39+
bool(true)
40+
bool(true)
41+
bool(true)
42+
===DONE===
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
--TEST--
2+
MongoDB\Driver\TopologyDescription::hasReadableServer()
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+
$manager = create_test_manager();
11+
12+
class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
13+
{
14+
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
15+
{
16+
$expected_types = array(
17+
MongoDB\Driver\TopologyDescription::TYPE_UNKNOWN,
18+
MongoDB\Driver\TopologyDescription::TYPE_SINGLE,
19+
MongoDB\Driver\TopologyDescription::TYPE_SHARDED,
20+
MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_NO_PRIMARY,
21+
MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_WITH_PRIMARY
22+
);
23+
24+
$topologyDescription = $event->getNewDescription();
25+
var_dump($topologyDescription->hasReadableServer());
26+
}
27+
}
28+
29+
$subscriber = new MySubscriber;
30+
MongoDB\Driver\Monitoring\addSubscriber($subscriber);
31+
32+
$command = new MongoDB\Driver\Command(['ping' => 1]);
33+
$manager->executeCommand(DATABASE_NAME, $command);
34+
35+
?>
36+
===DONE===
37+
<?php exit(0); ?>
38+
--EXPECTF--
39+
bool(%s)
40+
bool(%s)
41+
bool(%s)
42+
===DONE===
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
--TEST--
2+
MongoDB\Driver\TopologyDescription::hasWritableServer()
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+
$manager = create_test_manager();
11+
12+
class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
13+
{
14+
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
15+
{
16+
$expected_types = array(
17+
MongoDB\Driver\TopologyDescription::TYPE_UNKNOWN,
18+
MongoDB\Driver\TopologyDescription::TYPE_SINGLE,
19+
MongoDB\Driver\TopologyDescription::TYPE_SHARDED,
20+
MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_NO_PRIMARY,
21+
MongoDB\Driver\TopologyDescription::TYPE_REPLICA_SET_WITH_PRIMARY
22+
);
23+
24+
$topologyDescription = $event->getNewDescription();
25+
var_dump($topologyDescription->hasWritableServer());
26+
}
27+
}
28+
29+
$subscriber = new MySubscriber;
30+
MongoDB\Driver\Monitoring\addSubscriber($subscriber);
31+
32+
$command = new MongoDB\Driver\Command(['ping' => 1]);
33+
$manager->executeCommand(DATABASE_NAME, $command);
34+
35+
?>
36+
===DONE===
37+
<?php exit(0); ?>
38+
--EXPECTF--
39+
bool(%s)
40+
bool(%s)
41+
bool(%s)
42+
===DONE===
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
--TEST--
2+
MongoDB\Driver\TopologyDescription: var_export()
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+
$manager = create_test_manager();
11+
12+
class MySubscriber implements MongoDB\Driver\Monitoring\SDAMSubscriber
13+
{
14+
public function topologyChanged(MongoDB\Driver\Monitoring\TopologyChangedEvent $event)
15+
{
16+
$topologyDescription = $event->getNewDescription();
17+
echo var_export($topologyDescription, true), "\n";
18+
}
19+
}
20+
21+
$subscriber = new MySubscriber;
22+
MongoDB\Driver\Monitoring\addSubscriber($subscriber);
23+
24+
$command = new MongoDB\Driver\Command(['ping' => 1]);
25+
$manager->executeCommand(DATABASE_NAME, $command);
26+
27+
?>
28+
===DONE===
29+
<?php exit(0); ?>
30+
--EXPECTF--
31+
MongoDB\Driver\TopologyDescription::__set_state(array(
32+
'servers' =>
33+
array (%A
34+
),
35+
'type' => '%s',
36+
))
37+
MongoDB\Driver\TopologyDescription::__set_state(array(
38+
'servers' =>
39+
array (%A
40+
),
41+
'type' => '%s',
42+
))
43+
MongoDB\Driver\TopologyDescription::__set_state(array(
44+
'servers' =>
45+
array (%A
46+
),
47+
'type' => '%s',
48+
))
49+
===DONE===

0 commit comments

Comments
 (0)