...

Text file src/go.mongodb.org/mongo-driver/testdata/server-discovery-and-monitoring/unified/serverMonitoringMode.yml

Documentation: go.mongodb.org/mongo-driver/testdata/server-discovery-and-monitoring/unified

     1description: serverMonitoringMode
     2
     3schemaVersion: "1.17"
     4# These tests cannot run on replica sets because the order of the expected
     5# SDAM events are non-deterministic when monitoring multiple servers.
     6# They also cannot run on Serverless or load balanced clusters where SDAM is disabled.
     7runOnRequirements:
     8  - topologies: [single, sharded, sharded-replicaset]
     9    serverless: forbid
    10tests:
    11  - description: "connect with serverMonitoringMode=auto >=4.4"
    12    runOnRequirements:
    13      - minServerVersion: "4.4.0"
    14    operations:
    15      - name: createEntities
    16        object: testRunner
    17        arguments:
    18          entities:
    19            - client:
    20                id: client
    21                uriOptions:
    22                  serverMonitoringMode: "auto"
    23                useMultipleMongoses: false
    24                observeEvents:
    25                  - serverHeartbeatStartedEvent
    26                  - serverHeartbeatSucceededEvent
    27                  - serverHeartbeatFailedEvent
    28            - database:
    29                id: db
    30                client: client
    31                databaseName: sdam-tests
    32      - &ping
    33        name: runCommand
    34        object: db
    35        arguments:
    36          commandName: ping
    37          command: { ping: 1 }
    38        expectResult: { ok: 1 }
    39      # Wait for the second serverHeartbeatStartedEvent to ensure we start streaming.
    40      - &waitForSecondHeartbeatStarted
    41        name: waitForEvent
    42        object: testRunner
    43        arguments:
    44          client: client
    45          event:
    46            serverHeartbeatStartedEvent: {}
    47          count: 2
    48    expectEvents: &streamingStartedEvents
    49      - client: client
    50        eventType: sdam
    51        ignoreExtraEvents: true
    52        events:
    53          - serverHeartbeatStartedEvent:
    54              awaited: False
    55          - serverHeartbeatSucceededEvent:
    56              awaited: False
    57          - serverHeartbeatStartedEvent:
    58              awaited: True
    59
    60  - description: "connect with serverMonitoringMode=auto <4.4"
    61    runOnRequirements:
    62      - maxServerVersion: "4.2.99"
    63    operations:
    64      - name: createEntities
    65        object: testRunner
    66        arguments:
    67          entities:
    68            - client:
    69                id: client
    70                uriOptions:
    71                  serverMonitoringMode: "auto"
    72                  heartbeatFrequencyMS: 500
    73                useMultipleMongoses: false
    74                observeEvents:
    75                  - serverHeartbeatStartedEvent
    76                  - serverHeartbeatSucceededEvent
    77                  - serverHeartbeatFailedEvent
    78            - database:
    79                id: db
    80                client: client
    81                databaseName: sdam-tests
    82      - *ping
    83      # Wait for the second serverHeartbeatStartedEvent to ensure we do not stream.
    84      - *waitForSecondHeartbeatStarted
    85    expectEvents: &pollingStartedEvents
    86      - client: client
    87        eventType: sdam
    88        ignoreExtraEvents: true
    89        events:
    90          - serverHeartbeatStartedEvent:
    91              awaited: False
    92          - serverHeartbeatSucceededEvent:
    93              awaited: False
    94          - serverHeartbeatStartedEvent:
    95              awaited: False
    96
    97  - description: "connect with serverMonitoringMode=stream >=4.4"
    98    runOnRequirements:
    99      - minServerVersion: "4.4.0"
   100    operations:
   101      - name: createEntities
   102        object: testRunner
   103        arguments:
   104          entities:
   105            - client:
   106                id: client
   107                uriOptions:
   108                  serverMonitoringMode: "stream"
   109                useMultipleMongoses: false
   110                observeEvents:
   111                  - serverHeartbeatStartedEvent
   112                  - serverHeartbeatSucceededEvent
   113                  - serverHeartbeatFailedEvent
   114            - database:
   115                id: db
   116                client: client
   117                databaseName: sdam-tests
   118      - *ping
   119      # Wait for the second serverHeartbeatStartedEvent to ensure we start streaming.
   120      - *waitForSecondHeartbeatStarted
   121    expectEvents: *streamingStartedEvents
   122
   123  - description: "connect with serverMonitoringMode=stream <4.4"
   124    runOnRequirements:
   125      - maxServerVersion: "4.2.99"
   126    operations:
   127      - name: createEntities
   128        object: testRunner
   129        arguments:
   130          entities:
   131            - client:
   132                id: client
   133                uriOptions:
   134                  serverMonitoringMode: "stream"
   135                  heartbeatFrequencyMS: 500
   136                useMultipleMongoses: false
   137                observeEvents:
   138                  - serverHeartbeatStartedEvent
   139                  - serverHeartbeatSucceededEvent
   140                  - serverHeartbeatFailedEvent
   141            - database:
   142                id: db
   143                client: client
   144                databaseName: sdam-tests
   145      - *ping
   146      # Wait for the second serverHeartbeatStartedEvent to ensure we do not stream.
   147      - *waitForSecondHeartbeatStarted
   148    expectEvents: *pollingStartedEvents
   149
   150  - description: "connect with serverMonitoringMode=poll"
   151    operations:
   152      - name: createEntities
   153        object: testRunner
   154        arguments:
   155          entities:
   156            - client:
   157                id: client
   158                uriOptions:
   159                  serverMonitoringMode: "poll"
   160                  heartbeatFrequencyMS: 500
   161                useMultipleMongoses: false
   162                observeEvents:
   163                  - serverHeartbeatStartedEvent
   164                  - serverHeartbeatSucceededEvent
   165                  - serverHeartbeatFailedEvent
   166            - database:
   167                id: db
   168                client: client
   169                databaseName: sdam-tests
   170      - *ping
   171      # Wait for the second serverHeartbeatStartedEvent to ensure we do not stream.
   172      - *waitForSecondHeartbeatStarted
   173    expectEvents: *pollingStartedEvents

View as plain text