451 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
			
		
		
	
	
			451 lines
		
	
	
		
			9.4 KiB
		
	
	
	
		
			JSON
		
	
	
	
	
	
| {
 | |
|   "description": "poc-crud",
 | |
|   "schemaVersion": "1.4",
 | |
|   "createEntities": [
 | |
|     {
 | |
|       "client": {
 | |
|         "id": "client0",
 | |
|         "observeEvents": [
 | |
|           "commandStartedEvent"
 | |
|         ]
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "database": {
 | |
|         "id": "database0",
 | |
|         "client": "client0",
 | |
|         "databaseName": "crud-tests"
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "database": {
 | |
|         "id": "database1",
 | |
|         "client": "client0",
 | |
|         "databaseName": "admin"
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "collection": {
 | |
|         "id": "collection0",
 | |
|         "database": "database0",
 | |
|         "collectionName": "coll0"
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "collection": {
 | |
|         "id": "collection1",
 | |
|         "database": "database0",
 | |
|         "collectionName": "coll1"
 | |
|       }
 | |
|     },
 | |
|     {
 | |
|       "collection": {
 | |
|         "id": "collection2",
 | |
|         "database": "database0",
 | |
|         "collectionName": "coll2",
 | |
|         "collectionOptions": {
 | |
|           "readConcern": {
 | |
|             "level": "majority"
 | |
|           }
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   ],
 | |
|   "initialData": [
 | |
|     {
 | |
|       "collectionName": "coll0",
 | |
|       "databaseName": "crud-tests",
 | |
|       "documents": [
 | |
|         {
 | |
|           "_id": 1,
 | |
|           "x": 11
 | |
|         },
 | |
|         {
 | |
|           "_id": 2,
 | |
|           "x": 22
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "collectionName": "coll1",
 | |
|       "databaseName": "crud-tests",
 | |
|       "documents": [
 | |
|         {
 | |
|           "_id": 1,
 | |
|           "x": 11
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "collectionName": "coll2",
 | |
|       "databaseName": "crud-tests",
 | |
|       "documents": [
 | |
|         {
 | |
|           "_id": 1,
 | |
|           "x": 11
 | |
|         },
 | |
|         {
 | |
|           "_id": 2,
 | |
|           "x": 22
 | |
|         },
 | |
|         {
 | |
|           "_id": 3,
 | |
|           "x": 33
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "collectionName": "aggregate_out",
 | |
|       "databaseName": "crud-tests",
 | |
|       "documents": []
 | |
|     }
 | |
|   ],
 | |
|   "tests": [
 | |
|     {
 | |
|       "description": "BulkWrite with mixed ordered operations",
 | |
|       "operations": [
 | |
|         {
 | |
|           "name": "bulkWrite",
 | |
|           "object": "collection0",
 | |
|           "arguments": {
 | |
|             "requests": [
 | |
|               {
 | |
|                 "insertOne": {
 | |
|                   "document": {
 | |
|                     "_id": 3,
 | |
|                     "x": 33
 | |
|                   }
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "updateOne": {
 | |
|                   "filter": {
 | |
|                     "_id": 2
 | |
|                   },
 | |
|                   "update": {
 | |
|                     "$inc": {
 | |
|                       "x": 1
 | |
|                     }
 | |
|                   }
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "updateMany": {
 | |
|                   "filter": {
 | |
|                     "_id": {
 | |
|                       "$gt": 1
 | |
|                     }
 | |
|                   },
 | |
|                   "update": {
 | |
|                     "$inc": {
 | |
|                       "x": 1
 | |
|                     }
 | |
|                   }
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "insertOne": {
 | |
|                   "document": {
 | |
|                     "_id": 4,
 | |
|                     "x": 44
 | |
|                   }
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "deleteMany": {
 | |
|                   "filter": {
 | |
|                     "x": {
 | |
|                       "$nin": [
 | |
|                         24,
 | |
|                         34
 | |
|                       ]
 | |
|                     }
 | |
|                   }
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "replaceOne": {
 | |
|                   "filter": {
 | |
|                     "_id": 4
 | |
|                   },
 | |
|                   "replacement": {
 | |
|                     "_id": 4,
 | |
|                     "x": 44
 | |
|                   },
 | |
|                   "upsert": true
 | |
|                 }
 | |
|               }
 | |
|             ],
 | |
|             "ordered": true
 | |
|           },
 | |
|           "expectResult": {
 | |
|             "deletedCount": 2,
 | |
|             "insertedCount": 2,
 | |
|             "insertedIds": {
 | |
|               "$$unsetOrMatches": {
 | |
|                 "0": 3,
 | |
|                 "3": 4
 | |
|               }
 | |
|             },
 | |
|             "matchedCount": 3,
 | |
|             "modifiedCount": 3,
 | |
|             "upsertedCount": 1,
 | |
|             "upsertedIds": {
 | |
|               "5": 4
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       ],
 | |
|       "outcome": [
 | |
|         {
 | |
|           "collectionName": "coll0",
 | |
|           "databaseName": "crud-tests",
 | |
|           "documents": [
 | |
|             {
 | |
|               "_id": 2,
 | |
|               "x": 24
 | |
|             },
 | |
|             {
 | |
|               "_id": 3,
 | |
|               "x": 34
 | |
|             },
 | |
|             {
 | |
|               "_id": 4,
 | |
|               "x": 44
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "description": "InsertMany continue-on-error behavior with unordered (duplicate key in requests)",
 | |
|       "operations": [
 | |
|         {
 | |
|           "name": "insertMany",
 | |
|           "object": "collection1",
 | |
|           "arguments": {
 | |
|             "documents": [
 | |
|               {
 | |
|                 "_id": 2,
 | |
|                 "x": 22
 | |
|               },
 | |
|               {
 | |
|                 "_id": 2,
 | |
|                 "x": 22
 | |
|               },
 | |
|               {
 | |
|                 "_id": 3,
 | |
|                 "x": 33
 | |
|               }
 | |
|             ],
 | |
|             "ordered": false
 | |
|           },
 | |
|           "expectError": {
 | |
|             "expectResult": {
 | |
|               "$$unsetOrMatches": {
 | |
|                 "deletedCount": 0,
 | |
|                 "insertedCount": 2,
 | |
|                 "matchedCount": 0,
 | |
|                 "modifiedCount": 0,
 | |
|                 "upsertedCount": 0,
 | |
|                 "upsertedIds": {}
 | |
|               }
 | |
|             }
 | |
|           }
 | |
|         }
 | |
|       ],
 | |
|       "outcome": [
 | |
|         {
 | |
|           "collectionName": "coll1",
 | |
|           "databaseName": "crud-tests",
 | |
|           "documents": [
 | |
|             {
 | |
|               "_id": 1,
 | |
|               "x": 11
 | |
|             },
 | |
|             {
 | |
|               "_id": 2,
 | |
|               "x": 22
 | |
|             },
 | |
|             {
 | |
|               "_id": 3,
 | |
|               "x": 33
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "description": "ReplaceOne prohibits atomic modifiers",
 | |
|       "operations": [
 | |
|         {
 | |
|           "name": "replaceOne",
 | |
|           "object": "collection1",
 | |
|           "arguments": {
 | |
|             "filter": {
 | |
|               "_id": 1
 | |
|             },
 | |
|             "replacement": {
 | |
|               "$set": {
 | |
|                 "x": 22
 | |
|               }
 | |
|             }
 | |
|           },
 | |
|           "expectError": {
 | |
|             "isClientError": true
 | |
|           }
 | |
|         }
 | |
|       ],
 | |
|       "expectEvents": [
 | |
|         {
 | |
|           "client": "client0",
 | |
|           "events": []
 | |
|         }
 | |
|       ],
 | |
|       "outcome": [
 | |
|         {
 | |
|           "collectionName": "coll1",
 | |
|           "databaseName": "crud-tests",
 | |
|           "documents": [
 | |
|             {
 | |
|               "_id": 1,
 | |
|               "x": 11
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "description": "readConcern majority with out stage",
 | |
|       "runOnRequirements": [
 | |
|         {
 | |
|           "minServerVersion": "4.1.0",
 | |
|           "topologies": [
 | |
|             "replicaset",
 | |
|             "sharded"
 | |
|           ],
 | |
|           "serverless": "forbid"
 | |
|         }
 | |
|       ],
 | |
|       "operations": [
 | |
|         {
 | |
|           "name": "aggregate",
 | |
|           "object": "collection2",
 | |
|           "arguments": {
 | |
|             "pipeline": [
 | |
|               {
 | |
|                 "$sort": {
 | |
|                   "x": 1
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "$match": {
 | |
|                   "_id": {
 | |
|                     "$gt": 1
 | |
|                   }
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "$out": "aggregate_out"
 | |
|               }
 | |
|             ]
 | |
|           }
 | |
|         }
 | |
|       ],
 | |
|       "expectEvents": [
 | |
|         {
 | |
|           "client": "client0",
 | |
|           "events": [
 | |
|             {
 | |
|               "commandStartedEvent": {
 | |
|                 "command": {
 | |
|                   "aggregate": "coll2",
 | |
|                   "pipeline": [
 | |
|                     {
 | |
|                       "$sort": {
 | |
|                         "x": 1
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "$match": {
 | |
|                         "_id": {
 | |
|                           "$gt": 1
 | |
|                         }
 | |
|                       }
 | |
|                     },
 | |
|                     {
 | |
|                       "$out": "aggregate_out"
 | |
|                     }
 | |
|                   ],
 | |
|                   "readConcern": {
 | |
|                     "level": "majority"
 | |
|                   }
 | |
|                 },
 | |
|                 "commandName": "aggregate",
 | |
|                 "databaseName": "crud-tests"
 | |
|               }
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ],
 | |
|       "outcome": [
 | |
|         {
 | |
|           "collectionName": "aggregate_out",
 | |
|           "databaseName": "crud-tests",
 | |
|           "documents": [
 | |
|             {
 | |
|               "_id": 2,
 | |
|               "x": 22
 | |
|             },
 | |
|             {
 | |
|               "_id": 3,
 | |
|               "x": 33
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     },
 | |
|     {
 | |
|       "description": "Aggregate with $listLocalSessions",
 | |
|       "runOnRequirements": [
 | |
|         {
 | |
|           "minServerVersion": "3.6.0",
 | |
|           "serverless": "forbid"
 | |
|         }
 | |
|       ],
 | |
|       "operations": [
 | |
|         {
 | |
|           "name": "aggregate",
 | |
|           "object": "database1",
 | |
|           "arguments": {
 | |
|             "pipeline": [
 | |
|               {
 | |
|                 "$listLocalSessions": {}
 | |
|               },
 | |
|               {
 | |
|                 "$limit": 1
 | |
|               },
 | |
|               {
 | |
|                 "$addFields": {
 | |
|                   "dummy": "dummy field"
 | |
|                 }
 | |
|               },
 | |
|               {
 | |
|                 "$project": {
 | |
|                   "_id": 0,
 | |
|                   "dummy": 1
 | |
|                 }
 | |
|               }
 | |
|             ]
 | |
|           },
 | |
|           "expectResult": [
 | |
|             {
 | |
|               "dummy": "dummy field"
 | |
|             }
 | |
|           ]
 | |
|         }
 | |
|       ]
 | |
|     }
 | |
|   ]
 | |
| }
 |