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

collection_name: &collection_name "test"
database_name: &database_name "command-monitoring-tests"

tests:
  -
    description: "A successful mixed bulk write"
    operation:
      name: "bulkWrite"
      arguments:
        requests:
          - insertOne: 
              document: { _id: 4, x: 44 }
          - updateOne:
              filter: { _id: 3 }
              update: { $set: { x: 333 } }
    expectations:
      -
        command_started_event:
          command:
            insert: *collection_name
            documents:
              - { _id: 4, x: 44 }
            ordered: true
          command_name: "insert"
          database_name: *database_name
      -
        command_succeeded_event:
          reply: { ok: 1.0, n: 1 }
          command_name: "insert"
      -
        command_started_event:
          command:
            update: *collection_name
            updates:
              - { q: {_id: 3 }, u: { $set: { x: 333 } }, upsert: false, multi: false }
            ordered: true
          command_name: "update"
          database_name: *database_name
      -
        command_succeeded_event:
          reply: { ok: 1.0, n: 1 }
          command_name: "update"
  -
    description: "A successful unordered bulk write with an unacknowledged write concern"
    comment: "On a 2.4 server, no GLE is sent and requires a client-side manufactored reply"
    operation:
      name: "bulkWrite"
      arguments:
        requests:
          - insertOne: 
              document: { _id: 4, x: 44 }
        ordered: false
        writeConcern: { w: 0 }
    expectations:
      -
        command_started_event:
          command:
            insert: *collection_name
            documents:
              - { _id: 4, x: 44 }
            ordered: false
            writeConcern: { w: 0 }
          command_name: "insert"
          database_name: *database_name
      -
        command_succeeded_event:
          reply: { ok: 1.0 }
          command_name: "insert"