phaxio 2.1.0.pre → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +17 -17
  3. data/lib/phaxio/client.rb +14 -12
  4. data/lib/phaxio/config.rb +6 -4
  5. data/lib/phaxio/error.rb +1 -0
  6. data/lib/phaxio/resource.rb +11 -5
  7. data/lib/phaxio/resources/account.rb +1 -1
  8. data/lib/phaxio/resources/ata.rb +85 -19
  9. data/lib/phaxio/resources/callback.rb +10 -56
  10. data/lib/phaxio/resources/fax.rb +11 -11
  11. data/lib/phaxio/resources/phax_code.rb +2 -2
  12. data/lib/phaxio/resources/phone_number.rb +31 -5
  13. data/lib/phaxio/resources/port_number.rb +42 -0
  14. data/lib/phaxio/resources/port_number_note.rb +51 -0
  15. data/lib/phaxio/resources/port_order.rb +172 -0
  16. data/lib/phaxio/resources/public/area_code.rb +1 -1
  17. data/lib/phaxio/resources/public/country.rb +1 -1
  18. data/lib/phaxio/resources/webhook.rb +65 -0
  19. data/lib/phaxio/version.rb +1 -1
  20. data/lib/phaxio.rb +12 -3
  21. data/spec/client_spec.rb +17 -0
  22. data/spec/phaxio_spec.rb +7 -1
  23. data/spec/resources/account_spec.rb +1 -7
  24. data/spec/resources/ata_spec.rb +207 -0
  25. data/spec/resources/fax_spec.rb +35 -103
  26. data/spec/resources/phax_code_spec.rb +10 -44
  27. data/spec/resources/phone_number_spec.rb +19 -30
  28. data/spec/resources/port_number_note_spec.rb +33 -0
  29. data/spec/resources/port_number_spec.rb +32 -0
  30. data/spec/resources/port_order_spec.rb +76 -0
  31. data/spec/resources/public/area_code_spec.rb +1 -1
  32. data/spec/resources/public/country_spec.rb +1 -7
  33. data/spec/resources/{callback_spec.rb → webhook_spec.rb} +8 -8
  34. data/spec/spec_helper.rb +1 -0
  35. data/spec/support/{vcr_cassettes/resources/account/status.yml → cassettes/account/get.yml} +7 -9
  36. data/spec/support/cassettes/ata/add_phone_number.yml +89 -0
  37. data/spec/support/{vcr_cassettes/resources/fax/resend.yml → cassettes/ata/create.yml} +12 -13
  38. data/spec/support/cassettes/ata/delete.yml +86 -0
  39. data/spec/support/cassettes/ata/get.yml +87 -0
  40. data/spec/support/cassettes/ata/list.yml +67 -0
  41. data/spec/support/{vcr_cassettes/resources/phax_code/get_id.yml → cassettes/ata/provisioning_urls.yml} +10 -13
  42. data/spec/support/cassettes/ata/reference.yml +87 -0
  43. data/spec/support/cassettes/ata/regenerate.yml +89 -0
  44. data/spec/support/cassettes/ata/remove_phone_number.yml +130 -0
  45. data/spec/support/cassettes/ata/update.yml +89 -0
  46. data/spec/support/{vcr_cassettes/resources/fax/create_for_cancel.yml → cassettes/fax/cancel.yml} +51 -11
  47. data/spec/support/{vcr_cassettes/resources/fax/create_for_reference.yml → cassettes/fax/create.yml} +11 -13
  48. data/spec/support/{vcr_cassettes/resources/fax/create.yml → cassettes/fax/delete.yml} +49 -11
  49. data/spec/support/{vcr_cassettes/resources/fax/create_for_delete.yml → cassettes/fax/delete_file.yml} +49 -11
  50. data/spec/support/cassettes/fax/file.yml +93 -0
  51. data/spec/support/{vcr_cassettes/resources/fax/create_for_download_file.yml → cassettes/fax/get.yml} +49 -11
  52. data/spec/support/{vcr_cassettes/resources → cassettes}/fax/list.yml +5 -7
  53. data/spec/support/cassettes/fax/reference.yml +88 -0
  54. data/spec/support/{vcr_cassettes/resources/fax/create_for_delete_file.yml → cassettes/fax/resend.yml} +51 -11
  55. data/spec/support/{vcr_cassettes/resources → cassettes}/fax/test_receive.yml +7 -9
  56. data/spec/support/{vcr_cassettes/resources → cassettes}/phax_code/create.yml +8 -10
  57. data/spec/support/{vcr_cassettes/resources → cassettes}/phax_code/create_png.yml +8 -10
  58. data/spec/support/cassettes/phax_code/get_by_id.yml +86 -0
  59. data/spec/support/{vcr_cassettes/resources/phax_code/get.yml → cassettes/phax_code/get_default.yml} +8 -10
  60. data/spec/support/{vcr_cassettes/resources/phax_code/get_png.yml → cassettes/phax_code/get_default_png.yml} +8 -10
  61. data/spec/support/cassettes/phax_code/get_png_by_id.yml +90 -0
  62. data/spec/support/{vcr_cassettes/resources → cassettes}/phone_number/create.yml +8 -10
  63. data/spec/support/{vcr_cassettes/resources → cassettes}/phone_number/get.yml +10 -12
  64. data/spec/support/cassettes/phone_number/list.yml +72 -0
  65. data/spec/support/cassettes/phone_number/reference.yml +45 -0
  66. data/spec/support/cassettes/phone_number/release.yml +86 -0
  67. data/spec/support/cassettes/port_number/get.yml +88 -0
  68. data/spec/support/cassettes/port_number_note/list.yml +88 -0
  69. data/spec/support/cassettes/port_order/create.yml +48 -0
  70. data/spec/support/cassettes/port_order/get.yml +91 -0
  71. data/spec/support/cassettes/port_order/list.yml +52 -0
  72. data/spec/support/{vcr_cassettes/resources/public/area_codes → cassettes/public/area_code}/list.yml +15 -17
  73. data/spec/support/{vcr_cassettes/resources → cassettes}/public/country/list.yml +5 -7
  74. data/spec/support/vcr.rb +24 -6
  75. metadata +115 -41
  76. data/spec/support/credentials.rb +0 -7
  77. data/spec/support/vcr_cassettes/resources/fax/cancel.yml +0 -47
  78. data/spec/support/vcr_cassettes/resources/fax/create_for_get.yml +0 -50
  79. data/spec/support/vcr_cassettes/resources/fax/create_for_resend.yml +0 -50
  80. data/spec/support/vcr_cassettes/resources/fax/delete.yml +0 -45
  81. data/spec/support/vcr_cassettes/resources/fax/delete_file.yml +0 -45
  82. data/spec/support/vcr_cassettes/resources/fax/file.yml +0 -50
  83. data/spec/support/vcr_cassettes/resources/fax/get.yml +0 -45
  84. data/spec/support/vcr_cassettes/resources/fax/reference.yml +0 -45
  85. data/spec/support/vcr_cassettes/resources/phax_code/get_id_png.yml +0 -50
  86. data/spec/support/vcr_cassettes/resources/phone_number/list.yml +0 -60
  87. data/spec/support/vcr_cassettes/resources/phone_number/release.yml +0 -45
