...

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

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

     1description: "gridfs-delete"
     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      - &file1
    29        _id: { "$oid": "000000000000000000000001" }
    30        length: 0
    31        chunkSize: 4
    32        uploadDate: { "$date": "1970-01-01T00:00:00.000Z" }
    33        md5: "d41d8cd98f00b204e9800998ecf8427e"
    34        filename: "length-0"
    35        contentType: "application/octet-stream"
    36        aliases: []
    37        metadata: {}
    38      - &file2
    39        _id: { "$oid": "000000000000000000000002" }
    40        length: 0
    41        chunkSize: 4
    42        uploadDate: { "$date": "1970-01-01T00:00:00.000Z" }
    43        md5: "d41d8cd98f00b204e9800998ecf8427e"
    44        filename: "length-0-with-empty-chunk"
    45        contentType: "application/octet-stream"
    46        aliases: []
    47        metadata: {}
    48      - &file3
    49        _id: { "$oid": "000000000000000000000003" }
    50        length: 2
    51        chunkSize: 4
    52        uploadDate: { "$date": "1970-01-01T00:00:00.000Z" }
    53        md5: "c700ed4fdb1d27055aa3faa2c2432283"
    54        filename: "length-2"
    55        contentType: "application/octet-stream"
    56        aliases: []
    57        metadata: {}
    58      - &file4
    59        _id: { "$oid": "000000000000000000000004" }
    60        length: 8
    61        chunkSize: 4
    62        uploadDate: { "$date": "1970-01-01T00:00:00.000Z" }
    63        md5: "dd254cdc958e53abaa67da9f797125f5"
    64        filename: "length-8"
    65        contentType: "application/octet-stream"
    66        aliases: []
    67        metadata: {}
    68  - collectionName: *bucket0_chunks_collectionName
    69    databaseName: *database0Name
    70    documents:
    71      - &file2_chunk0
    72        _id: { "$oid": "000000000000000000000001" }
    73        files_id: { "$oid": "000000000000000000000002" }
    74        n: 0
    75        data: { "$binary": { "base64": "", "subType": "00" } }
    76      - &file3_chunk0
    77        _id: { "$oid": "000000000000000000000002" }
    78        files_id: { "$oid": "000000000000000000000003" }
    79        n: 0
    80        data: { "$binary": { "base64": "ESI=", "subType": "00" } } # hex: 1122
    81      - &file4_chunk0
    82        _id: { "$oid": "000000000000000000000003" }
    83        files_id: { "$oid": "000000000000000000000004" }
    84        n: 0
    85        data: { "$binary": { "base64": "ESIzRA==", "subType": "00" } }  # hex: 11223344
    86      - &file4_chunk1
    87        _id: { "$oid": "000000000000000000000004" }
    88        files_id: { "$oid": "000000000000000000000004" }
    89        n: 1
    90        data: { "$binary": { "base64": "VWZ3iA==", "subType": "00" } } # hex: 55667788
    91
    92tests:
    93  - description: "delete when length is 0"
    94    operations:
    95      - name: delete
    96        object: *bucket0
    97        arguments:
    98          id: { $oid: "000000000000000000000001" }
    99    outcome:
   100      - collectionName: *bucket0_files_collectionName
   101        databaseName: *database0Name
   102        documents:
   103          - *file2
   104          - *file3
   105          - *file4
   106      - collectionName: *bucket0_chunks_collectionName
   107        databaseName: *database0Name
   108        documents:
   109          - *file2_chunk0
   110          - *file3_chunk0
   111          - *file4_chunk0
   112          - *file4_chunk1
   113  - description: "delete when length is 0 and there is one extra empty chunk"
   114    operations:
   115      - name: delete
   116        object: *bucket0
   117        arguments:
   118          id: { $oid: "000000000000000000000002" }
   119    outcome:
   120      - collectionName: *bucket0_files_collectionName
   121        databaseName: *database0Name
   122        documents:
   123          - *file1
   124          - *file3
   125          - *file4
   126      - collectionName: *bucket0_chunks_collectionName
   127        databaseName: *database0Name
   128        documents:
   129          - *file3_chunk0
   130          - *file4_chunk0
   131          - *file4_chunk1
   132  - description: "delete when length is 8"
   133    operations:
   134      - name: delete
   135        object: *bucket0
   136        arguments:
   137          id: { $oid: "000000000000000000000004" }
   138    outcome:
   139      - collectionName: *bucket0_files_collectionName
   140        databaseName: *database0Name
   141        documents:
   142          - *file1
   143          - *file2
   144          - *file3
   145      - collectionName: *bucket0_chunks_collectionName
   146        databaseName: *database0Name
   147        documents:
   148          - *file2_chunk0
   149          - *file3_chunk0
   150  - description: "delete when files entry does not exist"
   151    operations:
   152      - name: delete
   153        object: *bucket0
   154        arguments:
   155          id: { $oid: "000000000000000000000000" }
   156        expectError: { isError: true } # FileNotFound
   157    outcome:
   158      - collectionName: *bucket0_files_collectionName
   159        databaseName: *database0Name
   160        documents:
   161          - *file1
   162          - *file2
   163          - *file3
   164          - *file4
   165      - collectionName: *bucket0_chunks_collectionName
   166        databaseName: *database0Name
   167        documents:
   168          - *file2_chunk0
   169          - *file3_chunk0
   170          - *file4_chunk0
   171          - *file4_chunk1
   172  - description: "delete when files entry does not exist and there are orphaned chunks"
   173    operations:
   174      - name: deleteOne
   175        object: *bucket0_files_collection
   176        arguments:
   177          filter:
   178            _id: { $oid: "000000000000000000000004" }
   179        expectResult:
   180          deletedCount: 1
   181      - name: delete
   182        object: *bucket0
   183        arguments:
   184          id: { $oid: "000000000000000000000004" }
   185        expectError: { isError: true } # FileNotFound
   186    outcome:
   187      - collectionName: *bucket0_files_collectionName
   188        databaseName: *database0Name
   189        documents:
   190          - *file1
   191          - *file2
   192          - *file3
   193      # Orphaned chunks are still deleted even if fs.files
   194      - collectionName: *bucket0_chunks_collectionName
   195        databaseName: *database0Name
   196        documents:
   197          - *file2_chunk0
   198          - *file3_chunk0

View as plain text