...

Text file src/go.mongodb.org/mongo-driver/testdata/unified-test-format/valid-pass/poc-transactions-convenient-api.yml

Documentation: go.mongodb.org/mongo-driver/testdata/unified-test-format/valid-pass

     1description: "poc-transactions-convenient-api"
     2
     3schemaVersion: "1.0"
     4
     5runOnRequirements:
     6  - minServerVersion: "4.0"
     7    topologies: [ replicaset ]
     8  - minServerVersion: "4.1.8"
     9    topologies: [ sharded-replicaset ]
    10
    11createEntities:
    12  - client:
    13      id: &client0 client0
    14      useMultipleMongoses: true
    15      observeEvents: [ commandStartedEvent ]
    16  - client:
    17      id: &client1 client1
    18      uriOptions:
    19        readConcernLevel: local
    20        w: 1
    21      useMultipleMongoses: true
    22      observeEvents: [ commandStartedEvent ]
    23  - database:
    24      id: &database0 database0
    25      client: *client0
    26      databaseName: &databaseName transaction-tests
    27  - database:
    28      id: &database1 database1
    29      client: *client1
    30      databaseName: *databaseName
    31  - collection:
    32      id: &collection0 collection0
    33      database: *database0
    34      collectionName: &collectionName test
    35  - collection:
    36      id: &collection1 collection1
    37      database: *database1
    38      collectionName: *collectionName
    39  - session:
    40      id: &session0 session0
    41      client: *client0
    42  - session:
    43      id: &session1 session1
    44      client: *client1
    45  - session:
    46      id: &session2 session2
    47      client: *client0
    48      sessionOptions:
    49        defaultTransactionOptions:
    50          readConcern: { level: majority }
    51          writeConcern: { w: 1 }
    52
    53initialData:
    54  - collectionName: *collectionName
    55    databaseName: *databaseName
    56    documents: []
    57
    58tests:
    59  - description: "withTransaction and no transaction options set"
    60    operations:
    61      - name: withTransaction
    62        object: *session0
    63        arguments:
    64          callback:
    65            - name: insertOne
    66              object: *collection0
    67              arguments:
    68                session: *session0
    69                document: { _id: 1 }
    70              expectResult: { $$unsetOrMatches: { insertedId: { $$unsetOrMatches: 1 } } }
    71    expectEvents:
    72      - client: *client0
    73        events:
    74          - commandStartedEvent:
    75              command:
    76                insert: *collectionName
    77                documents: [ { _id: 1 } ]
    78                ordered: true
    79                lsid: { $$sessionLsid: *session0 }
    80                txnNumber: 1
    81                startTransaction: true
    82                autocommit: false
    83                # omitted fields
    84                readConcern: { $$exists: false }
    85                writeConcern: { $$exists: false }
    86              commandName: insert
    87              databaseName: *databaseName
    88          - commandStartedEvent:
    89              command:
    90                commitTransaction: 1
    91                lsid: { $$sessionLsid: *session0 }
    92                txnNumber: 1
    93                autocommit: false
    94                # omitted fields
    95                readConcern: { $$exists: false }
    96                startTransaction: { $$exists: false }
    97                writeConcern: { $$exists: false }
    98              commandName: commitTransaction
    99              databaseName: admin
   100    outcome: &outcome
   101      - collectionName: *collectionName
   102        databaseName: *databaseName
   103        documents:
   104          - { _id: 1 }
   105
   106  - description: "withTransaction inherits transaction options from client"
   107    operations:
   108      - name: withTransaction
   109        object: *session1
   110        arguments:
   111          callback:
   112            - name: insertOne
   113              object: *collection1
   114              arguments:
   115                session: *session1
   116                document: { _id: 1 }
   117              expectResult: { $$unsetOrMatches: { insertedId: { $$unsetOrMatches: 1 } } }
   118    expectEvents:
   119      - client: *client1
   120        events:
   121          - commandStartedEvent:
   122              command:
   123                insert: *collectionName
   124                documents: [ { _id: 1 } ]
   125                ordered: true
   126                lsid: { $$sessionLsid: *session1 }
   127                txnNumber: 1
   128                startTransaction: true
   129                autocommit: false
   130                readConcern: { level: local }
   131                # omitted fields
   132                writeConcern: { $$exists: false }
   133              commandName: insert
   134              databaseName: *databaseName
   135          - commandStartedEvent:
   136              command:
   137                commitTransaction: 1
   138                lsid: { $$sessionLsid: *session1 }
   139                txnNumber: 1
   140                autocommit: false
   141                writeConcern: { w: 1 }
   142                # omitted fields
   143                readConcern: { $$exists: false }
   144                startTransaction: { $$exists: false }
   145              commandName: commitTransaction
   146              databaseName: admin
   147    outcome: *outcome
   148
   149  - description: "withTransaction inherits transaction options from defaultTransactionOptions"
   150    operations:
   151      - name: withTransaction
   152        object: *session2
   153        arguments:
   154          callback:
   155            - name: insertOne
   156              object: *collection0
   157              arguments:
   158                session: *session2
   159                document: { _id: 1 }
   160              expectResult: { $$unsetOrMatches: { insertedId: { $$unsetOrMatches: 1 } } }
   161    expectEvents:
   162      - client: *client0
   163        events:
   164          - commandStartedEvent:
   165              command:
   166                insert: *collectionName
   167                documents: [ { _id: 1 } ]
   168                ordered: true
   169                lsid: { $$sessionLsid: *session2 }
   170                txnNumber: 1
   171                startTransaction: true
   172                autocommit: false
   173                readConcern: { level: majority }
   174                # omitted fields
   175                writeConcern: { $$exists: false }
   176              commandName: insert
   177              databaseName: *databaseName
   178          - commandStartedEvent:
   179              command:
   180                commitTransaction: 1
   181                lsid: { $$sessionLsid: *session2 }
   182                txnNumber: 1
   183                autocommit: false
   184                writeConcern: { w: 1 }
   185                # omitted fields
   186                readConcern: { $$exists: false }
   187                startTransaction: { $$exists: false }
   188              commandName: commitTransaction
   189              databaseName: admin
   190    outcome: *outcome
   191
   192  - description: "withTransaction explicit transaction options"
   193    operations:
   194      - name: withTransaction
   195        object: *session0
   196        arguments:
   197          callback:
   198            - name: insertOne
   199              object: *collection0
   200              arguments:
   201                session: *session0
   202                document: { _id: 1 }
   203              expectResult: { $$unsetOrMatches: { insertedId: { $$unsetOrMatches: 1 } } }
   204          readConcern: { level: majority }
   205          writeConcern: { w: 1 }
   206    expectEvents:
   207      - client: *client0
   208        events:
   209          - commandStartedEvent:
   210              command:
   211                insert: *collectionName
   212                documents: [ { _id: 1 } ]
   213                ordered: true
   214                lsid: { $$sessionLsid: *session0 }
   215                txnNumber: 1
   216                startTransaction: true
   217                autocommit: false
   218                readConcern: { level: majority }
   219                # omitted fields
   220                writeConcern: { $$exists: false }
   221              commandName: insert
   222              databaseName: *databaseName
   223          - commandStartedEvent:
   224              command:
   225                commitTransaction: 1
   226                lsid: { $$sessionLsid: *session0 }
   227                txnNumber: 1
   228                autocommit: false
   229                writeConcern: { w: 1 }
   230                # omitted fields
   231                readConcern: { $$exists: false }
   232                startTransaction: { $$exists: false }
   233              commandName: commitTransaction
   234              databaseName: admin
   235    outcome: *outcome

View as plain text