2025-03-17 20:58:26 +01:00

391 lines
9.6 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: insert
operations:
- name: startTransaction
object: session0
- name: insertOne
object: collection
arguments:
session: session0
document:
_id: 1
result:
insertedId: 1
- name: insertMany
object: collection
arguments:
documents:
- _id: 2
- _id: 3
session: session0
result:
insertedIds: {0: 2, 1: 3}
- name: insertOne
object: collection
arguments:
session: session0
document:
_id: 4
result:
insertedId: 4
- name: commitTransaction
object: session0
- name: startTransaction
object: session0
- name: insertOne
object: collection
arguments:
session: session0
document:
_id: 5
result:
insertedId: 5
- name: commitTransaction
object: session0
expectations:
- command_started_event:
command:
insert: *collection_name
documents:
- _id: 1
ordered: true
readConcern:
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction: true
autocommit: false
writeConcern:
command_name: insert
database_name: *database_name
- command_started_event:
command:
insert: *collection_name
documents:
- _id: 2
- _id: 3
ordered: true
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction:
autocommit: false
writeConcern:
command_name: insert
database_name: *database_name
- command_started_event:
command:
insert: *collection_name
documents:
- _id: 4
ordered: true
lsid: session0
txnNumber:
$numberLong: "1"
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
- command_started_event:
command:
insert: *collection_name
documents:
- _id: 5
ordered: true
readConcern:
afterClusterTime: 42
lsid: session0
txnNumber:
$numberLong: "2"
startTransaction: true
autocommit: false
writeConcern:
command_name: insert
database_name: *database_name
- command_started_event:
command:
commitTransaction: 1
lsid: session0
txnNumber:
$numberLong: "2"
startTransaction:
autocommit: false
writeConcern:
command_name: commitTransaction
database_name: admin
outcome:
collection:
data:
- _id: 1
- _id: 2
- _id: 3
- _id: 4
- _id: 5
# This test proves that the driver uses "session1" correctly in operations
# and APM expectations.
- description: insert with session1
operations:
- name: startTransaction
object: session1
- name: insertOne
object: collection
arguments:
session: session1
document:
_id: 1
result:
insertedId: 1
- name: insertMany
object: collection
arguments:
documents:
- _id: 2
- _id: 3
session: session1
result:
insertedIds: {0: 2, 1: 3}
- name: commitTransaction
object: session1
- name: startTransaction
object: session1
- name: insertOne
object: collection
arguments:
session: session1
document:
_id: 4
result:
insertedId: 4
- name: abortTransaction
object: session1
expectations:
- command_started_event:
command:
insert: *collection_name
documents:
- _id: 1
ordered: true
readConcern:
lsid: session1
txnNumber:
$numberLong: "1"
startTransaction: true
autocommit: false
writeConcern:
command_name: insert
database_name: *database_name
- command_started_event:
command:
insert: *collection_name
documents:
- _id: 2
- _id: 3
ordered: true
lsid: session1
txnNumber:
$numberLong: "1"
startTransaction:
autocommit: false
writeConcern:
command_name: insert
database_name: *database_name
- command_started_event:
command:
commitTransaction: 1
lsid: session1
txnNumber:
$numberLong: "1"
startTransaction:
autocommit: false
writeConcern:
command_name: commitTransaction
database_name: admin
- command_started_event:
command:
insert: *collection_name
documents:
- _id: 4
ordered: true
readConcern:
afterClusterTime: 42
lsid: session1
txnNumber:
$numberLong: "2"
startTransaction: true
autocommit: false
writeConcern:
command_name: insert
database_name: *database_name
- command_started_event:
command:
abortTransaction: 1
lsid: session1
txnNumber:
$numberLong: "2"
startTransaction:
autocommit: false
writeConcern:
command_name: abortTransaction
database_name: admin
outcome:
collection:
data:
- _id: 1
- _id: 2
- _id: 3
# This test proves that the driver parses the collectionOptions writeConcern.
- description: collection writeConcern without transaction
clientOptions:
retryWrites: false
operations:
- name: insertOne
object: collection
collectionOptions:
writeConcern:
w: majority
arguments:
session: session0
document:
_id: 1
result:
insertedId: 1
expectations:
- command_started_event:
command:
insert: *collection_name
documents:
- _id: 1
ordered: true
readConcern:
lsid: session0
txnNumber:
startTransaction:
autocommit:
writeConcern:
w: majority
command_name: insert
database_name: *database_name
outcome:
collection:
data:
- _id: 1
- description: collection writeConcern ignored for insert
operations:
- name: startTransaction
object: session0
arguments:
options:
writeConcern:
w: majority
- name: insertOne
object: collection
collectionOptions:
writeConcern:
w: majority
arguments:
session: session0
document:
_id: 1
result:
insertedId: 1
- name: insertMany
object: collection
collectionOptions:
writeConcern:
w: majority
arguments:
documents:
- _id: 2
- _id: 3
session: session0
result:
insertedIds: {0: 2, 1: 3}
- name: commitTransaction
object: session0
expectations:
- command_started_event:
command:
insert: *collection_name
documents:
- _id: 1
ordered: true
readConcern:
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction: true
autocommit: false
writeConcern:
command_name: insert
database_name: *database_name
- command_started_event:
command:
insert: *collection_name
documents:
- _id: 2
- _id: 3
ordered: true
lsid: session0
txnNumber:
$numberLong: "1"
startTransaction:
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:
w: majority
command_name: commitTransaction
database_name: admin
outcome:
collection:
data:
- _id: 1
- _id: 2
- _id: 3