Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions custom_templates/gem.mustache
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ require 'bandwidth-sdk/models/bxml/verbs/phone_number'
require 'bandwidth-sdk/models/bxml/verbs/play_audio'
require 'bandwidth-sdk/models/bxml/verbs/record'
require 'bandwidth-sdk/models/bxml/verbs/redirect'
require 'bandwidth-sdk/models/bxml/verbs/refer'
require 'bandwidth-sdk/models/bxml/verbs/resume_recording'
require 'bandwidth-sdk/models/bxml/verbs/ring'
require 'bandwidth-sdk/models/bxml/verbs/send_dtmf'
Expand Down
1 change: 1 addition & 0 deletions lib/bandwidth-sdk.rb
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,7 @@
require 'bandwidth-sdk/models/bxml/verbs/play_audio'
require 'bandwidth-sdk/models/bxml/verbs/record'
require 'bandwidth-sdk/models/bxml/verbs/redirect'
require 'bandwidth-sdk/models/bxml/verbs/refer'
require 'bandwidth-sdk/models/bxml/verbs/resume_recording'
require 'bandwidth-sdk/models/bxml/verbs/ring'
require 'bandwidth-sdk/models/bxml/verbs/send_dtmf'
Expand Down
25 changes: 25 additions & 0 deletions lib/bandwidth-sdk/models/bxml/verbs/refer.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
module Bandwidth
module Bxml
class Refer < Bandwidth::Bxml::NestableVerb
# Initializer
# @param sip_uri [SipUri] or [Array<SipUri>] XML element children. Defaults to an empty array. Valid nested verb is: SipUri.
# @param attributes [Hash] The attributes to add to the element. Defaults to an empty hash.
def initialize(sip_uri = [], attributes = {})
super('Refer', nil, sip_uri, attributes)

@attribute_map = {
refer_complete_url: 'referCompleteUrl', # Optional [String]: URL to send the Refer Complete event to and request new BXML. May be a relative URL.
refer_complete_method: 'referCompleteMethod', # Optional [String]: The HTTP method to use for the request to referCompleteUrl. GET or POST. Default value is POST.
tag: 'tag', # Optional [String]: A custom string that will be sent with this and all future callbacks unless overwritten by a future tag attribute or cleared. May be cleared by setting tag="" Max length 256 characters.
}
end

# Add SipUri to the nested verbs array
# @param sip_uri [SipUri] or [Array<SipUri>] Verb or verbs to add to the array.
def add_sip_uri(sip_uri)
@nested_verbs.push(*sip_uri)
end
end
end
end

61 changes: 61 additions & 0 deletions spec/unit/models/bxml/verbs/refer_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# Unit tests for Bandwidth::Bxml::Refer
describe 'Bandwidth::Bxml::Refer' do
let(:initial_attributes) {
{
refer_complete_url: 'https://example.com/handleRefer',
refer_complete_method: 'POST',
tag: 'initial_tag'
}
}

let(:new_attributes) {
{
refer_complete_url: 'https://new.com/handleRefer',
refer_complete_method: 'GET',
tag: 'new_tag'
}
}

let(:sip_uri) { Bandwidth::Bxml::SipUri.new('sip:alice@atlanta.example.com') }

let(:instance) { Bandwidth::Bxml::Refer.new([], initial_attributes) }
let(:instance_nested) { Bandwidth::Bxml::Refer.new(sip_uri, initial_attributes) }

describe 'test an instance of Refer' do
it 'validates instance of Refer' do
expect(instance).to be_instance_of(Bandwidth::Bxml::Refer)
expect(instance).to be_a(Bandwidth::Bxml::Verb)
end

it 'tests the to_bxml method of the Refer instance' do
expected = "\n<Refer referCompleteUrl=\"https://example.com/handleRefer\" referCompleteMethod=\"POST\" tag=\"initial_tag\"/>\n"
expect(instance.to_bxml).to eq(expected)
end

it 'tests the set_attributes method of the Refer instance' do
instance.set_attributes(new_attributes)
expected = "\n<Refer referCompleteUrl=\"https://new.com/handleRefer\" referCompleteMethod=\"GET\" tag=\"new_tag\"/>\n"
expect(instance.to_bxml).to eq(expected)
end
end

describe 'test an instance of Refer with nested SipUri' do
it 'validates instance of Refer' do
expect(instance_nested).to be_instance_of(Bandwidth::Bxml::Refer)
expect(instance_nested).to be_a(Bandwidth::Bxml::Verb)
end

it 'tests the to_bxml method of the nested Refer instance' do
expected = "\n<Refer referCompleteUrl=\"https://example.com/handleRefer\" referCompleteMethod=\"POST\" tag=\"initial_tag\">\n <SipUri>sip:alice@atlanta.example.com</SipUri>\n</Refer>\n"
expect(instance_nested.to_bxml).to eq(expected)
end

it 'tests the add_sip_uri method of the nested Refer instance' do
sip_uri_2 = Bandwidth::Bxml::SipUri.new('sip:bob@biloxi.example.com')
instance_nested.add_sip_uri(sip_uri_2)
expected = "\n<Refer referCompleteUrl=\"https://example.com/handleRefer\" referCompleteMethod=\"POST\" tag=\"initial_tag\">\n <SipUri>sip:alice@atlanta.example.com</SipUri>\n <SipUri>sip:bob@biloxi.example.com</SipUri>\n</Refer>\n"
expect(instance_nested.to_bxml).to eq(expected)
end
end
end

Loading