Skip to content

Commit c9a662d

Browse files
committed
PHPC-653: Tests for WriteConcernError debug handler and methods
1 parent 59da592 commit c9a662d

6 files changed

+184
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
--TEST--
2+
MongoDB\Driver\WriteConcernError debug output
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS("REPLICASET_30"); CLEANUP(REPLICASET_30); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(REPLICASET_30);
11+
12+
$bulk = new MongoDB\Driver\BulkWrite;
13+
$bulk->insert(['x' => 1]);
14+
15+
try {
16+
/* We assume that the replica set does not have 12 nodes */
17+
$manager->executeBulkWrite(NS, $bulk, new MongoDB\Driver\WriteConcern(12));
18+
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
19+
var_dump($e->getWriteResult()->getWriteConcernError());
20+
}
21+
22+
?>
23+
===DONE===
24+
<?php exit(0); ?>
25+
--EXPECTF--
26+
object(MongoDB\Driver\WriteConcernError)#%d (%d) {
27+
["message"]=>
28+
string(29) "Not enough data-bearing nodes"
29+
["code"]=>
30+
int(100)
31+
["info"]=>
32+
NULL
33+
}
34+
===DONE===
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
--TEST--
2+
MongoDB\Driver\WriteConcernError debug output
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; SLOW(); ?>
5+
<?php NEEDS("REPLICASET_30"); CLEANUP(REPLICASET_30); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(REPLICASET_30);
11+
12+
$bulk = new MongoDB\Driver\BulkWrite;
13+
for ($i = 0; $i < 6; $i++) {
14+
$bulk->insert(['x' => $i, 'y' => str_repeat('a', 4194304)]);
15+
}
16+
17+
try {
18+
$manager->executeBulkWrite(NS, $bulk, new MongoDB\Driver\WriteConcern(2, 1));
19+
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
20+
var_dump($e->getWriteResult()->getWriteConcernError());
21+
}
22+
23+
?>
24+
===DONE===
25+
<?php exit(0); ?>
26+
--EXPECTF--
27+
object(MongoDB\Driver\WriteConcernError)#%d (%d) {
28+
["message"]=>
29+
string(33) "waiting for replication timed out"
30+
["code"]=>
31+
int(64)
32+
["info"]=>
33+
object(stdClass)#%d (%d) {
34+
["wtimeout"]=>
35+
bool(true)
36+
}
37+
}
38+
===DONE===
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--TEST--
2+
MongoDB\Driver\WriteConcernError::getCode()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS("REPLICASET_30"); CLEANUP(REPLICASET_30); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(REPLICASET_30);
11+
12+
$bulk = new MongoDB\Driver\BulkWrite;
13+
$bulk->insert(['x' => 1]);
14+
15+
try {
16+
/* We assume that the replica set does not have 12 nodes */
17+
$manager->executeBulkWrite(NS, $bulk, new MongoDB\Driver\WriteConcern(12));
18+
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
19+
var_dump($e->getWriteResult()->getWriteConcernError()->getCode());
20+
}
21+
22+
?>
23+
===DONE===
24+
<?php exit(0); ?>
25+
--EXPECT--
26+
int(100)
27+
===DONE===
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--TEST--
2+
MongoDB\Driver\WriteConcernError::getInfo()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS("REPLICASET_30"); CLEANUP(REPLICASET_30); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(REPLICASET_30);
11+
12+
$bulk = new MongoDB\Driver\BulkWrite;
13+
$bulk->insert(['x' => 1]);
14+
15+
try {
16+
/* We assume that the replica set does not have 12 nodes */
17+
$manager->executeBulkWrite(NS, $bulk, new MongoDB\Driver\WriteConcern(12));
18+
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
19+
var_dump($e->getWriteResult()->getWriteConcernError()->getInfo());
20+
}
21+
22+
?>
23+
===DONE===
24+
<?php exit(0); ?>
25+
--EXPECT--
26+
NULL
27+
===DONE===
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
--TEST--
2+
MongoDB\Driver\WriteConcernError::getInfo()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; SLOW(); ?>
5+
<?php NEEDS("REPLICASET_30"); CLEANUP(REPLICASET_30); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(REPLICASET_30);
11+
12+
$bulk = new MongoDB\Driver\BulkWrite;
13+
for ($i = 0; $i < 6; $i++) {
14+
$bulk->insert(['x' => $i, 'y' => str_repeat('a', 4194304)]);
15+
}
16+
17+
try {
18+
$manager->executeBulkWrite(NS, $bulk, new MongoDB\Driver\WriteConcern(2, 1));
19+
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
20+
var_dump($e->getWriteResult()->getWriteConcernError()->getInfo());
21+
}
22+
23+
?>
24+
===DONE===
25+
<?php exit(0); ?>
26+
--EXPECTF--
27+
object(stdClass)#%d (%d) {
28+
["wtimeout"]=>
29+
bool(true)
30+
}
31+
===DONE===
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--TEST--
2+
MongoDB\Driver\WriteConcernError::getMessage()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS("REPLICASET_30"); CLEANUP(REPLICASET_30); ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(REPLICASET_30);
11+
12+
$bulk = new MongoDB\Driver\BulkWrite;
13+
$bulk->insert(['x' => 1]);
14+
15+
try {
16+
/* We assume that the replica set does not have 12 nodes */
17+
$manager->executeBulkWrite(NS, $bulk, new MongoDB\Driver\WriteConcern(12));
18+
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
19+
var_dump($e->getWriteResult()->getWriteConcernError()->getMessage());
20+
}
21+
22+
?>
23+
===DONE===
24+
<?php exit(0); ?>
25+
--EXPECT--
26+
string(29) "Not enough data-bearing nodes"
27+
===DONE===

0 commit comments

Comments
 (0)