@@ -0,0 +1,207 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Ata do
4
+ describe Ata::Reference, vcr: 'ata/reference' do
5
+ let(:reference) { Ata::Reference.new ata_id }
6
+ let(:ata_id) { Ata.create(name: 'Test ATA').id }
7
+
8
+ describe '#get' do
9
+ it 'returns information about the referenced ATA' do
10
+ result = reference.get
11
+ expect(result).to be_a(Ata)
12
+ expect(result.name).to eq('Test ATA')
13
+ end
14
+ end
15
+ end
16
+
17
+ describe Ata::ProvisioningURLs, vcr: 'ata/provisioning_urls' do
18
+ let(:provisioning_urls) { Ata.provisioning_urls }
19
+
20
+ describe '#urls' do
21
+ it 'returns the full hash of provisioning URLS' do
22
+ expect(provisioning_urls.urls).to be_a(Hash)
23
+ expect(provisioning_urls.urls.keys).to match_array([
24
+ 'OBi',
25
+ 'Grandstream',
26
+ 'Netgen',
27
+ ])
28
+ end
29
+ end
30
+
31
+ describe '#grandstream' do
32
+ it 'returns the grandstream provisioning URL' do
33
+ url = provisioning_urls.urls['Grandstream']
34
+ expect(provisioning_urls.grandstream).to eq(url)
35
+ end
36
+ end
37
+
38
+ describe '#obi' do
39
+ it 'returns the obi provisioning URL' do
40
+ url = provisioning_urls.urls['OBi']
41
+ expect(provisioning_urls.obi).to eq(url)
42
+ end
43
+ end
44
+
45
+ describe '#netgen' do
46
+ it 'returns the netgen provisioning url' do
47
+ url = provisioning_urls.urls['Netgen']
48
+ expect(provisioning_urls.netgen).to eq(url)
49
+ end
50
+ end
51
+ end
52
+
53
+ describe 'getting a list of ATAs', vcr: 'ata/list' do
54
+ let(:action) { Ata.list params }
55
+ let(:params) { {} }
56
+
57
+ it 'sends the request to phaxio' do
58
+ expect_api_request :get, 'atas', params
59
+ action
60
+ end
61
+
62
+ it 'returns a collection of ATAs' do
63
+ result = action
64
+ expect(result).to be_a(Ata::Collection)
65
+ end
66
+ end
67
+
68
+ describe 'creating an ATA', vcr: 'ata/create' do
69
+ let(:action) { Ata.create params }
70
+ let(:params) { {name: 'Test ATA'} }
71
+
72
+ it 'sends the request to phaxio' do
73
+ expect_api_request :post, 'atas', name: 'Test ATA'
74
+ action
75
+ end
76
+
77
+ it 'returns information about the created ATA' do
78
+ result = action
79
+ expect(result).to be_a(Ata)
80
+ expect(result.name).to eq('Test ATA')
81
+ end
82
+ end
83
+
84
+ describe 'getting information about an ATA', vcr: 'ata/get' do
85
+ let(:action) { Ata.get ata_id, params }
86
+ let(:ata_id) { Ata.create(name: 'Test ATA').id }
87
+ let(:params) { {} }
88
+
89
+ it 'sends the request to phaxio' do
90
+ expect_api_request :get, "atas/#{ata_id}", params
91
+ action
92
+ end
93
+
94
+ it 'returns information about the ATA' do
95
+ result = action
96
+ expect(result).to be_a(Ata)
97
+ expect(result.name).to eq('Test ATA')
98
+ end
99
+ end
100
+
101
+ describe 'updating an ATA', vcr: 'ata/update' do
102
+ let(:action) { Ata.update ata_id, params }
103
+ let(:ata_id) { Ata.create(name: 'Test ATA').id }
104
+ let(:params) { {name: 'New Name'} }
105
+
106
+ it 'sends the request to phaxio' do
107
+ expect_api_request :patch, "atas/#{ata_id}", params
108
+ action
109
+ end
110
+
111
+ it 'returns information about the updated ATA' do
112
+ result = action
113
+ expect(result).to be_a(Ata)
114
+ expect(result.name).to eq('New Name')
115
+ end
116
+ end
117
+
118
+ describe 'regenerating ATA credentials', vcr: 'ata/regenerate' do
119
+ let(:action) { Ata.regenerate_credentials ata_id, params }
120
+ let(:ata) { Ata.create(name: 'Test ATA') }
121
+ let(:ata_id) { ata.id }
122
+ let(:params) { {} }
123
+
124
+ it 'sends the request to phaxio' do
125
+ expect_api_request :patch, "atas/#{ata_id}/regenerate_credentials", params
126
+ action
127
+ end
128
+
129
+ it 'returns information about the ATA' do
130
+ original_username = ata.username
131
+ # some actions don't return full creds; creation does, but run a sanity check just in case
132
+ expect(original_username).to_not be_nil
133
+ result = action
134
+ expect(result).to be_a(Ata)
135
+ expect(result.username).to_not eq(original_username)
136
+ expect(result.username).to_not be_nil
137
+ end
138
+ end
139
+
140
+ describe 'deleting an ATA', vcr: 'ata/delete' do
141
+ let(:action) { Ata.delete ata_id, params }
142
+ let(:ata_id) { Ata.create(name: 'Test ATA').id }
143
+ let(:params) { {} }
144
+
145
+ it 'sends the request to phaxio' do
146
+ expect_api_request :delete, "atas/#{ata_id}", params
147
+ action
148
+ end
149
+
150
+ it 'returns a reference to the deleted ATA' do
151
+ result = action
152
+ expect(result).to be_a(Ata::Reference)
153
+ expect(result.id).to eq(ata_id)
154
+ end
155
+ end
156
+
157
+ describe 'adding a phone number to an ATA', vcr: 'ata/add_phone_number' do
158
+ let(:action) { Ata.add_phone_number ata_id, TEST_NUMBER, params }
159
+ let(:ata_id) { Ata.create(name: 'Test ATA').id }
160
+ let(:params) { {} }
161
+
162
+ it 'sends the request to phaxio' do
163
+ expect_api_request :post, "atas/#{ata_id}/phone_numbers/#{TEST_NUMBER}", params
164
+ action
165
+ end
166
+
167
+ it 'returns a reference to the added phone number' do
168
+ result = action
169
+ expect(result).to be_a(PhoneNumber::Reference)
170
+ end
171
+ end
172
+
173
+ describe 'removing a phone number from an ATA', vcr: 'ata/remove_phone_number' do
174
+ let(:action) { Ata.remove_phone_number ata_id, TEST_NUMBER, params }
175
+ let(:ata_id) { Ata.create(name: 'Test ATA').id }
176
+ let(:params) { {} }
177
+
178
+ before do
179
+ Ata.add_phone_number ata_id, TEST_NUMBER
180
+ end
181
+
182
+ it 'sends the request to phaxio' do
183
+ expect_api_request :delete, "atas/#{ata_id}/phone_numbers/#{TEST_NUMBER}", params
184
+ action
185
+ end
186
+
187
+ it 'returns a reference to the removed phone number' do
188
+ result = action
189
+ expect(result).to be_a(PhoneNumber::Reference)
190
+ end
191
+ end
192
+
193
+ describe 'listing provisioning URLs for an ATA', vcr: 'ata/provisioning_urls' do
194
+ let(:action) { Ata.provisioning_urls params }
195
+ let(:params) { {} }
196
+
197
+ it 'sends the request to phaxio' do
198
+ expect_api_request :get, "atas/provisioning_urls", params
199
+ action
200
+ end
201
+
202
+ it 'returns a set of provisioning URLs' do
203
+ response = action
204
+ expect(response).to be_a(Ata::ProvisioningURLs)
205
+ end
206
+ end
207
+ end
@@ -2,19 +2,13 @@ require 'spec_helper'
2
2
 
