...

Text file src/go.mongodb.org/mongo-driver/testdata/gridfs/upload.yml

Documentation: go.mongodb.org/mongo-driver/testdata/gridfs

     1description: "gridfs-upload"
     2
     3schemaVersion: "1.0"
     4
     5createEntities:
     6  - client:
     7      id: &client0 client0
     8  - database:
     9      id: &database0 database0
    10      client: *client0
    11      databaseName: &database0Name gridfs-tests
    12  - bucket:
    13      id: &bucket0 bucket0
    14      database: *database0
    15  - collection:
    16      id: &bucket0_files_collection bucket0_files_collection
    17      database: *database0
    18      collectionName: &bucket0_files_collectionName fs.files
    19  - collection:
    20      id: &bucket0_chunks_collection bucket0_chunks_collection
    21      database: *database0
    22      collectionName: &bucket0_chunks_collectionName fs.chunks
    23
    24initialData:
    25  - collectionName: *bucket0_files_collectionName
    26    databaseName: *database0Name
    27    documents: []
    28  - collectionName: *bucket0_chunks_collectionName
    29    databaseName: *database0Name
    30    documents: []
    31
    32# Note: Uploaded files and chunks include ObjectIds, which we cannot match with
    33# "outcome" since it does not allow operators. Instead, these tests will use
    34# find operations to assert the contents of uploaded files and chunks.
    35tests:
    36  - description: "upload when length is 0"
    37    operations:
    38      - name: upload
    39        object: *bucket0
    40        arguments:
    41          filename: "filename"
    42          source: { $$hexBytes: "" }
    43          chunkSizeBytes: 4
    44        expectResult: { $$type: objectId }
    45        saveResultAsEntity: &uploadedObjectId uploadedObjectId
    46      - name: find
    47        object: *bucket0_files_collection
    48        arguments:
    49          filter: {}
    50        expectResult:
    51          - _id: { $$matchesEntity: *uploadedObjectId }
    52            length: 0
    53            chunkSize: 4
    54            uploadDate: { $$type: date }
    55            # The md5 field is deprecated so some drivers do not calculate it when uploading files.
    56            md5: { $$unsetOrMatches: "d41d8cd98f00b204e9800998ecf8427e" }
    57            filename: filename
    58      - name: find
    59        object: *bucket0_chunks_collection
    60        arguments:
    61          filter: {}
    62        expectResult: []
    63  - description: "upload when length is 1"
    64    operations:
    65      - name: upload
    66        object: *bucket0
    67        arguments:
    68          filename: "filename"
    69          source: { $$hexBytes: "11" }
    70          chunkSizeBytes: 4
    71        expectResult: { $$type: objectId }
    72        saveResultAsEntity: *uploadedObjectId
    73      - name: find
    74        object: *bucket0_files_collection
    75        arguments:
    76          filter: {}
    77        expectResult:
    78          - _id: { $$matchesEntity: *uploadedObjectId }
    79            length: 1
    80            chunkSize: 4
    81            uploadDate: { $$type: date }
    82            md5: { $$unsetOrMatches: "47ed733b8d10be225eceba344d533586" }
    83            filename: filename
    84      - name: find
    85        object: *bucket0_chunks_collection
    86        arguments:
    87          filter: {}
    88        expectResult:
    89          - _id: { $$type: objectId }
    90            files_id: { $$matchesEntity: *uploadedObjectId }
    91            n: 0
    92            data: { $binary: { base64: "EQ==", subType: "00" } } # hex 11
    93  - description: "upload when length is 3"
    94    operations:
    95      - name: upload
    96        object: *bucket0
    97        arguments:
    98          filename: "filename"
    99          source: { $$hexBytes: "112233" }
   100          chunkSizeBytes: 4
   101        expectResult: { $$type: objectId }
   102        saveResultAsEntity: *uploadedObjectId
   103      - name: find
   104        object: *bucket0_files_collection
   105        arguments:
   106          filter: {}
   107        expectResult:
   108          - _id: { $$matchesEntity: *uploadedObjectId }
   109            length: 3
   110            chunkSize: 4
   111            uploadDate: { $$type: date }
   112            md5: { $$unsetOrMatches: "bafae3a174ab91fc70db7a6aa50f4f52" }
   113            filename: filename
   114      - name: find
   115        object: *bucket0_chunks_collection
   116        arguments:
   117          filter: {}
   118        expectResult:
   119          - _id: { $$type: objectId }
   120            files_id: { $$matchesEntity: *uploadedObjectId }
   121            n: 0
   122            data: { $binary: { base64: "ESIz", subType: "00" } } # hex 112233
   123  - description: "upload when length is 4"
   124    operations:
   125      - name: upload
   126        object: *bucket0
   127        arguments:
   128          filename: "filename"
   129          source: { $$hexBytes: "11223344" }
   130          chunkSizeBytes: 4
   131        expectResult: { $$type: objectId }
   132        saveResultAsEntity: *uploadedObjectId
   133      - name: find
   134        object: *bucket0_files_collection
   135        arguments:
   136          filter: {}
   137        expectResult:
   138          - _id: { $$matchesEntity: *uploadedObjectId }
   139            length: 4
   140            chunkSize: 4
   141            uploadDate: { $$type: date }
   142            md5: { $$unsetOrMatches: "7e7c77cff5705d1f7574a25ef6662117" }
   143            filename: filename
   144      - name: find
   145        object: *bucket0_chunks_collection
   146        arguments:
   147          filter: {}
   148        expectResult:
   149          - _id: { $$type: objectId }
   150            files_id: { $$matchesEntity: *uploadedObjectId }
   151            n: 0
   152            data: { $binary: { base64: "ESIzRA==", subType: "00" } } # hex 11223344
   153  - description: "upload when length is 5"
   154    operations:
   155      - name: upload
   156        object: *bucket0
   157        arguments:
   158          filename: filename
   159          source: { $$hexBytes: "1122334455" }
   160          chunkSizeBytes: 4
   161        expectResult: { $$type: objectId }
   162        saveResultAsEntity: *uploadedObjectId
   163      - name: find
   164        object: *bucket0_files_collection
   165        arguments:
   166          filter: {}
   167        expectResult:
   168          - _id: { $$matchesEntity: *uploadedObjectId }
   169            length: 5
   170            chunkSize: 4
   171            uploadDate: { $$type: date }
   172            md5: { $$unsetOrMatches: "283d4fea5dded59cf837d3047328f5af" }
   173            filename: filename
   174      - name: find
   175        object: *bucket0_chunks_collection
   176        arguments:
   177          filter: {}
   178          # Sort to ensure chunks are returned in a deterministic order
   179          sort: { n: 1 }
   180        expectResult:
   181          - _id: { $$type: objectId }
   182            files_id: { $$matchesEntity: *uploadedObjectId }
   183            n: 0
   184            data: { $binary: { base64: "ESIzRA==", subType: "00" } } # hex 11223344
   185          - _id: { $$type: objectId }
   186            files_id: { $$matchesEntity: *uploadedObjectId }
   187            n: 1
   188            data: { $binary: { base64: "VQ==", subType: "00" } } # hex 55
   189  - description: "upload when length is 8"
   190    operations:
   191      - name: upload
   192        object: *bucket0
   193        arguments:
   194          filename: filename
   195          source: { $$hexBytes: "1122334455667788" }
   196          chunkSizeBytes: 4
   197        expectResult: { $$type: objectId }
   198        saveResultAsEntity: *uploadedObjectId
   199      - name: find
   200        object: *bucket0_files_collection
   201        arguments:
   202          filter: {}
   203        expectResult:
   204          - _id: { $$matchesEntity: *uploadedObjectId }
   205            length: 8
   206            chunkSize: 4
   207            uploadDate: { $$type: date }
   208            md5: { $$unsetOrMatches: "dd254cdc958e53abaa67da9f797125f5" }
   209            filename: filename
   210      - name: find
   211        object: *bucket0_chunks_collection
   212        arguments:
   213          filter: {}
   214          # Sort to ensure chunks are returned in a deterministic order
   215          sort: { n: 1 }
   216        expectResult:
   217          - _id: { $$type: objectId }
   218            files_id: { $$matchesEntity: *uploadedObjectId }
   219            n: 0
   220            data: { $binary: { base64: "ESIzRA==", subType: "00" } } # hex 11223344
   221          - _id: { $$type: objectId }
   222            files_id: { $$matchesEntity: *uploadedObjectId }
   223            n: 1
   224            data: { $binary: { base64: "VWZ3iA==", subType: "00" } } # hex 55667788
   225  - description: "upload when contentType is provided"
   226    operations:
   227      - name: upload
   228        object: *bucket0
   229        arguments:
   230          filename: "filename"
   231          source: { $$hexBytes: "11" }
   232          chunkSizeBytes: 4
   233          contentType: "image/jpeg"
   234        expectResult: { $$type: objectId }
   235        saveResultAsEntity: *uploadedObjectId
   236      - name: find
   237        object: *bucket0_files_collection
   238        arguments:
   239          filter: {}
   240        expectResult:
   241          - _id: { $$matchesEntity: *uploadedObjectId }
   242            length: 1
   243            chunkSize: 4
   244            uploadDate: { $$type: date }
   245            md5: { $$unsetOrMatches: "47ed733b8d10be225eceba344d533586" }
   246            filename: filename
   247            contentType: "image/jpeg"
   248      - name: find
   249        object: *bucket0_chunks_collection
   250        arguments:
   251          filter: {}
   252        expectResult:
   253          - _id: { $$type: objectId }
   254            files_id: { $$matchesEntity: *uploadedObjectId }
   255            n: 0
   256            data: { $binary: { base64: "EQ==", subType: "00" } } # hex 11
   257  - description: "upload when metadata is provided"
   258    operations:
   259      - name: upload
   260        object: *bucket0
   261        arguments:
   262          filename: "filename"
   263          source: { $$hexBytes: "11" }
   264          chunkSizeBytes: 4
   265          metadata: { x: 1 }
   266        expectResult: { $$type: objectId }
   267        saveResultAsEntity: *uploadedObjectId
   268      - name: find
   269        object: *bucket0_files_collection
   270        arguments:
   271          filter: {}
   272        expectResult:
   273          - _id: { $$matchesEntity: *uploadedObjectId }
   274            length: 1
   275            chunkSize: 4
   276            uploadDate: { $$type: date }
   277            md5: { $$unsetOrMatches: "47ed733b8d10be225eceba344d533586" }
   278            filename: filename
   279            metadata: { x: 1 }
   280      - name: find
   281        object: *bucket0_chunks_collection
   282        arguments:
   283          filter: {}
   284        expectResult:
   285          - _id: { $$type: objectId }
   286            files_id: { $$matchesEntity: *uploadedObjectId }
   287            n: 0
   288            data: { $binary: { base64: "EQ==", subType: "00" } } # hex 11

View as plain text