ruby-bandwidth-iris 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. checksums.yaml +7 -0
  2. data/.editorconfig +13 -0
  3. data/.gitignore +12 -0
  4. data/.rspec +3 -0
  5. data/.travis.yml +7 -0
  6. data/Gemfile +10 -0
  7. data/LICENSE.txt +20 -0
  8. data/README.md +571 -0
  9. data/Rakefile +5 -0
  10. data/examples/account.rb +15 -0
  11. data/examples/available_npa_nxx.rb +17 -0
  12. data/examples/available_number.rb +17 -0
  13. data/examples/city.rb +16 -0
  14. data/examples/config.yml.example +4 -0
  15. data/examples/covered-rate-center.rb +19 -0
  16. data/examples/loa.pdf +0 -0
  17. data/examples/order.rb +51 -0
  18. data/examples/port-in.rb +95 -0
  19. data/examples/sip_peer.rb +60 -0
  20. data/examples/site.rb +29 -0
  21. data/examples/tn.rb +20 -0
  22. data/lib/bandwidth-iris/account.rb +10 -0
  23. data/lib/bandwidth-iris/api_item.rb +36 -0
  24. data/lib/bandwidth-iris/available_npa_nxx.rb +15 -0
  25. data/lib/bandwidth-iris/available_number.rb +15 -0
  26. data/lib/bandwidth-iris/city.rb +15 -0
  27. data/lib/bandwidth-iris/client.rb +232 -0
  28. data/lib/bandwidth-iris/client_wrapper.rb +28 -0
  29. data/lib/bandwidth-iris/covered_rate_center.rb +17 -0
  30. data/lib/bandwidth-iris/disc_number.rb +19 -0
  31. data/lib/bandwidth-iris/disconnect.rb +36 -0
  32. data/lib/bandwidth-iris/dlda.rb +39 -0
  33. data/lib/bandwidth-iris/errors.rb +31 -0
  34. data/lib/bandwidth-iris/import_to_account.rb +24 -0
  35. data/lib/bandwidth-iris/in_service_number.rb +24 -0
  36. data/lib/bandwidth-iris/lidb.rb +24 -0
  37. data/lib/bandwidth-iris/lnp_checker.rb +18 -0
  38. data/lib/bandwidth-iris/lsr_order.rb +58 -0
  39. data/lib/bandwidth-iris/order.rb +76 -0
  40. data/lib/bandwidth-iris/port_in.rb +80 -0
  41. data/lib/bandwidth-iris/port_out.rb +24 -0
  42. data/lib/bandwidth-iris/rate_center.rb +19 -0
  43. data/lib/bandwidth-iris/sip_peer.rb +47 -0
  44. data/lib/bandwidth-iris/site.rb +83 -0
  45. data/lib/bandwidth-iris/subscription.rb +42 -0
  46. data/lib/bandwidth-iris/tn.rb +41 -0
  47. data/lib/bandwidth-iris/tn_reservation.rb +26 -0
  48. data/lib/bandwidth-iris/user.rb +20 -0
  49. data/lib/bandwidth-iris/version.rb +4 -0
  50. data/lib/ruby-bandwidth-iris.rb +29 -0
  51. data/ruby-bandwidth-iris.gemspec +26 -0
  52. data/spec/bandwidth-iris/account_spec.rb +19 -0
  53. data/spec/bandwidth-iris/available_npa_nxx_spec.rb +22 -0
  54. data/spec/bandwidth-iris/available_number_spec.rb +19 -0
  55. data/spec/bandwidth-iris/city_spec.rb +22 -0
  56. data/spec/bandwidth-iris/client_spec.rb +125 -0
  57. data/spec/bandwidth-iris/covered_rate_center_spec.rb +22 -0
  58. data/spec/bandwidth-iris/disconnect_spec.rb +52 -0
  59. data/spec/bandwidth-iris/dlda_spec.rb +47 -0
  60. data/spec/bandwidth-iris/import_to_account_spec.rb +36 -0
  61. data/spec/bandwidth-iris/in_service_number_spec.rb +33 -0
  62. data/spec/bandwidth-iris/lidb_spec.rb +44 -0
  63. data/spec/bandwidth-iris/lnp_checker_spec.rb +24 -0
  64. data/spec/bandwidth-iris/lsr_order_spec.rb +96 -0
  65. data/spec/bandwidth-iris/order_spec.rb +124 -0
  66. data/spec/bandwidth-iris/port_in_spec.rb +135 -0
  67. data/spec/bandwidth-iris/port_out_spec.rb +36 -0
  68. data/spec/bandwidth-iris/rate_center_spec.rb +29 -0
  69. data/spec/bandwidth-iris/sip_peer_spec.rb +86 -0
  70. data/spec/bandwidth-iris/site_spec.rb +95 -0
  71. data/spec/bandwidth-iris/subscription_spec.rb +58 -0
  72. data/spec/bandwidth-iris/tn_reservation_spec.rb +39 -0
  73. data/spec/bandwidth-iris/tn_spec.rb +68 -0
  74. data/spec/bandwidth-iris/user_spec.rb +21 -0
  75. data/spec/helper.rb +75 -0
  76. data/spec/xml.yml +46 -0
  77. metadata +256 -0