3
3
  RSpec.describe Fax do
4
4
  let(:test_file) { File.open test_file_path }
5
- let(:test_file_path) { File.expand_path(File.join('..', '..', 'support', 'files', 'test.pdf'), __FILE__) }
6
- let(:test_recipient_number) { ENV.fetch('TEST_RECIPIENT_NUMBER', '+15558675309') }
5
+ let(:test_file_path) { File.join File.expand_path('..', __dir__), 'support', 'files', 'test.pdf' }
6
+ let(:test_recipient_number) { TEST_NUMBER }
7
7
 
8
- describe 'creating a fax' do
8
+ describe 'creating a fax', vcr: 'fax/create' do
9
9
  let(:action) { Fax.create params }
10
10
  let(:params) { {to: test_recipient_number, file: test_file} }
11
11
 
12
- around(:each) do |example|
13
- VCR.use_cassette('resources/fax/create') do
14
- example.run
15
- end
16
- end
17
-
18
12
  it 'makes the request to Phaxio' do
19
13
  expect_api_request :post, 'faxes', to: test_recipient_number, file: test_file
20
14
  action
@@ -27,21 +21,11 @@ RSpec.describe Fax do
27
21
  end
28
22
  end
29
23
 
30
- describe 'retrieving a fax' do
24
+ describe 'retrieving a fax', vcr: 'fax/get' do
31
25
  let(:action) { Fax.get fax_id, params }
