data:
    - {_id: 1, x: 11}

tests:
    -
        description: "InsertMany with non-existing documents"
        operation:
            name: "insertMany"
            arguments:
                documents: 
                    - {_id: 2, x: 22}
                    - {_id: 3, x: 33}
                options: { ordered: true }
        outcome:
            result:
                insertedIds: { 0: 2, 1: 3 }
            collection:
                data:
                    - {_id: 1, x: 11}
                    - {_id: 2, x: 22}
                    - {_id: 3, x: 33}
    -
        description: "InsertMany continue-on-error behavior with unordered (preexisting duplicate key)"
        operation:
            name: "insertMany"
            arguments:
                documents:
                    - { _id: 1, x: 11 }
                    - { _id: 2, x: 22 }
                    - { _id: 3, x: 33 }
                options: { ordered: false }
        outcome:
            error: true
            result:
                deletedCount: 0
                insertedCount: 2
                # Since the map of insertedIds is generated before execution it
                # could indicate inserts that did not actually succeed. We omit
                # this field rather than expect drivers to provide an accurate
                # map filtered by write errors.
                matchedCount: 0
                modifiedCount: 0
                upsertedCount: 0
                upsertedIds: { }
            collection:
                data:
                    - { _id: 1, x: 11 }
                    - { _id: 2, x: 22 }
                    - { _id: 3, x: 33 }
    -
        description: "InsertMany continue-on-error behavior with unordered (duplicate key in requests)"
        operation:
            name: "insertMany"
            arguments:
                documents:
                    - { _id: 2, x: 22 }
                    - { _id: 2, x: 22 }
                    - { _id: 3, x: 33 }
                options: { ordered: false }
        outcome:
            error: true
            result:
                deletedCount: 0
                insertedCount: 2
                # Since the map of insertedIds is generated before execution it
                # could indicate inserts that did not actually succeed. We omit
                # this field rather than expect drivers to provide an accurate
                # map filtered by write errors.
                matchedCount: 0
                modifiedCount: 0
                upsertedCount: 0
                upsertedIds: { }
            collection:
                data:
                    - { _id: 1, x: 11 }
                    - { _id: 2, x: 22 }
                    - { _id: 3, x: 33 }
