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/SoundSets.yaml

245 lines
5.3 KiB

---
#get a customer for testing
-
name: get a customer for testing
type: item
method: GET
path: '/api/customers/?page=1&rows=1&reseller_id=1'
retain:
customer: body
perl_code: !!perl/code |
{
my ($retained) = @_;
my $customer = $retained->{customer}->{'_embedded'}->{'ngcp:customers'}->[0];
$retained->{customer} = $customer;
$retained->{customer_id} = $customer->{id};
}
conditions:
is:
code: 200
ok:
'${customer}.id': defined
#check options
-
name: check OPTIONS for soundsets
type: item
method: OPTIONS
path: /api/soundsets/
conditions:
is:
code: 200
header:
Accept-Post: application/hal+json; profile=http://purl.org/sipwise/ngcp-api/#rel-soundsets
ok:
options:
- GET
- HEAD
- OPTIONS
- POST
#create soundset with files
-
name: create soundset with files
type: item
method: POST
path: '/api/soundsets/'
header:
Content-Type: application/json
content:
reseller_id: 1
contract_id: ${customer_id}
name: 'api_test soundset name 1'
description: 'api_test soundset description'
contract_default: 1
copy_from_default: 1
language: 'en'
override: 1
loopplay: 1
retain:
soundsets_path1: header.location
conditions:
is:
code: 201
#create soundset without contract
-
name: create soundset without contract
type: item
method: POST
path: '/api/soundsets/'
header:
Content-Type: application/json
content:
reseller_id: 1
name: 'api_test soundset name 2'
description: 'api_test soundset description'
contract_default: 1
copy_from_default: 1
language: 'en'
override: 1
loopplay: 1
retain:
soundsets_path2: header.location
conditions:
is:
code: 201
#create soundset without files
-
name: create soundset without files
type: item
method: POST
path: '/api/soundsets/'
header:
Content-Type: application/json
content:
reseller_id: 1
contract_id: ${customer_id}
name: 'api_test soundset name 3'
description: 'api_test soundset description'
contract_default: 1
copy_from_default: 0
language: 'en'
override: 1
loopplay: 1
retain:
soundsets_path3: header.location
conditions:
is:
code: 201
#verify pagination
-
name: verify pagination
type: pagination
method: GET
path: '/api/soundsets/?page=1&rows=2'
retain:
collection: body
conditions:
is:
code: 200
#put with files replacement
-
name: PUT with files replacement
type: item
method: PUT
path: '/${soundsets_path1}'
header:
Content-Type: application/json
Prefer: return=representation
content:
reseller_id: 1
contract_id: ${customer_id}
name: 'api_test soundset name 1'
description: 'api_test soundset description'
contract_default: 1
copy_from_default: 1
language: 'en'
override: 1
loopplay: 1
conditions:
is:
code: 200
#check options on item
-
name: check OPTIONS for soundsets item
type: item
method: OPTIONS
path: '/${soundsets_path3}'
conditions:
is:
code: 200
ok:
options:
- GET
- HEAD
- OPTIONS
- PUT
- PATCH
- DELETE
#get soundsets
-
name: GET soundsets
type: item
method: GET
path: '/${soundsets_path3}'
retain:
soundsets: body
perl_code: !!perl/code |
{
my ($retained) = @_;
delete $retained->{soundsets}->{_links};
delete $retained->{soundsets}->{_embedded};
}
conditions:
is:
code: 200
#put soundsets
-
name: PUT soundsets
type: item
method: PUT
path: '/${soundsets_path3}'
header:
Content-Type: application/json
Prefer: return=representation
content: '${soundsets}'
conditions:
is:
code: 200
#get soundsets
-
name: GET soundsets
type: item
method: GET
path: '/${soundsets_path3}'
retain:
new_soundsets: body
perl_code: !!perl/code |
{
my ($retained) = @_;
delete $retained->{new_soundsets}->{_links};
delete $retained->{new_soundsets}->{_embedded};
}
conditions:
is:
code: 200
is_deeply:
'${soundsets}': ${new_soundsets}
#DELETE soundsets
-
name: DELETE soundsets
type: item
method: DELETE
path: '/${soundsets_path1}'
conditions:
is:
code: 204
#DELETE soundsets
-
name: DELETE soundsets
type: item
method: DELETE
path: '/${soundsets_path2}'
conditions:
is:
code: 204
#DELETE soundsets
-
name: DELETE soundsets
type: item
method: DELETE
path: '/${soundsets_path3}'
conditions:
is:
code: 204