Skip to content

Commit 3c71226

Browse files
committed
Merge pull request #445
2 parents 59da592 + 7e895d5 commit 3c71226

29 files changed

+857
-1
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===
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
--TEST--
2+
MongoDB\Driver\WriteError debug output
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE_30'); CLEANUP(STANDALONE_30) ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(STANDALONE_30);
11+
12+
$bulk = new MongoDB\Driver\BulkWrite;
13+
$bulk->insert(['_id' => 1]);
14+
$bulk->insert(['_id' => 1]);
15+
$bulk->insert(['_id' => 1]);
16+
17+
try {
18+
$manager->executeBulkWrite(NS, $bulk);
19+
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
20+
var_dump($e->getWriteResult()->getWriteErrors()[0]);
21+
}
22+
23+
?>
24+
===DONE===
25+
<?php exit(0); ?>
26+
--EXPECTF--
27+
object(MongoDB\Driver\WriteError)#%d (%d) {
28+
["message"]=>
29+
string(95) "E11000 duplicate key error index: phongo.writeError_writeerror_debug_001.$_id_ dup key: { : 1 }"
30+
["code"]=>
31+
int(11000)
32+
["index"]=>
33+
int(1)
34+
["info"]=>
35+
NULL
36+
}
37+
===DONE===
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
--TEST--
2+
MongoDB\Driver\WriteError::getCode()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE_30'); CLEANUP(STANDALONE_30) ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(STANDALONE_30);
11+
12+
$bulk = new MongoDB\Driver\BulkWrite;
13+
$bulk->insert(['_id' => 1]);
14+
$bulk->insert(['_id' => 1]);
15+
$bulk->insert(['_id' => 1]);
16+
17+
try {
18+
$manager->executeBulkWrite(NS, $bulk);
19+
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
20+
var_dump($e->getWriteResult()->getWriteErrors()[0]->getCode());
21+
}
22+
23+
?>
24+
===DONE===
25+
<?php exit(0); ?>
26+
--EXPECT--
27+
int(11000)
28+
===DONE===
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
--TEST--
2+
MongoDB\Driver\WriteError::getIndex()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE_30'); CLEANUP(STANDALONE_30) ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(STANDALONE_30);
11+
12+
$bulk = new MongoDB\Driver\BulkWrite;
13+
$bulk->insert(['_id' => 1]);
14+
$bulk->insert(['_id' => 1]);
15+
$bulk->insert(['_id' => 1]);
16+
17+
try {
18+
$manager->executeBulkWrite(NS, $bulk);
19+
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
20+
var_dump($e->getWriteResult()->getWriteErrors()[0]->getIndex());
21+
}
22+
23+
?>
24+
===DONE===
25+
<?php exit(0); ?>
26+
--EXPECT--
27+
int(1)
28+
===DONE===
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
--TEST--
2+
MongoDB\Driver\WriteError::getInfo()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE_30'); CLEANUP(STANDALONE_30) ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(STANDALONE_30);
11+
12+
$bulk = new MongoDB\Driver\BulkWrite;
13+
$bulk->insert(['_id' => 1]);
14+
$bulk->insert(['_id' => 1]);
15+
$bulk->insert(['_id' => 1]);
16+
17+
try {
18+
$manager->executeBulkWrite(NS, $bulk);
19+
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
20+
// "errInfo" is rarely populated on a WriteError (e.g. shard version error)
21+
var_dump($e->getWriteResult()->getWriteErrors()[0]->getInfo());
22+
}
23+
24+
?>
25+
===DONE===
26+
<?php exit(0); ?>
27+
--EXPECT--
28+
NULL
29+
===DONE===
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
--TEST--
2+
MongoDB\Driver\WriteError::getMessage()
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS('STANDALONE_30'); CLEANUP(STANDALONE_30) ?>
6+
--FILE--
7+
<?php
8+
require_once __DIR__ . "/../utils/basic.inc";
9+
10+
$manager = new MongoDB\Driver\Manager(STANDALONE_30);
11+
12+
$bulk = new MongoDB\Driver\BulkWrite;
13+
$bulk->insert(['_id' => 1]);
14+
$bulk->insert(['_id' => 1]);
15+
$bulk->insert(['_id' => 1]);
16+
17+
try {
18+
$manager->executeBulkWrite(NS, $bulk);
19+
} catch(MongoDB\Driver\Exception\BulkWriteException $e) {
20+
var_dump($e->getWriteResult()->getWriteErrors()[0]->getMessage());
21+
}
22+
23+
?>
24+
===DONE===
25+
<?php exit(0); ?>
26+
--EXPECT--
27+
string(100) "E11000 duplicate key error index: phongo.writeError_writeerror_getMessage_001.$_id_ dup key: { : 1 }"
28+
===DONE===

tests/writeResult/writeresult-debug-002.phpt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
--TEST--
22
MongoDB\Driver\WriteResult debug output with errors
33
--SKIPIF--
4-
<?php require __DIR__ . "/../utils/basic-skipif.inc"; CLEANUP(REPLICASET); ?>
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
5+
<?php NEEDS("REPLICASET"); CLEANUP(REPLICASET); ?>
56
--FILE--
67
<?php
78
require_once __DIR__ . "/../utils/basic.inc";
@@ -19,6 +20,7 @@ $bulk->insert(['_id' => 3]);
1920
$bulk->insert(['_id' => 3]);
2021

2122
try {
23+
/* We assume that the replica set does not have 30 nodes */
2224
$result = $manager->executeBulkWrite(NS, $bulk, new MongoDB\Driver\WriteConcern(30));
2325
} catch (MongoDB\Driver\Exception\BulkWriteException $e) {
2426
var_dump($e->getWriteResult());
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
--TEST--
2+
MongoDB\Driver\WriteResult::getDeletedCount() with acknowledged write
3+
--SKIPIF--
4+
<?php require __DIR__ . "/../utils/basic-skipif.inc"; CLEANUP(STANDALONE) ?>
5+
--FILE--
6+
<?php
7+
require_once __DIR__ . "/../utils/basic.inc";
8+
9+
$manager = new MongoDB\Driver\Manager(STANDALONE);
10+
11+
$bulk = new MongoDB\Driver\BulkWrite;
12+
$bulk->insert(['x' => 1]);
13+
$bulk->update(['x' => 1], ['$set' => ['y' => 3]]);
14+
$bulk->update(['x' => 2], ['$set' => ['y' => 1]], ['upsert' => true]);
15+
$bulk->update(['x' => 3], ['$set' => ['y' => 2]], ['upsert' => true]);
16+
$bulk->delete(['x' => 1]);
17+
18+
$result = $manager->executeBulkWrite(NS, $bulk);
19+
20+
var_dump($result->getDeletedCount());
21+
22+
?>
23+
===DONE===
24+
<?php exit(0); ?>
25+
--EXPECT--
26+
int(1)
27+
===DONE===

0 commit comments

Comments
 (0)