bson/testdata/transactions/legacy/run-command.yml
2025-03-17 20:58:26 +01:00

198 lines
5.0 KiB
YAML

runOn:
-
minServerVersion: "4.0"
topology: ["replicaset"]
-
minServerVersion: "4.1.8"
topology: ["sharded"]
database_name: &database_name "transaction-tests"
collection_name: &collection_name "test"
data: []
tests:
- description: run command with default read preference
operations:
- name: startTransaction
object: session0
- name: runCommand
object: database
command_name: insert
arguments:
session: session0
command:
insert: *collection_name
documents:
- _id : 1
result:
n: 1
- name: commitTransaction
object: session0
expectations:
- command_started_event:
command:
insert: *collection_name
documents:
- _id : 1
readConcern:
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction: true
autocommit: false
writeConcern:
command_name: insert
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
- description: run command with secondary read preference in client option and primary read preference in transaction options
clientOptions:
readPreference: secondary
operations:
- name: startTransaction
object: session0
arguments:
options:
readPreference:
mode: Primary
- name: runCommand
object: database
command_name: insert
arguments:
session: session0
command:
insert: *collection_name
documents:
- _id : 1
result:
n: 1
- name: commitTransaction
object: session0
expectations:
- command_started_event:
command:
insert: *collection_name
documents:
- _id : 1
readConcern:
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction: true
autocommit: false
writeConcern:
command_name: insert
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
- description: run command with explicit primary read preference
operations:
- name: startTransaction
object: session0
- name: runCommand
object: database
command_name: insert
arguments:
session: session0
command:
insert: *collection_name
documents:
- _id : 1
readPreference:
mode: Primary
result:
n: 1
- name: commitTransaction
object: session0
expectations:
- command_started_event:
command:
insert: *collection_name
documents:
- _id : 1
readConcern:
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction: true
autocommit: false
writeConcern:
command_name: insert
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
- description: run command fails with explicit secondary read preference
operations:
- name: startTransaction
object: session0
- name: runCommand
object: database
command_name: find
arguments:
session: session0
command:
find: *collection_name
readPreference:
mode: Secondary
result:
errorContains: read preference in a transaction must be primary
- description: run command fails with secondary read preference from transaction options
operations:
- name: startTransaction
object: session0
arguments:
options:
readPreference:
mode: Secondary
- name: runCommand
object: database
command_name: find
arguments:
session: session0
command:
find: *collection_name
result:
errorContains: read preference in a transaction must be primary