32
- let!(:fax_id) {
33
- VCR.use_cassette('resources/fax/create_for_get') do
34
- Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
35
- end
36
- }
26
+ let(:fax_id) { Fax.create(to: test_recipient_number, file: test_file).id }
37
27
  let(:params) { {} }
38
28
 
39
- around(:each) do |example|
40
- VCR.use_cassette('resources/fax/get') do
41
- example.run
42
- end
43
- end
44
-
45
29
  it 'makes the request to Phaxio' do
46
30
  expect_api_request :get, "faxes/#{fax_id}", params
47
31
  action
@@ -54,20 +38,10 @@ RSpec.describe Fax do
54
38
  end
55
39
  end
56
40
 
57
- describe 'cancelling a fax' do
41
+ describe 'cancelling a fax', vcr: 'fax/cancel' do
58
42
  let(:action) { Fax.cancel fax_id, params }
43
+ let(:fax_id) { Fax.create(to: test_recipient_number, file: test_file).id }
59
44
  let(:params) { {} }
60
- let!(:fax_id) {
61
- VCR.use_cassette('resources/fax/create_for_cancel') do
62
- Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
63
- end
64
- }
65
-
66
- around(:each) do |example|
67
- VCR.use_cassette('resources/fax/cancel') do
68
- example.run
69
- end
70
- end
71
45
 
