...

Text file src/go.mongodb.org/mongo-driver/testdata/client-side-encryption/legacy/fle2v2-Range-Double-Correctness.yml

Documentation: go.mongodb.org/mongo-driver/testdata/client-side-encryption/legacy

     1# Test correctness results.
     2# Does not include command monitoring expectations or outcome assertions to make tests more readable.
     3
     4# Requires libmongocrypt 1.8.0.
     5runOn:
     6  - minServerVersion: "7.0.0"
     7    # Skip QEv2 (also referred to as FLE2v2) tests on Serverless. Unskip once Serverless enables the QEv2 protocol.
     8    # FLE 2 Encrypted collections are not supported on standalone.
     9    topology: [ "replicaset", "sharded", "load-balanced" ]
    10    # Skip tests for "rangePreview" algorithm on Server 8.0+. Server 8.0 drops "rangePreview" and adds "range".
    11    maxServerVersion: "7.99.99"
    12database_name: &database_name "default"
    13collection_name: &collection_name "default"
    14data: []
    15encrypted_fields: &encrypted_fields {'fields': [{'keyId': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'path': 'encryptedDoubleNoPrecision', 'bsonType': 'double', 'queries': {'queryType': 'rangePreview', 'contention': {'$numberLong': '0'}, 'sparsity': {'$numberLong': '1'}}}]}
    16key_vault_data: [ {'_id': {'$binary': {'base64': 'EjRWeBI0mHYSNBI0VniQEg==', 'subType': '04'}}, 'keyMaterial': {'$binary': {'base64': 'sHe0kz57YW7v8g9VP9sf/+K1ex4JqKc5rf/URX3n3p8XdZ6+15uXPaSayC6adWbNxkFskuMCOifDoTT+rkqMtFkDclOy884RuGGtUysq3X7zkAWYTKi8QAfKkajvVbZl2y23UqgVasdQu3OVBQCrH/xY00nNAs/52e958nVjBuzQkSb1T8pKJAyjZsHJ60+FtnfafDZSTAIBJYn7UWBCwQ==', 'subType': '00'}}, 'creationDate': {'$date': {'$numberLong': '1648914851981'}}, 'updateDate': {'$date': {'$numberLong': '1648914851981'}}, 'status': {'$numberInt': '0'}, 'masterKey': {'provider': 'local'}} ]
    17tests:
    18  - description: "Find with $gt"
    19    clientOptions:
    20      autoEncryptOpts:
    21        kmsProviders:
    22          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    23    operations:
    24      - name: insertOne
    25        arguments:
    26          document: &doc0 { _id: 0, encryptedDoubleNoPrecision: { $numberDouble: "0.0" } }
    27      - name: insertOne
    28        arguments:
    29          document: &doc1 { _id: 1, encryptedDoubleNoPrecision: { $numberDouble: "1.0" } }
    30      - name: find
    31        arguments:
    32          filter: { encryptedDoubleNoPrecision: { $gt: { $numberDouble: "0.0" } }}
    33        result: [*doc1]
    34
    35  - description: "Find with $gte"
    36    clientOptions:
    37      autoEncryptOpts:
    38        kmsProviders:
    39          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    40    operations:
    41      - name: insertOne
    42        arguments: { document: *doc0 }
    43      - name: insertOne
    44        arguments: { document: *doc1 }
    45      - name: find
    46        arguments:
    47          filter: { encryptedDoubleNoPrecision: { $gte: { $numberDouble: "0.0" } }}
    48          # sort so results from range queries are ordered.
    49          sort: { _id: 1 }
    50        result: [*doc0, *doc1]
    51
    52  - description: "Find with $gt with no results"
    53    clientOptions:
    54      autoEncryptOpts:
    55        kmsProviders:
    56          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    57    operations:
    58      - name: insertOne
    59        arguments: { document: *doc0 }
    60      - name: insertOne
    61        arguments: { document: *doc1 }
    62      - name: find
    63        arguments:
    64          filter: { encryptedDoubleNoPrecision: { $gt: { $numberDouble: "1.0" } }}
    65        result: []
    66
    67  - description: "Find with $lt"
    68    clientOptions:
    69      autoEncryptOpts:
    70        kmsProviders:
    71          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    72    operations:
    73      - name: insertOne
    74        arguments: { document: *doc0 }
    75      - name: insertOne
    76        arguments: { document: *doc1 }
    77      - name: find
    78        arguments:
    79          filter: { encryptedDoubleNoPrecision: { $lt: { $numberDouble: "1.0" } }}
    80        result: [*doc0]
    81
    82  - description: "Find with $lte"
    83    clientOptions:
    84      autoEncryptOpts:
    85        kmsProviders:
    86          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
    87    operations:
    88      - name: insertOne
    89        arguments: { document: *doc0 }
    90      - name: insertOne
    91        arguments: { document: *doc1 }
    92      - name: find
    93        arguments:
    94          filter: { encryptedDoubleNoPrecision: { $lte: { $numberDouble: "1.0" } }}
    95          # sort so results from range queries are ordered.
    96          sort: { _id: 1 }
    97        result: [*doc0, *doc1]
    98
    99  - description: "Find with $gt and $lt"
   100    clientOptions:
   101      autoEncryptOpts:
   102        kmsProviders:
   103          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   104    operations:
   105      - name: insertOne
   106        arguments: { document: *doc0 }
   107      - name: insertOne
   108        arguments: { document: *doc1 }
   109      - name: find
   110        arguments:
   111          filter: { encryptedDoubleNoPrecision: { $gt: { $numberDouble: "0.0" }, $lt: { $numberDouble: "2.0"} }}
   112        result: [*doc1]
   113
   114  - description: "Find with equality"
   115    clientOptions:
   116      autoEncryptOpts:
   117        kmsProviders:
   118          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   119    operations:
   120      - name: insertOne
   121        arguments: { document: *doc0 }
   122      - name: insertOne
   123        arguments: { document: *doc1 }
   124      - name: find
   125        arguments:
   126          filter: { encryptedDoubleNoPrecision: { $numberDouble: "0.0" } }
   127        result: [*doc0]
   128      - name: find
   129        arguments:
   130          filter: { encryptedDoubleNoPrecision: { $numberDouble: "1.0" } }
   131        result: [*doc1]
   132
   133  - description: "Find with $in"
   134    clientOptions:
   135      autoEncryptOpts:
   136        kmsProviders:
   137          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   138    operations:
   139      - name: insertOne
   140        arguments: { document: *doc0 }
   141      - name: insertOne
   142        arguments: { document: *doc1 }
   143      - name: find
   144        arguments:
   145          filter: { encryptedDoubleNoPrecision: { $in: [ {$numberDouble: "0.0"} ] } }
   146        result: [*doc0]
   147
   148  - description: "Aggregate with $gte"
   149    clientOptions:
   150      autoEncryptOpts:
   151        kmsProviders:
   152          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   153    operations:
   154      - name: insertOne
   155        arguments: { document: *doc0 }
   156      - name: insertOne
   157        arguments: { document: *doc1 }
   158      - name: aggregate
   159        arguments:
   160          pipeline:
   161          - { $match: { encryptedDoubleNoPrecision: { $gte: { $numberDouble: "0.0" } }} }
   162          # sort so results from range queries are ordered.
   163          - { $sort: { _id: 1 }}
   164        result: [*doc0, *doc1]
   165
   166  - description: "Aggregate with $gt with no results"
   167    clientOptions:
   168      autoEncryptOpts:
   169        kmsProviders:
   170          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   171    operations:
   172      - name: insertOne
   173        arguments: { document: *doc0 }
   174      - name: insertOne
   175        arguments: { document: *doc1 }
   176      - name: aggregate
   177        arguments:
   178          pipeline:
   179          - { $match: { encryptedDoubleNoPrecision: { $gt: { $numberDouble: "1.0" } }} }
   180        result: []
   181
   182  - description: "Aggregate with $lt"
   183    clientOptions:
   184      autoEncryptOpts:
   185        kmsProviders:
   186          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   187    operations:
   188      - name: insertOne
   189        arguments: { document: *doc0 }
   190      - name: insertOne
   191        arguments: { document: *doc1 }
   192      - name: aggregate
   193        arguments:
   194          pipeline:
   195          - { $match: { encryptedDoubleNoPrecision: { $lt: { $numberDouble: "1.0" } }} }
   196        result: [*doc0]
   197
   198  - description: "Aggregate with $lte"
   199    clientOptions:
   200      autoEncryptOpts:
   201        kmsProviders:
   202          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   203    operations:
   204      - name: insertOne
   205        arguments: { document: *doc0 }
   206      - name: insertOne
   207        arguments: { document: *doc1 }
   208      - name: aggregate
   209        arguments:
   210          pipeline:
   211          - { $match: { encryptedDoubleNoPrecision: { $lte: { $numberDouble: "1.0" } }} }
   212          # sort so results from range queries are ordered.
   213          - { $sort: { _id: 1 }}
   214        result: [*doc0, *doc1]
   215
   216  - description: "Aggregate with $gt and $lt"
   217    clientOptions:
   218      autoEncryptOpts:
   219        kmsProviders:
   220          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   221    operations:
   222      - name: insertOne
   223        arguments: { document: *doc0 }
   224      - name: insertOne
   225        arguments: { document: *doc1 }
   226      - name: aggregate
   227        arguments:
   228          pipeline:
   229          - { $match: { encryptedDoubleNoPrecision: { $gt: { $numberDouble: "0.0" }, $lt: { $numberDouble: "2.0"} }} }
   230        result: [*doc1]
   231
   232  - description: "Aggregate with equality"
   233    clientOptions:
   234      autoEncryptOpts:
   235        kmsProviders:
   236          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   237    operations:
   238      - name: insertOne
   239        arguments: { document: *doc0 }
   240      - name: insertOne
   241        arguments: { document: *doc1 }
   242      - name: aggregate
   243        arguments:
   244          pipeline:
   245          - { $match: { encryptedDoubleNoPrecision: { $numberDouble: "0.0" } } }
   246        result: [*doc0]
   247      - name: aggregate
   248        arguments:
   249          pipeline:
   250          - { $match: { encryptedDoubleNoPrecision: { $numberDouble: "1.0" } } }
   251        result: [*doc1]
   252
   253  - description: "Aggregate with $in"
   254    clientOptions:
   255      autoEncryptOpts:
   256        kmsProviders:
   257          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   258    operations:
   259      - name: insertOne
   260        arguments: { document: *doc0 }
   261      - name: insertOne
   262        arguments: { document: *doc1 }
   263      - name: aggregate
   264        arguments:
   265          pipeline:
   266          - { $match: { encryptedDoubleNoPrecision: { $in: [ {$numberDouble: "0.0"} ] } } }
   267        result: [*doc0]
   268
   269  - description: "Wrong type: Insert Int"
   270    clientOptions:
   271      autoEncryptOpts:
   272        kmsProviders:
   273          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   274    operations:
   275      - name: insertOne
   276        arguments: { document: { _id: 0, encryptedDoubleNoPrecision: { $numberInt: "0" }} }
   277        result:
   278          # Expect an error from mongocryptd.
   279          errorContains: "cannot encrypt element"
   280
   281  - description: "Wrong type: Find Int"
   282    clientOptions:
   283      autoEncryptOpts:
   284        kmsProviders:
   285          local: {'key': {'$binary': {'base64': 'Mng0NCt4ZHVUYUJCa1kxNkVyNUR1QURhZ2h2UzR2d2RrZzh0cFBwM3R6NmdWMDFBMUN3YkQ5aXRRMkhGRGdQV09wOGVNYUMxT2k3NjZKelhaQmRCZGJkTXVyZG9uSjFk', 'subType': '00'}}}
   286    operations:
   287      - name: find
   288        arguments:
   289          filter: { encryptedDoubleNoPrecision: { $gte: { $numberInt: "0" } }}
   290          # sort so results from range queries are ordered.
   291          sort: { _id: 1 }
   292        result:
   293          # expect an error from libmongocrypt.
   294          errorContains: "field type is not supported"

View as plain text