Skip to content

Commit

Permalink
test(crud): add tests for hint in update commands
Browse files Browse the repository at this point in the history
  • Loading branch information
mbroadst committed Oct 21, 2019
1 parent 41415e9 commit e87e154
Show file tree
Hide file tree
Showing 8 changed files with 1,009 additions and 0 deletions.
250 changes: 250 additions & 0 deletions test/functional/spec/crud/v2/bulkWrite-update-hint.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,250 @@
{
"runOn": [
{
"minServerVersion": "4.2.0"
}
],
"data": [
{
"_id": 1,
"x": 11
},
{
"_id": 2,
"x": 22
},
{
"_id": 3,
"x": 33
},
{
"_id": 4,
"x": 44
}
],
"collection_name": "test_bulkwrite_update_hint",
"tests": [
{
"description": "BulkWrite with update hints",
"operations": [
{
"name": "bulkWrite",
"arguments": {
"requests": [
{
"name": "updateOne",
"arguments": {
"filter": {
"_id": 1
},
"update": {
"$inc": {
"x": 1
}
},
"hint": "_id_"
}
},
{
"name": "updateOne",
"arguments": {
"filter": {
"_id": 1
},
"update": {
"$inc": {
"x": 1
}
},
"hint": {
"_id": 1
}
}
},
{
"name": "updateMany",
"arguments": {
"filter": {
"_id": {
"$lt": 3
}
},
"update": {
"$inc": {
"x": 1
}
},
"hint": "_id_"
}
},
{
"name": "updateMany",
"arguments": {
"filter": {
"_id": {
"$lt": 3
}
},
"update": {
"$inc": {
"x": 1
}
},
"hint": {
"_id": 1
}
}
},
{
"name": "replaceOne",
"arguments": {
"filter": {
"_id": 3
},
"replacement": {
"x": 333
},
"hint": "_id_"
}
},
{
"name": "replaceOne",
"arguments": {
"filter": {
"_id": 4
},
"replacement": {
"x": 444
},
"hint": {
"_id": 1
}
}
}
],
"options": {
"ordered": true
}
},
"result": {
"deletedCount": 0,
"insertedCount": 0,
"insertedIds": {},
"matchedCount": 8,
"modifiedCount": 8,
"upsertedCount": 0,
"upsertedIds": {}
}
}
],
"expectations": [
{
"command_started_event": {
"command": {
"update": "test_bulkwrite_update_hint",
"updates": [
{
"q": {
"_id": 1
},
"u": {
"$inc": {
"x": 1
}
},
"hint": "_id_"
},
{
"q": {
"_id": 1
},
"u": {
"$inc": {
"x": 1
}
},
"hint": {
"_id": 1
}
},
{
"q": {
"_id": {
"$lt": 3
}
},
"u": {
"$inc": {
"x": 1
}
},
"multi": true,
"hint": "_id_"
},
{
"q": {
"_id": {
"$lt": 3
}
},
"u": {
"$inc": {
"x": 1
}
},
"multi": true,
"hint": {
"_id": 1
}
},
{
"q": {
"_id": 3
},
"u": {
"x": 333
},
"hint": "_id_"
},
{
"q": {
"_id": 4
},
"u": {
"x": 444
},
"hint": {
"_id": 1
}
}
],
"ordered": true
}
}
}
],
"outcome": {
"collection": {
"data": [
{
"_id": 1,
"x": 15
},
{
"_id": 2,
"x": 24
},
{
"_id": 3,
"x": 333
},
{
"_id": 4,
"x": 444
}
]
}
}
}
]
}
104 changes: 104 additions & 0 deletions test/functional/spec/crud/v2/bulkWrite-update-hint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
runOn:
- { minServerVersion: "4.2.0" }

data:
- {_id: 1, x: 11}
- {_id: 2, x: 22}
- {_id: 3, x: 33}
- {_id: 4, x: 44}

collection_name: &collection_name 'test_bulkwrite_update_hint'

tests:
-
description: "BulkWrite with update hints"
operations:
-
name: "bulkWrite"
arguments:
requests:
-
name: "updateOne"
arguments:
filter: &updateOne_filter { _id: 1 }
update: &updateOne_update { $inc: { x: 1 } }
hint: &hint_string "_id_"
-
name: "updateOne"
arguments:
filter: *updateOne_filter
update: *updateOne_update
hint: &hint_doc { _id: 1 }
-
name: "updateMany"
arguments:
filter: &updateMany_filter { _id: { $lt: 3 } }
update: &updateMany_update { $inc: { x: 1 } }
hint: *hint_string
-
name: "updateMany"
arguments:
filter: *updateMany_filter
update: *updateMany_update
hint: *hint_doc
-
name: "replaceOne"
arguments:
filter: { _id: 3 }
replacement: { x: 333 }
hint: *hint_string
-
name: "replaceOne"
arguments:
filter: { _id: 4 }
replacement: { x: 444 }
hint: *hint_doc
options: { ordered: true }
result:
deletedCount: 0
insertedCount: 0
insertedIds: {}
matchedCount: 8
modifiedCount: 8
upsertedCount: 0
upsertedIds: {}
expectations:
-
command_started_event:
command:
update: *collection_name
updates:
-
q: *updateOne_filter
u: *updateOne_update
hint: *hint_string
-
q: *updateOne_filter
u: *updateOne_update
hint: *hint_doc
-
q: *updateMany_filter
u: *updateMany_update
multi: true
hint: *hint_string
-
q: *updateMany_filter
u: *updateMany_update
multi: true
hint: *hint_doc
-
q: { _id: 3 }
u: { x: 333 }
hint: *hint_string
-
q: { _id: 4 }
u: { x: 444 }
hint: *hint_doc
ordered: true
outcome:
collection:
data:
- {_id: 1, x: 15 }
- {_id: 2, x: 24 }
- {_id: 3, x: 333 }
- {_id: 4, x: 444 }
Loading

0 comments on commit e87e154

Please sign in to comment.