You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ngcp-panel/t/api-rest2/Vouchers.yaml

288 lines
5.9 KiB

---
#check options
-
name: check OPTIONS for vouchers
type: item
method: OPTIONS
path: /api/vouchers/
conditions:
is:
code: 200
header:
Accept-Post: application/hal+json; profile=http://purl.org/sipwise/ngcp-api/#rel-vouchers
ok:
options:
- GET
- HEAD
- OPTIONS
- POST
#create vouchers
-
name: create vouchers
type: item
method: POST
path: '/api/vouchers/'
header:
Content-Type: application/json
content:
amount: 100
code: 'apitestcode_1'
customer_id: null
package_id: null
reseller_id: 1
valid_until: '2037-01-01 12:00:00'
retain:
vouchers_path1: header.location
conditions:
is:
code: 201
#create vouchers
-
name: create vouchers
type: item
method: POST
path: '/api/vouchers/'
header:
Content-Type: application/json
content:
amount: 100
code: 'apitestcode_2'
customer_id: null
package_id: null
reseller_id: 1
valid_until: '2037-01-01 12:00:00'
retain:
vouchers_path2: header.location
conditions:
is:
code: 201
#create vouchers
-
name: create vouchers
type: item
method: POST
path: '/api/vouchers/'
header:
Content-Type: application/json
content: &content
amount: 100
code: 'apitestcode_3'
customer_id: null
package_id: null
reseller_id: 1
valid_until: '2037-01-01 12:00:00'
retain:
vouchers_path3: header.location
conditions:
is:
code: 201
#create voucher with same voucher code again
-
name: create voucher with same voucher code again
type: item
method: POST
path: '/api/vouchers/'
header:
Content-Type: application/json
content:
amount: 100
code: 'apitestcode_1'
customer_id: null
package_id: null
reseller_id: 1
valid_until: '2037-01-01 12:00:00'
conditions:
is:
code: 422
#get vouchers
-
name: GET vouchers
type: item
method: GET
path: '/${vouchers_path3}'
retain:
vouchers3: body
perl_code: !!perl/code |
{
my ($retained) = @_;
delete $retained->{vouchers3}->{id};
delete $retained->{vouchers3}->{_links};
}
conditions:
is:
code: 200
is_deeply:
'${vouchers3}': *content
#patch vouchers
-
name: patch vouchers
type: item
method: PATCH
path: '/${vouchers_path3}'
header:
Content-Type: application/json-patch+json
Prefer: return=representation
content:
-
op: replace
path: /code
value: 'apitestcode_3'
retain:
modified_voucher: body
perl_code: !!perl/code |
{
my ($retained) = @_;
delete $retained->{modified_voucher}->{id};
delete $retained->{modified_voucher}->{_links};
}
conditions:
is:
code: 200
is_deeply:
'${vouchers3}': '${modified_voucher}'
#patch vouchers with invalid valid_until
-
name: patch vouchers with invalid valid_until
type: item
method: PATCH
path: '/${vouchers_path3}'
header:
Content-Type: application/json-patch+json
Prefer: return=representation
content:
-
op: replace
path: /valid_until
value: '2099-01-01 00:00:00'
conditions:
is:
code: 422
#verify pagination
-
name: verify pagination
type: pagination
method: GET
path: '/api/vouchers/?page=1&rows=2'
retain:
collection: body
conditions:
is:
code: 200
#check options on item
-
name: check OPTIONS for vouchers item
type: item
method: OPTIONS
path: '/${vouchers_path3}'
conditions:
is:
code: 200
ok:
options:
- GET
- HEAD
- OPTIONS
- PUT
- PATCH
- DELETE
#get vouchers
-
name: GET vouchers
type: item
method: GET
path: '/${vouchers_path3}'
retain:
vouchers: body
perl_code: !!perl/code |
{
my ($retained) = @_;
delete $retained->{vouchers}->{_links};
delete $retained->{vouchers}->{_embedded};
}
conditions:
is:
code: 200
#put vouchers
-
name: PUT vouchers
type: item
method: PUT
path: '/${vouchers_path3}'
header:
Content-Type: application/json
Prefer: return=representation
content: '${vouchers}'
conditions:
is:
code: 200
#get vouchers
-
name: GET vouchers
type: item
method: GET
path: '/${vouchers_path3}'
retain:
new_vouchers: body
perl_code: !!perl/code |
{
my ($retained) = @_;
delete $retained->{new_vouchers}->{_links};
delete $retained->{new_vouchers}->{_embedded};
}
conditions:
is:
code: 200
is_deeply:
'${vouchers}': ${new_vouchers}
#DELETE vouchers
-
name: DELETE vouchers
type: item
method: DELETE
path: '/${vouchers_path1}'
conditions:
is:
code: 204
#DELETE vouchers
-
name: DELETE vouchers
type: item
method: DELETE
path: '/${vouchers_path2}'
conditions:
is:
code: 204
#DELETE vouchers
-
name: DELETE vouchers
type: item
method: DELETE
path: '/${vouchers_path3}'
conditions:
is:
code: 204
#get vouchers
-
name: get vouchers
type: item
method: GET
path: '/${vouchers_path3}'
conditions:
is:
code: 404