--- #check options - name: check OPTIONS for cfdestinationsets type: item method: OPTIONS path: /api/cfdestinationsets/ conditions: is: code: 200 header: Accept-Post: application/hal+json; profile=http://purl.org/sipwise/ngcp-api/#rel-cfdestinationsets ok: options: - GET - HEAD - OPTIONS - POST #get a subscriber for testing - name: get a subscriber for testing type: item method: GET path: '/api/subscribers/?page=1&rows=1' retain: subscriber: body perl_code: !!perl/code | { my ($retained) = @_; my $subscriber = $retained->{subscriber}->{'_embedded'}->{'ngcp:subscribers'}->[0]; $retained->{subscriber} = $subscriber; $retained->{subscriber_id} = $subscriber->{id}; } conditions: is: code: 200 ok: '${subscriber}.id': defined #get a subscriber for testingannouncement id - name: get a announcement id type: item method: GET path: '/api/soundhandles/?page=1&rows=1&group=custom_announcements' retain: soundhandle: body perl_code: !!perl/code | { my ($retained) = @_; my $soundhandle = $retained->{soundhandle}->{'_embedded'}->{'ngcp:soundhandles'}->[0]; $retained->{soundhandle} = $soundhandle; $retained->{destinations} = [{ destination => 'customhours', priority => 1, timeout => 300, announcement_id => $soundhandle->{id} }, { destination => 'customhours', priority => 1, timeout => 300 }]; } conditions: is: code: 200 ok: '${announcement}.id': defined #create cfdestinationsets - name: create cfdestinationsets type: item method: POST path: '/api/cfdestinationsets/' header: Content-Type: application/json content: subscriber_id: ${subscriber_id} name: Weekend days 1 destinations: ${destinations} retain: cfdestinationsets_path1: header.location conditions: is: code: 201 #create cfdestinationsets - name: create cfdestinationsets type: item method: POST path: '/api/cfdestinationsets/' header: Content-Type: application/json content: subscriber_id: ${subscriber_id} name: Weekend days 2 destinations: ${destinations} retain: cfdestinationsets_path2: header.location conditions: is: code: 201 #create cfdestinationsets - name: create cfdestinationsets type: item method: POST path: '/api/cfdestinationsets/' header: Content-Type: application/json content: subscriber_id: ${subscriber_id} name: Weekend days 2 destinations: ${destinations} retain: cfdestinationsets_path3: header.location conditions: is: code: 201 #verify pagination - name: verify pagination type: pagination method: GET path: '/api/cfdestinationsets/?page=1&rows=2' retain: collection: body conditions: is: code: 200 #get cfdestinationsets - name: GET cfdestinationsets type: item method: GET path: '/${cfdestinationsets_path3}' retain: cfdestinationsets: body perl_code: !!perl/code | { my ($retained) = @_; delete $retained->{cfdestinationsets}->{_links}; delete $retained->{cfdestinationsets}->{_embedded}; } conditions: is: code: 200 #put cfdestinationsets - name: PUT cfdestinationsets type: item method: PUT path: '/${cfdestinationsets_path3}' header: Content-Type: application/json Prefer: return=representation content: '${cfdestinationsets}' conditions: is: code: 200 #get cfdestinationsets - name: GET cfdestinationsets type: item method: GET path: '/${cfdestinationsets_path3}' retain: new_cfdestinationsets: body perl_code: !!perl/code | { my ($retained) = @_; delete $retained->{new_cfdestinationsets}->{_links}; delete $retained->{new_cfdestinationsets}->{_embedded}; } conditions: is: code: 200 is_deeply: '${cfdestinationsets}': ${new_cfdestinationsets} #DELETE cfdestinationsets - name: DELETE cfdestinationsets type: item method: DELETE path: '/${cfdestinationsets_path1}' conditions: is: code: 204 #DELETE cfdestinationsets - name: DELETE cfdestinationsets type: item method: DELETE path: '/${cfdestinationsets_path2}' conditions: is: code: 204 #DELETE cfdestinationsets - name: DELETE cfdestinationsets type: item method: DELETE path: '/${cfdestinationsets_path3}' conditions: is: code: 204