72
46
  it 'makes the request to Phaxio' do
73
47
  expect_api_request :post, "faxes/#{fax_id}/cancel", params
@@ -81,17 +55,11 @@ RSpec.describe Fax do
81
55
  end
82
56
  end
83
57
 
84
- describe 'listing faxes' do
58
+ describe 'listing faxes', vcr: 'fax/list' do
85
59
  let(:action) { Fax.list params }
86
60
  let(:params) { {created_before: time} }
87
61
  let(:time) { Time.new 2017, 10, 28, 0, 17, 0, 0 }
88
62
 
89
- around do |example|
90
- VCR.use_cassette('resources/fax/list') do
91
- example.run
92
- end
93
- end
94
-
95
63
  it 'sends the request to phaxio' do
96
64
  expect_api_request :get, 'faxes', params
97
65
  action
@@ -103,21 +71,15 @@ RSpec.describe Fax do
103
71
  end
104
72
  end
105
73
 
106
- describe 'resending a fax' do
74
+ describe 'resending a fax', vcr: 'fax/resend' do
107
75
  let(:action) { Fax.resend fax_id, params }
108
- let!(:fax_id) {
109
- VCR.use_cassette('resources/fax/create_for_resend') do
110
- Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
111
- end
76
+ let(:fax_id) {
77
+ fax_id = Fax.create(to: test_recipient_number, file: test_file).id
78
+ sleep 30 if VCR.current_cassette.recording?
79
+ fax_id
112
80
  }
113
81
  let(:params) { {} }
114
82
 
115
- around do |example|
116
- VCR.use_cassette('resources/fax/resend') do
117
- example.run
118
- end
119
- end
120
-
121
83
  it 'makes the request to Phaxio' do
122
84
  expect_api_request :post, "faxes/#{fax_id}/resend", params
123
85
  action
@@ -130,21 +92,15 @@ RSpec.describe Fax do
130
92
  end
131
93
  end
132
94
 
133
- describe 'deleting a fax' do
95
+ describe 'deleting a fax', vcr: 'fax/delete' do
134
96
  let(:action) { Fax.delete fax_id, params }
135
- let!(:fax_id) {
136
- VCR.use_cassette('resources/fax/create_for_delete') do
137
- Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
138
- end
97
+ let(:fax_id) {
98
+ fax_id = Fax.create(to: test_recipient_number, file: test_file).id
99
+ sleep 30 if VCR.current_cassette.recording?
100
+ fax_id
139
101
  }
140
102
  let(:params) { {} }
141
103
 
142
- around do |example|
143
- VCR.use_cassette('resources/fax/delete') do
144
- example.run
145
- end
146
- end
147
-
148
104
  it 'makes the request to Phaxio' do
149
105
  expect_api_request :delete, "faxes/#{fax_id}", params
150
106
  action
@@ -156,21 +112,15 @@ RSpec.describe Fax do
156
112
  end
157
113
  end
158
114
 
159
- describe 'deleting a fax file' do
115
+ describe 'deleting a fax file', vcr: 'fax/delete_file' do
160
116
  let(:action) { Fax.delete_file fax_id, params }
161
- let!(:fax_id) {
162
- VCR.use_cassette('resources/fax/create_for_delete_file') do
163
- Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
164
- end
117
+ let(:fax_id) {
118
+ fax_id = Fax.create(to: test_recipient_number, file: test_file).id
119
+ sleep 30 if VCR.current_cassette.recording?
120
+ fax_id
165
121
  }
166
122
  let(:params) { {} }
167
123
 
168
- around do |example|
169
- VCR.use_cassette('resources/fax/delete_file') do
170
- example.run
171
- end
172
- end
173
-
174
124
  it 'makes the request to Phaxio' do
175
125
  expect_api_request :delete, "faxes/#{fax_id}/file", params
176
126
  action
@@ -182,21 +132,15 @@ RSpec.describe Fax do
182
132
  end
183
133
  end
184
134
 
185
- describe 'downloading a fax file' do
135
+ describe 'downloading a fax file', vcr: 'fax/file' do
186
136
  let(:action) { Fax.file fax_id, params }
187
- let!(:fax_id) {
188
- VCR.use_cassette('resources/fax/create_for_download_file') do
189
- Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
190
- end
137
+ let(:fax_id) {
138
+ fax_id = Fax.create(to: test_recipient_number, file: test_file).id
139
+ sleep 30 if VCR.current_cassette.recording?
140
+ fax_id
191
141
  }
192
142
  let(:params) { {} }
193
143
 
194
- around do |example|
195
- VCR.use_cassette('resources/fax/file') do
196
- example.run
197
- end
198
- end
199
-
200
144
  it 'makes the request to phaxio' do
201
145
  expect_api_request :get, "faxes/#{fax_id}/file", params
202
146
  action
@@ -208,16 +152,10 @@ RSpec.describe Fax do
208
152
  end
209
153
  end
210
154
 
211
- describe 'receiving a test fax' do
155
+ describe 'receiving a test fax', vcr: 'fax/test_receive' do
212
156
  let(:action) { Fax.test_receive params }
213
157
  let(:params) { {file: test_file} }
214
158
 
215
- around do |example|
216
- VCR.use_cassette('resources/fax/test_receive') do
217
- example.run
218
- end
219
- end
220
-
221
159
  it 'makes the request to Phaxio' do
222
160
  expect_api_request :post, 'faxes', {file: test_file, direction: 'received'}
223
161
  action
@@ -229,20 +167,14 @@ RSpec.describe Fax do
229
167
  end
230
168
  end
231
169
 
232
- describe Fax::Reference do
233
- let!(:fax_id) {
234
- VCR.use_cassette('resources/fax/create_for_reference') do
235
- Phaxio::Fax.create(to: test_recipient_number, file: test_file).id
236
- end
237
- }
170
+ describe Fax::Reference, vcr: 'fax/reference' do
171
+ let(:fax_id) { Fax.create(to: test_recipient_number, file: test_file).id }
238
172
 
239
173
  it 'gets the full fax' do
240
- VCR.use_cassette('resources/fax/reference') do
241
- reference = Fax::Reference.new fax_id
242
- result = reference.get
243
- expect(result).to be_a(Fax)
244
- expect(result.id).to eq(fax_id)
245
- end
174
+ reference = Fax::Reference.new fax_id
175
+ result = reference.get
176
+ expect(result).to be_a(Fax)
177
+ expect(result.id).to eq(fax_id)
246
178
  end
247
179
  end
248
180
  end
@@ -5,13 +5,7 @@ RSpec.describe PhaxCode do
5
5
  let(:action) { PhaxCode.create params }
6
6
  let(:params) { {metadata: 'This is a test PhaxCode'} }
7
7
 
8
- context 'default type' do
9
- around do |example|
10
- VCR.use_cassette('resources/phax_code/create') do
11
- example.run
12
- end
13
- end
14
-
8
+ context 'default type', vcr: 'phax_code/create' do
15
9
  it 'makes the request to phaxio' do
16
10
  expect_api_request :post, 'phax_codes', params
17
11
  action
@@ -23,15 +17,9 @@ RSpec.describe PhaxCode do
23
17
  end
24
18
  end
25
19
 
26
- context 'type is specified to be png' do
20
+ context 'type is specified to be png', vcr: 'phax_code/create_png' do
27
21
  let(:params) { {metadata: 'This is a test PhaxCode', type: 'png'} }
28
22
 
29
- around do |example|
30
- VCR.use_cassette('resources/phax_code/create_png') do
31
- example.run
32
- end
33
- end
34
-
35
23
  it 'returns a png if type is specified to be png' do
36
24
  result = action
37
25
  expect(result).to be_a(File)
@@ -43,13 +31,7 @@ RSpec.describe PhaxCode do
43
31
  let(:action) { PhaxCode.get params }
44
32
  let(:params) { {} }
45
33
 
46
- context 'default' do
47
- around do |example|
48
- VCR.use_cassette('resources/phax_code/get') do
49
- example.run
50
- end
51
- end
52
-
34
+ context 'default', vcr: 'phax_code/get_default' do
53
35
  it 'makes the request to Phaxio' do
54
36
  expect_api_request :get, 'phax_code', params
55
37
  action
@@ -63,29 +45,18 @@ RSpec.describe PhaxCode do
63
45
  end
64
46
  end
65
47
 
66
- context 'getting the default phax code with png type specified' do
48
+ context 'getting the default phax code with png type specified', vcr: 'phax_code/get_default_png' do
67
49
  let(:params) { {type: 'png'} }
68
50
 
69
- around do |example|
70
- VCR.use_cassette('resources/phax_code/get_png') do
71
- example.run
72
- end
73
- end
74
-
75
51
  it 'returns a file' do
76
52
  result = action
77
53
  expect(result).to be_a(File)
78
54
  end
79
55
  end
80
56
 
81
- context 'getting a particular phax code with no type specified' do
82
- let(:params) { {identifier: '-Y3jxX'} }
83
-
84
- around do |example|
85
- VCR.use_cassette('resources/phax_code/get_id') do
86
- example.run
87
- end
88
- end
57
+ context 'getting a particular phax code with no type specified', vcr: 'phax_code/get_by_id' do
58
+ let(:params) { {identifier: phax_code_identifier} }
59
+ let(:phax_code_identifier) { PhaxCode.create(metadata: 'Test Phax Code').identifier }
89
60
 
90
61
  it 'returns a PhaxCode instance' do
91
62
  result = action
@@ -93,14 +64,9 @@ RSpec.describe PhaxCode do
93
64
  end
94
65
  end
95
66
 
96
- context 'getting a particular phax code with png type specified' do
97
- let(:params) { {identifier: '-Y3jxX', type: 'png'} }
98
-
99
- around do |example|
100
- VCR.use_cassette('resources/phax_code/get_id_png') do
101
- example.run
102
- end
103
- end
67
+ context 'getting a particular phax code with png type specified', vcr: 'phax_code/get_png_by_id' do
68
+ let(:params) { {identifier: phax_code_identifier, type: 'png'} }
69
+ let(:phax_code_identifier) { PhaxCode.create(metadata: 'Test Phax Code').identifier }
104
70
 
105
71
  it 'returns a file' do
106
72
  result = action
@@ -1,15 +1,20 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  RSpec.describe PhoneNumber do
4
- describe 'provisioning a number' do
5
- let(:action) { PhoneNumber.create params }
6
- let(:params) { {country_code: 1, area_code: 225} }
7
-
8
- around do |example|
9
- VCR.use_cassette('resources/phone_number/create') do
10
- example.run
4
+ describe PhoneNumber::Reference, vcr: 'phone_number/reference' do
5
+ describe '#get' do
6
+ it 'returns information about the referenced number' do
7
+ reference = PhoneNumber::Reference.new TEST_NUMBER
8
+ result = reference.get
9
+ expect(result).to be_a(PhoneNumber)
10
+ expect(result.phone_number).to eq(TEST_NUMBER)
11
11
  end
12
12
  end
13
+ end
14
+
15
+ describe 'provisioning a number', vcr: 'phone_number/create' do
16
+ let(:action) { PhoneNumber.create params }
17
+ let(:params) { {country_code: 1, area_code: 225} }
13
18
 
14
19
  it 'makes the request to Phaxio' do
15
20
  expect_api_request :post, 'phone_numbers', params
@@ -22,17 +27,11 @@ RSpec.describe PhoneNumber do
22
27
  end
23
28
  end
24
29
 
25
- describe 'getting information about a number' do
30
+ describe 'getting information about a number', vcr: 'phone_number/get' do
26
31
  let(:action) { PhoneNumber.get phone_number, params }
27
- let(:phone_number) { '12258675309' }
32
+ let(:phone_number) { TEST_NUMBER }
28
33
  let(:params) { {} }
29
34
 
30
- around do |example|
31
- VCR.use_cassette('resources/phone_number/get') do
32
- example.run
33
- end
34
- end
35
-
36
35
  it 'makes the request to Phaxio' do
37
36
  expect_api_request :get, "phone_numbers/#{phone_number}"
38
37
  action
@@ -44,16 +43,10 @@ RSpec.describe PhoneNumber do
44
43
  end
45
44
  end
46
45
 
47
- describe 'listing numbers' do
46
+ describe 'listing numbers', vcr: 'phone_number/list' do
48
47
  let(:action) { PhoneNumber.list params }
49
48
  let(:params) { {} }
50
49
 
51
- around do |example|
52
- VCR.use_cassette('resources/phone_number/list') do
53
- example.run
54
- end
55
- end
56
-
57
50
  it 'makes the request to Phaxio' do
58
51
  expect_api_request :get, 'phone_numbers', params
59
52
  action
@@ -65,17 +58,13 @@ RSpec.describe PhoneNumber do
65
58
  end
66
59
  end
67
60
 
68
- describe 'releasing a number' do
61
+ describe 'releasing a number', vcr: 'phone_number/release' do
69
62
  let(:action) { PhoneNumber.release phone_number, params }
70
- let(:phone_number) { '+12258675309' }
63
+ let(:phone_number) {
64
+ PhoneNumber.provision(country_code: 1, area_code: 225).phone_number
65
+ }
71
66
  let(:params) { {} }
72
67
 
73
- around do |example|
74
- VCR.use_cassette('resources/phone_number/release') do
75
- example.run
76
- end
77
- end
78
-
79
68
  it 'sends the request to Phaxio' do
80
69
  expect_api_request :delete, "phone_numbers/#{phone_number}", params
81
70
  action
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe PortNumberNote do
4
+ describe 'getting a list of notes', vcr: 'port_number_note/list' do
5
+ let(:action) { PortNumberNote.list port_number_id, params }
6
+ let(:port_number_id) {
7
+ PortOrder.create(
8
+ port_numbers: [TEST_NUMBER],
9
+ contact_number: TEST_NUMBER,
10
+ contact_email: 'julien@phaxio.com',
11
+ account_identifier: '1234',
12
+ name_on_account: 'THIS IS A TEST',
13
+ provider_name: 'DO NOT PORT --Julien',
14
+ has_bill: true,
15
+ legal_agreement: true,
16
+ port_type: 'residential',
17
+ esig: 'NOT A VALID SIGNATURE'
18
+ ).port_numbers[0].id
19
+ }
20
+
21
+ let(:params) { {} }
22
+
23
+ it 'makes the request to phaxio' do
24
+ expect_api_request :get, "port_numbers/#{port_number_id}/notes", params
25
+ action
26
+ end
27
+
28
+ it 'returns a collection of port number note objects' do
29
+ result = action
30
+ expect(result).to be_a(Phaxio::Resource::Collection)
31
+ end
32
+ end
33
+ end