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

590 lines
14 KiB

---
#check options
-
name: check OPTIONS for peeringinboundrules
type: item
method: OPTIONS
path: /api/peeringinboundrules/
conditions:
is:
code: 200
header:
Accept-Post: application/hal+json; profile=http://purl.org/sipwise/ngcp-api/#rel-peeringinboundrules
ok:
options:
- GET
- HEAD
- OPTIONS
- POST
#create peeringgroup
-
name: create peeringgroup
type: item
method: POST
path: '/api/peeringgroups/'
header:
Content-Type: application/json
content:
name: test_api_p_group_inbound_rules
description: test_api peering group
priority: 1
contract_id: 1
retain:
peeringgroups_path: header.location
peeringgroups_id: header.location
conditions:
is:
code: 201
#create peeringinboundrules
-
name: create peeringinboundrules
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: ${peeringgroups_id}
field: 'ruri_uri'
pattern: '^111$'
reject_code: null
reject_reason: null
priority: 50
enabled: 1
retain:
peeringinboundrules_path_1: header.location
conditions:
is:
code: 201
#create peeringinboundrules
-
name: create peeringinboundrules
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: ${peeringgroups_id}
field: 'ruri_uri'
pattern: '^222$'
reject_code: null
reject_reason: null
priority: 51
enabled: 1
retain:
peeringinboundrules_path_2: header.location
conditions:
is:
code: 201
#create peeringinboundrules
-
name: create peeringinboundrules
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: ${peeringgroups_id}
field: 'ruri_uri'
pattern: '^333$'
reject_code: null
reject_reason: null
priority: 52
enabled: 1
retain:
peeringinboundrules_path_3: header.location
conditions:
is:
code: 201
#verify pagination
-
name: verify pagination
type: pagination
method: GET
path: '/api/peeringinboundrules/?page=1&rows=2'
retain:
collection: body
conditions:
is:
code: 200
#create same peeringinboundrules again
-
name: create same peeringinboundrules again
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: ${peeringgroups_id}
field: 'ruri_uri'
pattern: '^1111$'
reject_code: null
reject_reason: null
priority: 51
enabled: 1
conditions:
is:
code: 422
#create peeringinboundrules with reject code but no reject reason
-
name: create peeringinboundrules with reject code but no reject reason
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: ${peeringgroups_id}
field: 'ruri_uri'
pattern: '^20$'
reject_code: 404
reject_reason: null
priority: 60
enabled: 1
conditions:
is:
code: 422
#create peeringinboundrules with reject reason but no reject code
-
name: create peeringinboundrules with reject reason but no reject code
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: ${peeringgroups_id}
field: 'ruri_uri'
pattern: '^21$'
reject_code: null
reject_reason: 'some reason'
priority: 61
enabled: 1
conditions:
is:
code: 422
#create peeringinboundrules with too small code
-
name: create peeringinboundrules with too small code
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: ${peeringgroups_id}
field: 'ruri_uri'
pattern: '^22$'
reject_code: 399
reject_reason: 'some reason'
priority: 62
enabled: 1
conditions:
is:
code: 422
#create peeringinboundrules with too large code
-
name: create peeringinboundrules with too large code
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: ${peeringgroups_id}
field: 'ruri_uri'
pattern: '^23$'
reject_code: 701
reject_reason: 'some reason'
priority: 63
enabled: 1
conditions:
is:
code: 422
#create peeringinboundrules with valid code and reason
-
name: create peeringinboundrules with valid code and reason
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: ${peeringgroups_id}
field: 'ruri_uri'
pattern: '^24$'
reject_code: 400
reject_reason: 'some reason'
priority: 64
enabled: 1
conditions:
is:
code: 201
#create peeringinboundrules with invalid group_id
-
name: create peeringinboundrules with invalid group_id
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: 99999
field: 'ruri_uri'
pattern: '^25$'
reject_code: 400
reject_reason: 'some reason'
priority: 65
enabled: 1
conditions:
is:
code: 422
#create peeringinboundrules with specific priority
-
name: create peeringinboundrules with specific priority
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: ${peeringgroups_id}
field: 'ruri_uri'
pattern: 'my_identical_prio'
reject_code: 400
reject_reason: 'some reason'
priority: 99
enabled: 1
conditions:
is:
code: 201
#create peeringinboundrules with identical priority
-
name: create peeringinboundrules with identical priority
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: ${peeringgroups_id}
field: 'ruri_uri'
pattern: 'my_identical_prio1'
reject_code: 400
reject_reason: 'some reason'
priority: 99
enabled: 1
conditions:
is:
code: 422
#create peeringinboundrules for preparing priority move attempt
-
name: create peeringinboundrules for preparing priority move attempt
type: item
method: POST
path: '/api/peeringinboundrules/'
header:
Content-Type: application/json
content:
group_id: ${peeringgroups_id}
field: 'ruri_uri'
pattern: 'my_move_attempt'
reject_code: 400
reject_reason: 'some reason'
priority: 101
enabled: 1
retain:
peeringinboundrules_path4: header.location
conditions:
is:
code: 201
#fetch rule for prioritymove attempt
-
name: fetch rule for prioritymove attempt
type: item
method: GET
path: '/${peeringinboundrules_path4}'
retain:
peeringinboundrule: body
perl_code: !!perl/code |
{
my ($retained) = @_;
delete $retained->{peeringinboundrule}->{_links};
delete $retained->{peeringinboundrule}->{_embedded};
$retained->{peeringinboundrule}->{priority} = 99;
}
conditions:
is:
code: 200
#PUT with existing priority
-
name: PUT with existing priority
type: item
method: PUT
path: '/${peeringinboundrules_path4}'
header:
Content-Type: application/json
Prefer: return=representation
content: '${peeringinboundrule}'
perl_code: !!perl/code |
{
my ($retained) = @_;
$retained->{peeringinboundrule}->{priority} = 102;
}
conditions:
is:
code: 422
#PUT with new priority
-
name: PUT with new priority
type: item
method: PUT
path: '/${peeringinboundrules_path4}'
header:
Content-Type: application/json
Prefer: return=representation
content: '${peeringinboundrule}'
perl_code: !!perl/code |
{
my ($retained) = @_;
$retained->{peeringinboundrule}->{reject_reason} = 'some reason';
$retained->{peeringinboundrule}->{reject_code} = undef;
}
conditions:
is:
code: 200
#PUT with reason but no code
-
name: PUT with reason but no code
type: item
method: PUT
path: '/${peeringinboundrules_path4}'
header:
Content-Type: application/json
Prefer: return=representation
content: '${peeringinboundrule}'
perl_code: !!perl/code |
{
my ($retained) = @_;
$retained->{peeringinboundrule}->{reject_reason} = undef;
$retained->{peeringinboundrule}->{reject_code} = 401;
}
conditions:
is:
code: 422
#PUT with code but no reason
-
name: PUT with code but no reason
type: item
method: PUT
path: '/${peeringinboundrules_path4}'
header:
Content-Type: application/json
Prefer: return=representation
content: '${peeringinboundrule}'
perl_code: !!perl/code |
{
my ($retained) = @_;
$retained->{peeringinboundrule}->{reject_reason} = 'some reason';
$retained->{peeringinboundrule}->{reject_code} = 301;
}
conditions:
is:
code: 422
#PUT with too small code
-
name: PUT with too small code
type: item
method: PUT
path: '/${peeringinboundrules_path4}'
header:
Content-Type: application/json
Prefer: return=representation
content: '${peeringinboundrule}'
perl_code: !!perl/code |
{
my ($retained) = @_;
$retained->{peeringinboundrule}->{reject_reason} = 'some reason';
$retained->{peeringinboundrule}->{reject_code} = 701;
}
conditions:
is:
code: 422
#PUT with too large code
-
name: PUT with too large code
type: item
method: PUT
path: '/${peeringinboundrules_path4}'
header:
Content-Type: application/json
Prefer: return=representation
content: '${peeringinboundrule}'
perl_code: !!perl/code |
{
my ($retained) = @_;
$retained->{peeringinboundrule}->{reject_reason} = 'some reason';
$retained->{peeringinboundrule}->{reject_code} = 404;
}
conditions:
is:
code: 422
#PUT with valid code and reason
-
name: PUT with valid code and reason
type: item
method: PUT
path: '/${peeringinboundrules_path4}'
header:
Content-Type: application/json
Prefer: return=representation
content: '${peeringinboundrule}'
conditions:
is:
code: 200
#check options on item
-
name: check OPTIONS for peeringinboundrules item
type: item
method: OPTIONS
path: '/${peeringinboundrules_path_3}'
conditions:
is:
code: 200
ok:
options:
- GET
- HEAD
- OPTIONS
- PUT
- PATCH
- DELETE
#get peeringinboundrules
-
name: GET peeringinboundrules
type: item
method: GET
path: '/${peeringinboundrules_path_3}'
retain:
peeringinboundrules: body
perl_code: !!perl/code |
{
my ($retained) = @_;
delete $retained->{peeringinboundrules}->{_links};
delete $retained->{peeringinboundrules}->{_embedded};
}
conditions:
is:
code: 200
#put peeringinboundrules
-
name: PUT peeringinboundrules
type: item
method: PUT
path: '/${peeringinboundrules_path_3}'
header:
Content-Type: application/json
Prefer: return=representation
content: '${peeringinboundrules}'
conditions:
is:
code: 200
#get peeringinboundrules
-
name: GET peeringinboundrules
type: item
method: GET
path: '/${peeringinboundrules_path_3}'
retain:
new_peeringinboundrules: body
perl_code: !!perl/code |
{
my ($retained) = @_;
delete $retained->{new_peeringinboundrules}->{_links};
delete $retained->{new_peeringinboundrules}->{_embedded};
}
conditions:
is:
code: 200
is_deeply:
'${peeringinboundrules}': ${new_peeringinboundrules}
#DELETE peeringinboundrules
-
name: DELETE peeringinboundrules
type: item
method: DELETE
path: '/${peeringinboundrules_path_1}'
conditions:
is:
code: 204
#DELETE peeringinboundrules
-
name: DELETE peeringinboundrules
type: item
method: DELETE
path: '/${peeringinboundrules_path_2}'
conditions:
is:
code: 204
#DELETE peeringinboundrules
-
name: DELETE peeringinboundrules
type: item
method: DELETE
path: '/${peeringinboundrules_path_3}'
conditions:
is:
code: 204
#DELETE peeringinboundrules
-
name: DELETE peeringinboundrules
type: item
method: DELETE
path: '/${peeringinboundrules_path4}'
conditions:
is:
code: 204
#DELETE peeringgroup
-
name: DELETE peeringgroup
type: item
method: DELETE
path: '/${peeringgroups_path}'
conditions:
is:
code: 204