summaryrefslogtreecommitdiff
path: root/yarns/700-blob-service.yarn
blob: 1fd0c06b9e258514f1196d3febb4747bf6d9c0f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<!--

Copyright 2017 Lars Wirzenius

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

-->

# Blob service

This scenario tests the blob service API to store and retrieve blobs.
At this stage the blob service is the simplest possible; so simple, in
fact, it will certainly change in the future.

    SCENARIO blob service

Set up the blob service.

    GIVEN an RSA key pair for token signing
    AND blob service config uses blobs at the blob directory
    AND an access token for user with scopes
    ... uapi_blobs_id_put
    ... uapi_blobs_id_get
    AND a running blob service

Try to get a non-existent blob. It should result in an error.

    WHEN user retrieves /blobs/cake from blob service
    THEN result has status code 404

Create and store a blob, retrieve it and verify we get it back intack.

    WHEN user creates a blob named cake with random data
    AND user sends blob cake to blob service as /blobs/cake
    THEN result has status code 200
    
    WHEN user retrieves /blobs/cake from blob service
    THEN result has status code 200
    AND body is the same as the blob cake

    FINALLY stop blob service