@@ -0,0 +1,41 @@
1
+ module BandwidthIris
2
+ TN_PATH = 'tns'
3
+
4
+ class Tn
5
+ extend ClientWrapper
6
+ include ApiItem
7
+
8
+ def self.get(client, number)
9
+ data = client.make_request(:get, "#{TN_PATH}/#{URI.escape(number)}")[0]
10
+ Tn.new(data, client)
11
+ end
12
+ wrap_client_arg :get
13
+
14
+
15
+ def self.list(client, query = nil)
16
+ list = client.make_request(:get, TN_PATH, query)[0][:telephone_numbers][:telephone_number]
17
+ return [] if !list
18
+ list = if list.is_a?(Array) then list else [list] end
19
+ list.map do |i|
20
+ Tn.new(i, client)
21
+ end
22
+ end
23
+ wrap_client_arg :list
24
+
25
+ def get_sites()
26
+ @client.make_request(:get, "#{TN_PATH}/#{URI.escape(telephone_number)}/sites")[0]
27
+ end
28
+
29
+ def get_sip_peers()
30
+ @client.make_request(:get, "#{TN_PATH}/#{URI.escape(telephone_number)}/sippeers")[0]
31
+ end
32
+
33
+ def get_rate_center()
34
+ @client.make_request(:get, "#{TN_PATH}/#{URI.escape(telephone_number)}/ratecenter")[0][:telephone_number_details]
35
+ end
36
+
37
+ def get_details()
38
+ @client.make_request(:get, "#{TN_PATH}/#{URI.escape(telephone_number)}/tndetails")[0][:telephone_number_details]
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,26 @@
1
+ module BandwidthIris
2
+ TN_RESERVATION_PATH = 'tnreservation'
3
+
4
+ class TnReservation
5
+ extend ClientWrapper
6
+ include ApiItem
7
+
8
+
9
+ def self.get(client, id)
10
+ data = client.make_request(:get, "#{client.concat_account_path(TN_RESERVATION_PATH)}/#{id}")[0][:reservation]
11
+ TnReservation.new(data, client)
12
+ end
13
+ wrap_client_arg :get
14
+
15
+ def self.create(client, item)
16
+ location = client.make_request(:post, client.concat_account_path(TN_RESERVATION_PATH), {:tn_reservation => item})[1][:location]
17
+ id = Client.get_id_from_location_header(location)
18
+ self.get(client, id)
19
+ end
20
+ wrap_client_arg :create
21
+
22
+ def delete()
23
+ @client.make_request(:delete,"#{@client.concat_account_path(TN_RESERVATION_PATH)}/#{id}")
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,20 @@
1
+ module BandwidthIris
2
+ USER_PATH = 'users'
3
+
4
+ class User
5
+ extend ClientWrapper
6
+ include ApiItem
7
+
8
+ def self.list(client)
9
+ list = client.make_request(:get, USER_PATH)[0][:users][:user]
10
+ return [] if !list
11
+ list = if list.is_a?(Array) then list else [list] end
12
+ list.map do |i|
13
+ User.new(i, client)
14
+ end
15
+ end
16
+ wrap_client_arg :list
17
+
18
+
19
+ end
20
+ end
@@ -0,0 +1,4 @@
1
+ module BandwidthIris
2
+ # Version of this gem
3
+ VERSION = "1.0.0"
4
+ end
@@ -0,0 +1,29 @@
1
+ require 'bandwidth-iris/api_item'
2
+ require 'bandwidth-iris/errors'
3
+ require 'bandwidth-iris/client'
4
+ require 'bandwidth-iris/client_wrapper'
5
+
6
+ require 'bandwidth-iris/account'
7
+ require 'bandwidth-iris/available_number'
8
+ require 'bandwidth-iris/available_npa_nxx'
9
+ require 'bandwidth-iris/city'
10
+ require 'bandwidth-iris/covered_rate_center'
11
+ require 'bandwidth-iris/disconnect'
12
+ require 'bandwidth-iris/dlda'
13
+ require 'bandwidth-iris/import_to_account'
14
+ require 'bandwidth-iris/in_service_number'
15
+ require 'bandwidth-iris/lidb'
16
+ require 'bandwidth-iris/lnp_checker'
17
+ require 'bandwidth-iris/lsr_order'
18
+ require 'bandwidth-iris/order'
19
+ require 'bandwidth-iris/port_in'
20
+ require 'bandwidth-iris/port_out'
21
+ require 'bandwidth-iris/rate_center'
22
+ require 'bandwidth-iris/sip_peer'
23
+ require 'bandwidth-iris/site'
24
+ require 'bandwidth-iris/subscription'
25
+ require 'bandwidth-iris/tn'
26
+ require 'bandwidth-iris/tn_reservation'
27
+ require 'bandwidth-iris/user'
28
+
29
+ require 'bandwidth-iris/version'
@@ -0,0 +1,26 @@
1
+ lib = File.expand_path('../lib', __FILE__)
2
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
3
+ require 'bandwidth-iris/version'
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "ruby-bandwidth-iris"
7
+ spec.version = BandwidthIris::VERSION
8
+ spec.authors = ["Andrey Belchikov"]
9
+ spec.description = "Gem for integrating to Bandwidth's Iris API"
10
+ spec.summary = spec.description
11
+ spec.homepage = "https://github.com/bandwidthcom/ruby-bandwidth-iris"
12
+ spec.license = "MIT"
13
+
14
+ spec.files = `git ls-files`.split($/)
15
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
16
+ spec.require_paths = ["lib"]
17
+ spec.add_dependency "builder"
18
+ spec.add_dependency "faraday"
19
+ spec.add_dependency "nori"
20
+ spec.add_dependency "activesupport"
21
+ spec.add_dependency "certified"
22
+
23
+ spec.add_development_dependency "bundler", "~> 1.3"
24
+ spec.add_development_dependency "rake"
25
+ spec.add_development_dependency "yard"
26
+ end
@@ -0,0 +1,19 @@
1
+ describe BandwidthIris::Account do
2
+ client = nil
3
+
4
+ before :each do
5
+ client = Helper.get_client()
6
+ end
7
+
8
+ after :each do
9
+ client.stubs.verify_stubbed_calls()
10
+ end
11
+
12
+ describe '#get' do
13
+ it 'should return an account' do
14
+ client.stubs.get('/v1.0/accounts/accountId') {|env| [200, {}, Helper.xml['account']]}
15
+ item = Account.get(client)
16
+ expect(item[:account_id]).to eql(14)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,22 @@
1
+ describe BandwidthIris::AvailableNpaNxx do
2
+ client = nil
3
+
4
+ before :each do
5
+ client = Helper.get_client()
6
+ end
7
+
8
+ after :each do
9
+ client.stubs.verify_stubbed_calls()
10
+ end
11
+
12
+ describe '#list' do
13
+ it 'should return data' do
14
+ client.stubs.get('/v1.0/accounts/accountId/availableNpaNxx?areaCode=919') {|env| [200, {}, Helper.xml['available_npa_nxx']]}
15
+ expect(AvailableNpaNxx.list(client, {:area_code => 919})).to eql([
16
+ { :city => "City1", :state => "State1", :npa => "Npa1", :nxx => "Nxx1", :quantity => 10 },
17
+ { :city => "City2", :state => "State2", :npa => "Npa2", :nxx => "Nxx2", :quantity => 20 }
18
+ ])
19
+ end
20
+ end
21
+
22
+ end
@@ -0,0 +1,19 @@
1
+ describe BandwidthIris::AvailableNumber do
2
+ client = nil
3
+
4
+ before :each do
5
+ client = Helper.get_client()
6
+ end
7
+
8
+ after :each do
9
+ client.stubs.verify_stubbed_calls()
10
+ end
11
+
12
+ describe '#list' do
13
+ it 'should return numbers' do
14
+ client.stubs.get('/v1.0/accounts/accountId/availableNumbers?areaCode=866&quantity=5') {|env| [200, {}, Helper.xml['available_numbers']]}
15
+ expect(AvailableNumber.list(client, {:area_code => 866, :quantity => 5}).length).to eql(2)
16
+ end
17
+ end
18
+
19
+ end
@@ -0,0 +1,22 @@
1
+ describe BandwidthIris::City do
2
+ client = nil
3
+
4
+ before :each do
5
+ client = Helper.get_client()
6
+ end
7
+
8
+ after :each do
9
+ client.stubs.verify_stubbed_calls()
10
+ end
11
+
12
+ describe '#list' do
13
+ it 'should return cities' do
14
+ client.stubs.get('/v1.0/cities?state=NC') {|env| [200, {}, Helper.xml['cities']]}
15
+ expect(City.list(client, {:state => 'NC'})).to eql([
16
+ { :rc_abbreviation => "SOUTHEPINS", :name => "ABERDEEN" },
17
+ { :rc_abbreviation => "JULIAN", :name => "ADVANCE" }
18
+ ])
19
+ end
20
+ end
21
+
22
+ end
@@ -0,0 +1,125 @@
1
+ describe BandwidthIris::Client do
2
+ describe '#initialize' do
3
+ it 'should create instance of Client' do
4
+ expect(Client.new()).to be_a(Client)
5
+ expect(Client.new('accountId', 'user', 'password')).to be_a(Client)
6
+ expect(Client.new('accountId', 'user', 'password', {})).to be_a(Client)
7
+ expect(Client.new({:account_id => 'accountId', :username => 'user', :password => 'password'})).to be_a(Client)
8
+ end
9
+ end
10
+
11
+ describe '#global_options' do
12
+ it 'should return and change @@global_options of Client' do
13
+ Client.global_options = {:account_id => 'accountId', :username => 'username', :password => 'password'}
14
+ expect(Client.global_options).to eql({:account_id => 'accountId', :username => 'username', :password => 'password'})
15
+ end
16
+ end
17
+
18
+ describe '#get_id_from_location_header' do
19
+ it 'should return last url path item as id' do
20
+ expect(Client.get_id_from_location_header('http://localhost/path1/path2/id')).to eql('id')
21
+ end
22
+ it 'should raise error if location is missing or nil' do
23
+ expect{Client.get_id_from_location_header('')}.to raise_error
24
+ expect{Client.get_id_from_location_header(nil)}.to raise_error
25
+ end
26
+ end
27
+
28
+ describe '#concat_account_path' do
29
+ client = nil
30
+ before :each do
31
+ client = Helper.get_client()
32
+ end
33
+
34
+ it 'should add user id to path' do
35
+ expect(client.concat_account_path('test')).to eql('/accounts/accountId/test')
36
+ expect(client.concat_account_path('/test1')).to eql('/accounts/accountId/test1')
37
+ end
38
+ end
39
+
40
+ describe '#create_connection' do
41
+ client = nil
42
+ before :each do
43
+ client = Helper.get_client()
44
+ end
45
+
46
+ it 'should create new faraday connection' do
47
+ connection = client.create_connection()
48
+ expect(connection).to be_a(Faraday::Connection)
49
+ expect(connection.headers['Authorization']).to eql("Basic #{Base64.strict_encode64('username:password')}")
50
+ end
51
+ end
52
+
53
+ describe '#make_request' do
54
+ client = nil
55
+ before :each do
56
+ client = Helper.get_client()
57
+ end
58
+
59
+ after :each do
60
+ client.stubs.verify_stubbed_calls()
61
+ end
62
+
63
+ it 'should make GET request and return xml data' do
64
+ client.stubs.get('/v1.0/path1') { |env| [200, {}, '<Result><Test>data</Test></Result>'] }
65
+ client.stubs.get('/v1.0/path2?testField=10') { |env| [200, {'Location'=>'url'}, '<Root><TestValue>10</TestValue><DataArray>1</DataArray><DataArray>2</DataArray><BoolValue>true</BoolValue><BoolValue2>false</BoolValue2><DateTimeValue>2015-05-29T01:02:03Z</DateTimeValue></Root>'] }
66
+ expect(client.make_request(:get, '/path1')).to eql([{:test => 'data'}, {}])
67
+ expect(client.make_request(:get, '/path2', {:test_field => 10})).to eql([{:test_value => 10, :data_array => [1, 2], :bool_value => true, :bool_value2 => false, :date_time_value => DateTime.new(2015,5,29,1,2,3)}, {:location=>'url'}])
68
+ end
69
+
70
+ it 'should make POST request and return xml data' do
71
+ client.stubs.post('/v1.0/path1', '<?xml version="1.0" encoding="UTF-8"?><Request><TestField1>test</TestField1><TestField2>10</TestField2><TestField3>false</TestField3><TestFieldd4>2015-05-29T01:02:03+00:00</TestFieldd4></Request>') { |env| [200, {}, '<Response><Success>true</Success></Response>'] }
72
+ expect(client.make_request(:post, '/path1', {:request => {:test_field1 => "test", :test_field2 => 10, :test_field3 => false, :test_fieldd4 => DateTime.new(2015, 5, 29, 1,2,3)}})[0]).to eql(:success => true)
73
+ end
74
+
75
+ it 'should make PUT request and return xml data' do
76
+ client.stubs.put('/v1.0/path1', '<?xml version="1.0" encoding="UTF-8"?><Request><TestField1>test</TestField1></Request>') { |env| [200, {}, '<Response><Success>true</Success></Response>'] }
77
+ expect(client.make_request(:put, '/path1', {:request => {:test_field1 => "test"}})[0]).to eql(:success => true)
78
+ end
79
+
80
+ it 'should make DELETE request and return xml data' do
81
+ client.stubs.delete('/v1.0/path1') { |env| [200, {}, '<Result><Test>data</Test></Result>'] }
82
+ expect(client.make_request(:delete, '/path1')).to eql([{:test => 'data'}, {}])
83
+ end
84
+
85
+ it 'should raise error if http status >= 400' do
86
+ client.stubs.get('/v1.0/path1') { |env| [400, {}, ''] }
87
+ expect{client.make_request(:get, '/path1')}.to raise_error(Errors::GenericError, "Http code 400")
88
+ end
89
+
90
+ it 'should fail if output contains ErrorCode and Description' do
91
+ client.stubs.get('/v1.0/path1') { |env| [200, {}, '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Response><Test><ErrorCode>400</ErrorCode><Description>Error</Description></Test></Response>'] }
92
+ expect{client.make_request(:get, '/path1')}.to raise_error(Errors::GenericError, "Error")
93
+ end
94
+
95
+ it 'should fail if output contains element Error with Code and Description' do
96
+ client.stubs.get('/v1.0/path1') { |env| [200, {}, '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Response><Test><Error><Code>400</Code><Description>Error</Description></Error></Test></Response>'] }
97
+ expect{client.make_request(:get, '/path1')}.to raise_error(Errors::GenericError, "Error")
98
+ end
99
+
100
+ it 'should fail if output contains elements Errors with Code and Description' do
101
+ client.stubs.get('/v1.0/path1') { |env| [200, {}, '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Response><Test><Errors><Code>400</Code><Description>Error</Description></Errors><Errors><Code>401</Code><Description>Error1</Description></Errors></Test></Response>'] }
102
+ expect{client.make_request(:get, '/path1')}.to raise_error(Errors::AgregateError)
103
+ end
104
+
105
+ it 'should fail if output contains elements Errors with Code and Description (for 1 element)' do
106
+ client.stubs.get('/v1.0/path1') { |env| [200, {}, '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Response><Test><Errors><Code>400</Code><Description>Error</Description></Errors></Test></Response>'] }
107
+ expect{client.make_request(:get, '/path1')}.to raise_error(Errors::AgregateError)
108
+ end
109
+
110
+ it 'should fail if output contains elements resultCode and resultMessage' do
111
+ client.stubs.get('/v1.0/path1') { |env| [200, {}, '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Response><Test><resultCode>400</resultCode><resultMessage>Error</resultMessage></Test></Response>'] }
112
+ expect{client.make_request(:get, '/path1')}.to raise_error(Errors::GenericError, "Error")
113
+ end
114
+
115
+ it 'should fail if output contains elements resultCode and resultMessage (more deep)' do
116
+ client.stubs.get('/v1.0/path1') { |env| [200, {}, '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Response><Tests><Test></Test><Test><resultCode>400</resultCode><resultMessage>Error</resultMessage></Test></Tests></Response>'] }
117
+ expect{client.make_request(:get, '/path1')}.to raise_error(Errors::GenericError, "Error")
118
+ end
119
+
120
+ it 'should not fail if resultCode == 0' do
121
+ client.stubs.get('/v1.0/path1') { |env| [200, {}, '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Response><Test><resultCode>0</resultCode><resultMessage>Completed</resultMessage></Test></Response>'] }
122
+ client.make_request(:get, '/path1')
123
+ end
124
+ end
125
+ end
@@ -0,0 +1,22 @@
1
+ describe BandwidthIris::CoveredRateCenter do
2
+ client = nil
3
+
4
+ before :each do
5
+ client = Helper.get_client()
6
+ end
7
+
8
+ after :each do
9
+ client.stubs.verify_stubbed_calls()
10
+ end
11
+
12
+ describe '#list' do
13
+ it 'should return centers' do
14
+ client.stubs.get('/v1.0/coveredRateCenters') {|env| [200, {}, Helper.xml['covered_rate_centers']]}
15
+ list = CoveredRateCenter.list(client)
16
+ expect(list.length).to eql(1)
17
+ expect(list[0][:abbreviation]).to eql("ACME")
18
+ expect(list[0][:name]).to eql("ACME")
19
+ end
20
+ end
21
+
22
+ end
@@ -0,0 +1,52 @@
1
+ describe BandwidthIris::Disconnect do
2
+ client = nil
3
+
4
+ before :each do
5
+ client = Helper.get_client()
6
+ end
7
+
8
+ after :each do
9
+ client.stubs.verify_stubbed_calls()
10
+ end
11
+
12
+ describe '#create' do
13
+ it 'should disconnect numbers' do
14
+ data = {
15
+ :disconnect_telephone_number_order => {
16
+ :name => 'test',
17
+ '_nameXmlElement' => 'name',
18
+ :disconnect_telephone_number_order_type => {
19
+ :telephone_number => ['111', '222']
20
+ }
21
+ }
22
+ }
23
+ client.stubs.post('/v1.0/accounts/accountId/disconnects', client.build_xml(data)) {|env| [200, {}, '']}
24
+ Disconnect.create(client, 'test', ['111', '222'])
25
+ end
26
+ end
27
+
28
+ describe '#get_notes' do
29
+ it 'should return notes' do
30
+ client.stubs.get('/v1.0/accounts/accountId/disconnects/1/notes') {|env| [200, {}, Helper.xml['notes']]}
31
+ order = Disconnect.new({:id => 1}, client)
32
+
33
+ list = order.get_notes()
34
+ expect(list[0][:id]).to eql(11299)
35
+ expect(list[0][:user_id]).to eql('customer')
36
+ expect(list[0][:description]).to eql('Test')
37
+ end
38
+ end
39
+
40
+ describe '#add_notes' do
41
+ it 'should add a note and return it' do
42
+ data = {:user_id => 'customer', :description => 'Test'}
43
+ client.stubs.post('/v1.0/accounts/accountId/disconnects/1/notes', client.build_xml({note: data})) {|env| [200, {:location => '/v1.0/accounts/FakeAccountId/disconnects/1/notes/11299'}, '']}
44
+ client.stubs.get('/v1.0/accounts/accountId/disconnects/1/notes') {|env| [200, {}, Helper.xml['notes']]}
45
+ order = Disconnect.new({:id => 1}, client)
46
+ item = order.add_notes(data)
47
+ expect(item[:id]).to eql(11299)
48
+ expect(item[:user_id]).to eql('customer')
49
+ expect(item[:description]).to eql('Test')
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,47 @@
1
+ describe BandwidthIris::Dlda do
2
+ client = nil
3
+
4
+ before :each do
5
+ client = Helper.get_client()
6
+ end
7
+
8
+ after :each do
9
+ client.stubs.verify_stubbed_calls()
10
+ end
11
+
12
+ describe '#list' do
13
+ it 'should return orders' do
14
+ client.stubs.get('/v1.0/accounts/accountId/dldas') {|env| [200, {}, Helper.xml['dldas']]}
15
+ list = Dlda.list(client)
16
+ expect(list.length).to eql(3)
17
+ end
18
+ end
19
+
20
+ describe '#get' do
21
+ it 'should return an order' do
22
+ client.stubs.get('/v1.0/accounts/accountId/dldas/1') {|env| [200, {}, Helper.xml['dlda']]}
23
+ item = Dlda.get(client, 1)
24
+ expect(item[:id]).to eql('ea9e90c2-77a4-4f82-ac47-e1c5bb1311f4')
25
+ end
26
+ end
27
+
28
+ describe '#create' do
29
+ it 'should create a subscription' do
30
+ data = {}
31
+ client.stubs.post('/v1.0/accounts/accountId/dldas', client.build_xml({:dlda_order => data})) {|env| [201, {'Location' => '/v1.0/accounts/accountId/dldas/1'}, '']}
32
+ client.stubs.get('/v1.0/accounts/accountId/dldas/1') {|env| [200, {}, Helper.xml['dlda']]}
33
+ item = Dlda.create(client, data)
34
+ expect(item[:id]).to eql('ea9e90c2-77a4-4f82-ac47-e1c5bb1311f4')
35
+ end
36
+ end
37
+
38
+ describe '#get_history' do
39
+ it 'should return history' do
40
+ client.stubs.get('/v1.0/accounts/accountId/dldas/1/history') {|env| [200, {}, Helper.xml['order_history']]}
41
+ item = Dlda.new({:id => 1}, client)
42
+ list = item.get_history()
43
+ expect(list.length > 0).to eql(true)
44
+ end
45
+ end
46
+
47
+ end
@@ -0,0 +1,36 @@
1
+ describe BandwidthIris::ImportToAccount do
2
+ client = nil
3
+
4
+ before :each do
5
+ client = Helper.get_client()
6
+ end
7
+
8
+ after :each do
9
+ client.stubs.verify_stubbed_calls()
10
+ end
11
+
12
+ describe '#get_notes' do
13
+ it 'should return notes' do
14
+ client.stubs.get('/v1.0/accounts/accountId/importToAccounts/1/notes') {|env| [200, {}, Helper.xml['notes']]}
15
+ order = ImportToAccount.new({:id => 1}, client)
16
+
17
+ list = order.get_notes()
18
+ expect(list[0][:id]).to eql(11299)
19
+ expect(list[0][:user_id]).to eql('customer')
20
+ expect(list[0][:description]).to eql('Test')
21
+ end
22
+ end
23
+
24
+ describe '#add_notes' do
25
+ it 'should add a note and return it' do
26
+ data = {:user_id => 'customer', :description => 'Test'}
27
+ client.stubs.post('/v1.0/accounts/accountId/importToAccounts/1/notes', client.build_xml({note: data})) {|env| [200, {:location => '/v1.0/accounts/FakeAccountId/importToAccounts/1/notes/11299'}, '']}
28
+ client.stubs.get('/v1.0/accounts/accountId/importToAccounts/1/notes') {|env| [200, {}, Helper.xml['notes']]}
29
+ order = ImportToAccount.new({:id => 1}, client)
30
+ item = order.add_notes(data)
31
+ expect(item[:id]).to eql(11299)
32
+ expect(item[:user_id]).to eql('customer')
33
+ expect(item[:description]).to eql('Test')
34
+ end
35
+ end
36
+ end
@@ -0,0 +1,33 @@
1
+ describe BandwidthIris::InServiceNumber do
2
+ client = nil
3
+
4
+ before :each do
5
+ client = Helper.get_client()
6
+ end
7
+
8
+ after :each do
9
+ client.stubs.verify_stubbed_calls()
10
+ end
11
+
12
+ describe '#list' do
13
+ it 'should return numbers' do
14
+ client.stubs.get('/v1.0/accounts/accountId/inserviceNumbers') {|env| [200, {}, Helper.xml['in_service_numbers']]}
15
+ list = InServiceNumber.list(client)
16
+ expect(list.length).to eql(15)
17
+ end
18
+ end
19
+ describe '#get' do
20
+ it 'should return a number' do
21
+ client.stubs.get('/v1.0/accounts/accountId/inserviceNumbers/12345') {|env| [200, {}, '']}
22
+ InServiceNumber.get(client, '12345')
23
+ end
24
+ end
25
+ describe '#totals' do
26
+ it 'should return totals' do
27
+ client.stubs.get('/v1.0/accounts/accountId/inserviceNumbers/totals') {|env| [200, {}, Helper.xml['in_service_numbers_totals']]}
28
+ r = InServiceNumber.totals(client)
29
+ expect(r[:count]).to eql(3)
30
+ end
31
+ end
32
+
33
+ end
@@ -0,0 +1,44 @@
1
+ describe BandwidthIris::Lidb do
2
+ client = nil
3
+
4
+ before :each do
5
+ client = Helper.get_client()
6
+ end
7
+
8
+ after :each do
9
+ client.stubs.verify_stubbed_calls()
10
+ end
11
+
12
+ describe '#list' do
13
+ it 'should return orders' do
14
+ client.stubs.get('/v1.0/accounts/accountId/lidbs') {|env| [200, {}, Helper.xml['lidbs']]}
15
+ Lidb.list(client)
16
+ end
17
+ end
18
+
19
+ describe '#get' do
20
+ it 'should return an order' do
21
+ client.stubs.get('/v1.0/accounts/accountId/lidbs/1') {|env| [200, {}, Helper.xml['lidb']]}
22
+ Lidb.get(client, 1)
23
+ end
24
+ end
25
+
26
+ describe '#create' do
27
+ it 'should create a subscription' do
28
+ data = {
29
+ :customer_order_id =>"A Test order",
30
+ :lidb_tn_groups => {
31
+ :lidb_tn_group => {
32
+ :telephone_numbers => ["8048030097", "8045030098"],
33
+ :subscriber_information =>"Joes Grarage",
34
+ :use_type => "RESIDENTIAL",
35
+ :visibility => "PUBLIC"
36
+ }
37
+ }
38
+ }
39
+ client.stubs.post('/v1.0/accounts/accountId/lidbs', client.build_xml({:lidb_order => data})) {|env| [201, {'Location' => '/v1.0/accounts/accountId/lidbs/1'}, '']}
40
+ client.stubs.get('/v1.0/accounts/accountId/lidbs/1') {|env| [200, {}, Helper.xml['lidb']]}
41
+ Lidb.create(client, data)
42
+ end
43
+ end
44
+ end
@@ -0,0 +1,24 @@
1
+ describe BandwidthIris::LnpChecker do
2
+ client = nil
3
+
4
+ before :each do
5
+ client = Helper.get_client()
6
+ end
7
+
8
+ after :each do
9
+ client.stubs.verify_stubbed_calls()
10
+ end
11
+
12
+ describe '#check' do
13
+ it 'should check numbers' do
14
+ numbers = ['1111', '2222']
15
+ data = {:number_portability_request => {:tn_list => {:tn => numbers}}}
16
+ client.stubs.post('/v1.0/accounts/accountId/lnpchecker?fullCheck=true', client.build_xml(data)) {|env| [200, {}, Helper.xml['lnp_check']]}
17
+ result = LnpChecker.check(client, numbers, true)
18
+ expect(result[:supported_rate_centers][:rate_center_group][:rate_center]).to eql("Center1")
19
+ expect(result[:supported_rate_centers][:rate_center_group][:city]).to eql("City1")
20
+ expect(result[:supported_rate_centers][:rate_center_group][:state]).to eql("State1")
21
+ end
22
+ end
23
+
24
+ end