summaryrefslogtreecommitdiff
path: root/jstests/update4.js
diff options
context:
space:
mode:
Diffstat (limited to 'jstests/update4.js')
-rw-r--r--jstests/update4.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/jstests/update4.js b/jstests/update4.js
new file mode 100644
index 0000000..1502f67
--- /dev/null
+++ b/jstests/update4.js
@@ -0,0 +1,33 @@
+f = db.jstests_update4;
+f.drop();
+
+getLastError = function() {
+ ret = db.runCommand( { getlasterror : 1 } );
+// printjson( ret );
+ return ret;
+}
+
+f.save( {a:1} );
+f.update( {a:1}, {a:2} );
+assert.eq( true, getLastError().updatedExisting , "A" );
+assert.eq( 1, getLastError().n , "B" );
+f.update( {a:1}, {a:2} );
+assert.eq( false, getLastError().updatedExisting , "C" );
+assert.eq( 0, getLastError().n , "D" );
+
+f.update( {a:1}, {a:1}, true );
+assert.eq( false, getLastError().updatedExisting , "E" );
+assert.eq( 1, getLastError().n , "F" );
+f.update( {a:1}, {a:1}, true );
+assert.eq( true, getLastError().updatedExisting , "G" );
+assert.eq( 1, getLastError().n , "H" );
+assert.eq( true, db.getPrevError().updatedExisting , "I" );
+assert.eq( 1, db.getPrevError().nPrev , "J" );
+
+f.findOne();
+assert.eq( undefined, getLastError().updatedExisting , "K" );
+assert.eq( true, db.getPrevError().updatedExisting , "L" );
+assert.eq( 2, db.getPrevError().nPrev , "M" );
+
+db.forceError();
+assert.eq( undefined, getLastError().updatedExisting , "N" );