From e30a90668fb203daa0c066d0491ec36eaf34eef1 Mon Sep 17 00:00:00 2001 From: Jeremy Mikola Date: Fri, 5 May 2017 12:57:48 -0400 Subject: [PATCH] PHPC-579: Regression test mixing update/replacement with BulkWrite::update() CDRIVER-1341 implemented client-side detection of the invalid newObj argument. --- tests/bulk/bulkwrite-update_error-002.phpt | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/tests/bulk/bulkwrite-update_error-002.phpt b/tests/bulk/bulkwrite-update_error-002.phpt index bcd39ece..dddfff96 100644 --- a/tests/bulk/bulkwrite-update_error-002.phpt +++ b/tests/bulk/bulkwrite-update_error-002.phpt @@ -13,6 +13,14 @@ echo throws(function() use ($bulk) { echo throws(function() use ($bulk) { $bulk->update(['x' => 1], ['$set' => ['x' => ["\xc3\x28" => 1]]]); +}, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n\n"; + +/* This newObj argument mixes an update and replacement document, but + * php_phongo_bulkwrite_update_has_operators() will categorize it as an update + * due to the presence of an atomic operator. As such, _mongoc_validate_update() + * will report the error. */ +echo throws(function() use ($bulk) { + $bulk->update(['x' => 1], ['$set' => ['y' => 1], 'z' => 1]); }, 'MongoDB\Driver\Exception\InvalidArgumentException'), "\n"; ?> @@ -24,4 +32,7 @@ update document contains invalid keys OK: Got MongoDB\Driver\Exception\InvalidArgumentException update document contains invalid keys + +OK: Got MongoDB\Driver\Exception\InvalidArgumentException +Invalid key 'z': update only works with $ operators ===DONE=== \ No newline at end of file