Skip to content

Commit b2e90bb

Browse files
committed
Add test cases
1 parent b286fef commit b2e90bb

14 files changed

+519
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
--TEST--
2+
MongoDB\Driver\Manager::executeWriteCommand()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE'); CLEANUP(STANDALONE); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
require_once __DIR__ . "/../utils/observer.php";
10+
11+
$manager = new MongoDB\Driver\Manager(STANDALONE);
12+
13+
(new CommandObserver)->observe(
14+
function() use ($manager) {
15+
$command = new MongoDB\Driver\Command([
16+
'ping' => true,
17+
]);
18+
$manager->executeCommand(
19+
DATABASE_NAME,
20+
$command,
21+
[
22+
'readPreference' => new \MongoDB\Driver\ReadPreference(\MongoDB\Driver\ReadPreference::RP_SECONDARY),
23+
'readConcern' => new \MongoDB\Driver\ReadConcern(\MongoDB\Driver\ReadConcern::LOCAL),
24+
/* The ping command itself doesn't support writeConcern */
25+
// 'writeConcern' => new \MongoDB\Driver\WriteConcern(\MongoDB\Driver\WriteConcern::MAJORITY),
26+
]
27+
);
28+
},
29+
function(stdClass $command) {
30+
echo "Read Preference: ", $command->{'$readPreference'}->mode, "\n";
31+
echo "Read Concern: ", $command->readConcern->level, "\n";
32+
// echo "Write Concern: ", $command->writeConcern->w, "\n";
33+
}
34+
);
35+
36+
?>
37+
===DONE===
38+
<?php exit(0); ?>
39+
--EXPECTF--
40+
Read Preference: secondary
41+
Read Concern: local
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\Manager::executeReadCommand()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE'); CLEANUP(STANDALONE); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
require_once __DIR__ . "/../utils/observer.php";
10+
11+
$manager = new MongoDB\Driver\Manager(STANDALONE);
12+
13+
(new CommandObserver)->observe(
14+
function() use ($manager) {
15+
$command = new MongoDB\Driver\Command( [
16+
'aggregate' => NS,
17+
'pipeline' => [],
18+
'cursor' => new stdClass(),
19+
] );
20+
$manager->executeReadCommand(
21+
DATABASE_NAME,
22+
$command,
23+
[
24+
'readPreference' => new \MongoDB\Driver\ReadPreference(\MongoDB\Driver\ReadPreference::RP_SECONDARY),
25+
'readConcern' => new \MongoDB\Driver\ReadConcern(\MongoDB\Driver\ReadConcern::MAJORITY),
26+
]
27+
);
28+
},
29+
function(stdClass $command) {
30+
echo "Read Preference: ", $command->{'$readPreference'}->mode, "\n";
31+
echo "Read Concern: ", $command->readConcern->level, "\n";
32+
}
33+
);
34+
35+
36+
?>
37+
===DONE===
38+
<?php exit(0); ?>
39+
--EXPECTF--
40+
Read Preference: secondary
41+
Read Concern: majority
42+
===DONE===
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
--TEST--
2+
MongoDB\Driver\Manager::executeReadCommand()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE'); CLEANUP(STANDALONE); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(STANDALONE);
11+
12+
$command = new MongoDB\Driver\Command([]);
13+
14+
echo throws(function() use ($manager, $command) {
15+
$manager->executeReadCommand(
16+
DATABASE_NAME, $command,
17+
[
18+
'writeConcern' => new \MongoDB\Driver\ReadConcern(\MongoDB\Driver\WriteConcern::MAJORITY),
19+
]
20+
);
21+
}, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n";
22+
?>
23+
===DONE===
24+
<?php exit(0); ?>
25+
--EXPECTF--
26+
OK: Got MongoDB\Driver\Exception\InvalidArgumentException
27+
Unknown option 'writeConcern'
28+
===DONE===
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
--TEST--
2+
MongoDB\Driver\Manager::executeReadWriteCommand()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE'); CLEANUP(STANDALONE); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
require_once __DIR__ . "/../utils/observer.php";
10+
11+
$manager = new MongoDB\Driver\Manager(STANDALONE);
12+
13+
(new CommandObserver)->observe(
14+
function() use ($manager) {
15+
$command = new MongoDB\Driver\Command( [
16+
'findAndModify' => NS,
17+
'update' => [ '$set' => [ 'foo' => 'bar' ] ],
18+
] );
19+
$manager->executeReadWriteCommand(
20+
DATABASE_NAME,
21+
$command,
22+
[
23+
'readConcern' => new \MongoDB\Driver\ReadConcern(\MongoDB\Driver\ReadConcern::LOCAL),
24+
'writeConcern' => new \MongoDB\Driver\WriteConcern(\MongoDB\Driver\WriteConcern::MAJORITY),
25+
]
26+
);
27+
},
28+
function(stdClass $command) {
29+
echo "Read Concern: ", $command->readConcern->level, "\n";
30+
echo "Write Concern: ", $command->writeConcern->w, "\n";
31+
}
32+
);
33+
34+
?>
35+
===DONE===
36+
<?php exit(0); ?>
37+
--EXPECTF--
38+
Read Concern: local
39+
Write Concern: majority
40+
===DONE===
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
--TEST--
2+
MongoDB\Driver\Manager::executeReadWriteCommand()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE'); CLEANUP(STANDALONE); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(STANDALONE);
11+
12+
$command = new MongoDB\Driver\Command([]);
13+
14+
echo throws(function() use ($manager, $command) {
15+
$manager->executeReadWriteCommand(
16+
DATABASE_NAME, $command,
17+
[
18+
'readPreference' => new \MongoDB\Driver\ReadPreference(\MongoDB\Driver\ReadPreference::RP_SECONDARY),
19+
]
20+
);
21+
}, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n";
22+
23+
?>
24+
===DONE===
25+
<?php exit(0); ?>
26+
--EXPECTF--
27+
OK: Got MongoDB\Driver\Exception\InvalidArgumentException
28+
Unknown option 'readPreference'
29+
===DONE===
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
--TEST--
2+
MongoDB\Driver\Manager::executeWriteCommand()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE'); CLEANUP(STANDALONE); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
require_once __DIR__ . "/../utils/observer.php";
10+
11+
$manager = new MongoDB\Driver\Manager(STANDALONE);
12+
13+
$bw = new MongoDB\Driver\BulkWrite();
14+
$bw->insert(['a' => 1]);
15+
$manager->executeBulkWrite(NS, $bw);
16+
17+
(new CommandObserver)->observe(
18+
function() use ($manager) {
19+
$command = new MongoDB\Driver\Command([
20+
'drop' => COLLECTION_NAME,
21+
]);
22+
$manager->executeWriteCommand(
23+
DATABASE_NAME,
24+
$command,
25+
[
26+
'writeConcern' => new \MongoDB\Driver\WriteConcern(\MongoDB\Driver\WriteConcern::MAJORITY),
27+
]
28+
);
29+
},
30+
function(stdClass $command) {
31+
echo "Write Concern: ", $command->writeConcern->w, "\n";
32+
}
33+
);
34+
35+
?>
36+
===DONE===
37+
<?php exit(0); ?>
38+
--EXPECTF--
39+
Write Concern: majority
40+
===DONE===
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
--TEST--
2+
MongoDB\Driver\Manager::executeWriteCommand()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE'); CLEANUP(STANDALONE); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
require_once __DIR__ . "/../utils/observer.php";
10+
11+
$manager = new MongoDB\Driver\Manager(STANDALONE);
12+
13+
$command = new MongoDB\Driver\Command([]);
14+
15+
echo throws(function() use ($manager, $command) {
16+
$manager->executeWriteCommand(
17+
DATABASE_NAME, $command,
18+
[
19+
'readConcern' => new \MongoDB\Driver\ReadConcern(\MongoDB\Driver\ReadConcern::MAJORITY),
20+
]
21+
);
22+
}, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n";
23+
24+
echo throws(function() use ($manager, $command) {
25+
$manager->executeWriteCommand(
26+
DATABASE_NAME, $command,
27+
[
28+
'readPreference' => new \MongoDB\Driver\ReadConcern(\MongoDB\Driver\ReadPreference::RP_NEAREST),
29+
]
30+
);
31+
}, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n";
32+
?>
33+
===DONE===
34+
<?php exit(0); ?>
35+
--EXPECTF--
36+
OK: Got MongoDB\Driver\Exception\InvalidArgumentException
37+
Unknown option 'readConcern'
38+
OK: Got MongoDB\Driver\Exception\InvalidArgumentException
39+
Unknown option 'readPreference'
40+
===DONE===
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
--TEST--
2+
MongoDB\Driver\Manager::executeReadCommand()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE'); CLEANUP(STANDALONE); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
require_once __DIR__ . "/../utils/observer.php";
10+
11+
$manager = new MongoDB\Driver\Manager(STANDALONE);
12+
$server = $manager->selectServer(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY));
13+
14+
(new CommandObserver)->observe(
15+
function() use ($server) {
16+
$command = new MongoDB\Driver\Command( [
17+
'aggregate' => NS,
18+
'pipeline' => [],
19+
'cursor' => new stdClass(),
20+
] );
21+
$server->executeReadCommand(
22+
DATABASE_NAME,
23+
$command,
24+
[
25+
'readPreference' => new \MongoDB\Driver\ReadPreference(\MongoDB\Driver\ReadPreference::RP_SECONDARY),
26+
'readConcern' => new \MongoDB\Driver\ReadConcern(\MongoDB\Driver\ReadConcern::MAJORITY),
27+
]
28+
);
29+
},
30+
function(stdClass $command) {
31+
echo "Read Preference: ", $command->{'$readPreference'}->mode, "\n";
32+
echo "Read Concern: ", $command->readConcern->level, "\n";
33+
}
34+
);
35+
36+
37+
?>
38+
===DONE===
39+
<?php exit(0); ?>
40+
--EXPECTF--
41+
Read Preference: secondary
42+
Read Concern: majority
43+
===DONE===
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
--TEST--
2+
MongoDB\Driver\Manager::executeReadCommand()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE'); CLEANUP(STANDALONE); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(STANDALONE);
11+
$server = $manager->selectServer(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY));
12+
13+
$command = new MongoDB\Driver\Command([]);
14+
15+
echo throws(function() use ($server, $command) {
16+
$server->executeReadCommand(
17+
DATABASE_NAME, $command,
18+
[
19+
'writeConcern' => new \MongoDB\Driver\ReadConcern(\MongoDB\Driver\WriteConcern::MAJORITY),
20+
]
21+
);
22+
}, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n";
23+
?>
24+
===DONE===
25+
<?php exit(0); ?>
26+
--EXPECTF--
27+
OK: Got MongoDB\Driver\Exception\InvalidArgumentException
28+
Unknown option 'writeConcern'
29+
===DONE===
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
--TEST--
2+
MongoDB\Driver\Manager::executeReadWriteCommand()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE'); CLEANUP(STANDALONE); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
require_once __DIR__ . "/../utils/observer.php";
10+
11+
$manager = new MongoDB\Driver\Manager(STANDALONE);
12+
$server = $manager->selectServer(new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_SECONDARY));
13+
14+
(new CommandObserver)->observe(
15+
function() use ($server) {
16+
$command = new MongoDB\Driver\Command( [
17+
'findAndModify' => NS,
18+
'update' => [ '$set' => [ 'foo' => 'bar' ] ],
19+
] );
20+
$server->executeReadWriteCommand(
21+
DATABASE_NAME,
22+
$command,
23+
[
24+
'readConcern' => new \MongoDB\Driver\ReadConcern(\MongoDB\Driver\ReadConcern::LOCAL),
25+
'writeConcern' => new \MongoDB\Driver\WriteConcern(\MongoDB\Driver\WriteConcern::MAJORITY),
26+
]
27+
);
28+
},
29+
function(stdClass $command) {
30+
echo "Read Concern: ", $command->readConcern->level, "\n";
31+
echo "Write Concern: ", $command->writeConcern->w, "\n";
32+
}
33+
);
34+
35+
?>
36+
===DONE===
37+
<?php exit(0); ?>
38+
--EXPECTF--
39+
Read Concern: local
40+
Write Concern: majority
41+
===DONE===

0 commit comments

Comments
 (0)