database_name: &database_name "ruby-driver" collection_name: &collection_name "transactions-tests" data: &data - {_id: 1} - {_id: 2} - {_id: 3} - {_id: 4} tests: - description: collection readConcern without transaction operations: - name: find object: collection collectionOptions: readConcern: level: majority arguments: session: session0 result: *data expectations: - command_started_event: command: find: *collection_name readConcern: level: majority lsid: session0 txnNumber: startTransaction: autocommit: command_name: find database_name: *database_name outcome: &outcome collection: data: *data - description: count operations: - &startTransaction name: startTransaction object: session0 - name: count object: collection arguments: session: session0 filter: _id: 1 result: errorContains: "Cannot run 'count' in a multi-document transaction" errorLabelsOmit: ["TransientTransactionError", "UnknownTransactionCommitResult"] - name: abortTransaction object: session0 expectations: - command_started_event: command: count: *collection_name query: _id: 1 readConcern: lsid: session0 txnNumber: $numberLong: "1" startTransaction: true autocommit: false writeConcern: command_name: count database_name: *database_name - command_started_event: command: abortTransaction: 1 lsid: session0 txnNumber: $numberLong: "1" startTransaction: autocommit: false writeConcern: command_name: abortTransaction database_name: admin outcome: *outcome - description: find operations: - *startTransaction - &find name: find object: collection arguments: session: session0 batchSize: 3 result: *data - *find - &commitTransaction name: commitTransaction object: session0 expectations: - command_started_event: command: find: *collection_name batchSize: 3 readConcern: lsid: session0 txnNumber: $numberLong: "1" startTransaction: true autocommit: false command_name: find database_name: *database_name - command_started_event: command: getMore: # 42 is a fake placeholder value for the cursorId. $numberLong: '42' collection: *collection_name batchSize: 3 lsid: session0 txnNumber: $numberLong: "1" startTransaction: autocommit: false command_name: getMore database_name: *database_name - command_started_event: command: find: *collection_name batchSize: 3 lsid: session0 txnNumber: $numberLong: "1" startTransaction: autocommit: false command_name: find database_name: *database_name - command_started_event: command: getMore: $numberLong: '42' collection: *collection_name batchSize: 3 lsid: session0 txnNumber: $numberLong: "1" startTransaction: autocommit: false command_name: getMore database_name: *database_name - command_started_event: command: commitTransaction: 1 lsid: session0 txnNumber: $numberLong: "1" startTransaction: autocommit: false writeConcern: command_name: commitTransaction database_name: admin outcome: *outcome - description: aggregate operations: - *startTransaction - &aggregate name: aggregate object: collection arguments: pipeline: - $project: _id: 1 batchSize: 3 session: session0 result: *data - *aggregate - *commitTransaction expectations: - command_started_event: command: aggregate: *collection_name pipeline: - $project: _id: 1 cursor: batchSize: 3 readConcern: lsid: session0 txnNumber: $numberLong: "1" startTransaction: true autocommit: false command_name: aggregate database_name: *database_name - command_started_event: command: getMore: # 42 is a fake placeholder value for the cursorId. $numberLong: '42' collection: *collection_name batchSize: 3 lsid: session0 txnNumber: $numberLong: "1" startTransaction: autocommit: false command_name: getMore database_name: *database_name - command_started_event: command: aggregate: *collection_name pipeline: - $project: _id: 1 cursor: batchSize: 3 lsid: session0 txnNumber: $numberLong: "1" startTransaction: autocommit: false command_name: aggregate database_name: *database_name - command_started_event: command: getMore: $numberLong: '42' collection: *collection_name batchSize: 3 lsid: session0 txnNumber: $numberLong: "1" startTransaction: autocommit: false command_name: getMore database_name: *database_name - command_started_event: command: commitTransaction: 1 lsid: session0 txnNumber: $numberLong: "1" startTransaction: autocommit: false writeConcern: command_name: commitTransaction database_name: admin outcome: *outcome - description: distinct operations: - *startTransaction - name: distinct object: collection arguments: session: session0 fieldName: _id result: [1, 2, 3, 4] - *commitTransaction expectations: - command_started_event: command: distinct: *collection_name key: _id lsid: session0 readConcern: txnNumber: $numberLong: "1" startTransaction: true autocommit: false writeConcern: command_name: distinct database_name: *database_name - command_started_event: command: commitTransaction: 1 lsid: session0 readConcern: txnNumber: $numberLong: "1" startTransaction: autocommit: false writeConcern: command_name: commitTransaction database_name: admin outcome: *outcome