telnyx 0.0.1

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 (69) hide show
  1. checksums.yaml +7 -0
  2. data/.gitattributes +4 -0
  3. data/.github/ISSUE_TEMPLATE.md +5 -0
  4. data/.gitignore +9 -0
  5. data/.rubocop.yml +32 -0
  6. data/.rubocop_todo.yml +50 -0
  7. data/.travis.yml +42 -0
  8. data/CHANGELOG.md +2 -0
  9. data/CONTRIBUTORS +0 -0
  10. data/Gemfile +40 -0
  11. data/Guardfile +8 -0
  12. data/LICENSE +22 -0
  13. data/README.md +173 -0
  14. data/Rakefile +28 -0
  15. data/VERSION +1 -0
  16. data/bin/telnyx-console +16 -0
  17. data/lib/telnyx.rb +151 -0
  18. data/lib/telnyx/api_operations/create.rb +12 -0
  19. data/lib/telnyx/api_operations/delete.rb +13 -0
  20. data/lib/telnyx/api_operations/list.rb +29 -0
  21. data/lib/telnyx/api_operations/nested_resource.rb +63 -0
  22. data/lib/telnyx/api_operations/request.rb +57 -0
  23. data/lib/telnyx/api_operations/save.rb +103 -0
  24. data/lib/telnyx/api_resource.rb +69 -0
  25. data/lib/telnyx/available_phone_number.rb +9 -0
  26. data/lib/telnyx/errors.rb +166 -0
  27. data/lib/telnyx/event.rb +9 -0
  28. data/lib/telnyx/list_object.rb +155 -0
  29. data/lib/telnyx/message.rb +9 -0
  30. data/lib/telnyx/messaging_phone_number.rb +10 -0
  31. data/lib/telnyx/messaging_profile.rb +32 -0
  32. data/lib/telnyx/messaging_sender_id.rb +12 -0
  33. data/lib/telnyx/messaging_short_code.rb +10 -0
  34. data/lib/telnyx/number_order.rb +11 -0
  35. data/lib/telnyx/number_reservation.rb +11 -0
  36. data/lib/telnyx/public_key.rb +7 -0
  37. data/lib/telnyx/singleton_api_resource.rb +24 -0
  38. data/lib/telnyx/telnyx_client.rb +545 -0
  39. data/lib/telnyx/telnyx_object.rb +521 -0
  40. data/lib/telnyx/telnyx_response.rb +50 -0
  41. data/lib/telnyx/util.rb +328 -0
  42. data/lib/telnyx/version.rb +5 -0
  43. data/lib/telnyx/webhook.rb +66 -0
  44. data/telnyx.gemspec +25 -0
  45. data/test/api_stub_helpers.rb +1 -0
  46. data/test/openapi/README.md +9 -0
  47. data/test/telnyx/api_operations_test.rb +85 -0
  48. data/test/telnyx/api_resource_test.rb +293 -0
  49. data/test/telnyx/available_phone_number_test.rb +14 -0
  50. data/test/telnyx/errors_test.rb +23 -0
  51. data/test/telnyx/list_object_test.rb +244 -0
  52. data/test/telnyx/message_test.rb +19 -0
  53. data/test/telnyx/messaging_phone_number_test.rb +33 -0
  54. data/test/telnyx/messaging_profile_test.rb +70 -0
  55. data/test/telnyx/messaging_sender_id_test.rb +46 -0
  56. data/test/telnyx/messaging_short_code_test.rb +33 -0
  57. data/test/telnyx/number_order_test.rb +39 -0
  58. data/test/telnyx/number_reservation_test.rb +12 -0
  59. data/test/telnyx/public_key_test.rb +13 -0
  60. data/test/telnyx/telnyx_client_test.rb +631 -0
  61. data/test/telnyx/telnyx_object_test.rb +497 -0
  62. data/test/telnyx/telnyx_response_test.rb +49 -0
  63. data/test/telnyx/util_test.rb +380 -0
  64. data/test/telnyx/webhook_test.rb +108 -0
  65. data/test/telnyx_mock.rb +78 -0
  66. data/test/telnyx_test.rb +40 -0
  67. data/test/test_data.rb +149 -0
  68. data/test/test_helper.rb +73 -0
  69. metadata +162 -0
@@ -0,0 +1,244 @@
1
+ # frozen_string_literal: true
2
+
3
+ require ::File.expand_path("../../test_helper", __FILE__)
4
+
5
+ module Telnyx
6
+ class ListObjectTest < Test::Unit::TestCase
7
+ should "provide .empty_list" do
8
+ list = Telnyx::ListObject.empty_list
9
+ assert list.empty?
10
+ end
11
+
12
+ should "provide #count via enumerable" do
13
+ list = Telnyx::ListObject.construct_from(data: [{ record_type: "messaging_profile" }])
14
+ assert_equal 1, list.count
15
+ end
16
+
17
+ should "provide #each" do
18
+ arr = [
19
+ { id: 1 },
20
+ { id: 2 },
21
+ { id: 3 },
22
+ ]
23
+ expected = Util.convert_to_telnyx_object(arr, {})
24
+ list = Telnyx::ListObject.construct_from(data: arr)
25
+ assert_equal expected, list.each.to_a
26
+ end
27
+
28
+ should "provide #auto_paging_each" do
29
+ arr = [
30
+ { id: 1 },
31
+ { id: 2 },
32
+ { id: 3 },
33
+ ]
34
+ expected = Util.convert_to_telnyx_object(arr, {})
35
+
36
+ list = TestListObject.construct_from(data: [{ id: 1 }],
37
+ meta: { page_number: 1, total_pages: 4 },
38
+ url: "/things")
39
+ stub_request(:get, "#{Telnyx.api_base}/things")
40
+ .with(query: { page: { number: 2, size: 20 } })
41
+ .to_return(body: JSON.generate(data: [{ id: 2 }], meta: { page_number: 2, total_pages: 4 }))
42
+ stub_request(:get, "#{Telnyx.api_base}/things")
43
+ .with(query: { page: { number: 3, size: 20 } })
44
+ .to_return(body: JSON.generate(data: [{ id: 3 }], meta: { page_number: 3, total_pages: 4 }))
45
+ stub_request(:get, "#{Telnyx.api_base}/things")
46
+ .with(query: { page: { number: 4, size: 20 } })
47
+ .to_return(body: JSON.generate(data: [], meta: { page_number: 4, total_pages: 4 }))
48
+
49
+ assert_equal expected, list.auto_paging_each.to_a
50
+ end
51
+
52
+ should "provide #auto_paging_each that responds to a block" do
53
+ arr = [
54
+ { id: 1 },
55
+ { id: 2 },
56
+ { id: 3 },
57
+ ]
58
+ expected = Util.convert_to_telnyx_object(arr, {})
59
+
60
+ list = TestListObject.construct_from(data: [{ id: 1 }],
61
+ meta: { page_number: 1, total_pages: 4 },
62
+ url: "/things")
63
+ stub_request(:get, "#{Telnyx.api_base}/things")
64
+ .with(query: { page: { number: 2, size: 20 } })
65
+ .to_return(body: JSON.generate(data: [{ id: 2 }], meta: { page_number: 2, total_pages: 4 }))
66
+ stub_request(:get, "#{Telnyx.api_base}/things")
67
+ .with(query: { page: { number: 3, size: 20 } })
68
+ .to_return(body: JSON.generate(data: [{ id: 3 }], meta: { page_number: 3, total_pages: 4 }))
69
+ stub_request(:get, "#{Telnyx.api_base}/things")
70
+ .with(query: { page: { number: 4, size: 20 } })
71
+ .to_return(body: JSON.generate(data: [], meta: { page_number: 4, total_pages: 4 }))
72
+
73
+ actual = []
74
+ list.auto_paging_each do |obj|
75
+ actual << obj
76
+ end
77
+
78
+ assert_equal expected, actual
79
+ end
80
+
81
+ should "provide #auto_paging_each_by_token" do
82
+ arr = [
83
+ { id: 1 },
84
+ { id: 2 },
85
+ { id: 3 },
86
+ ]
87
+ expected = Util.convert_to_telnyx_object(arr, {})
88
+
89
+ list = TestListObject.construct_from(data: [{ id: 1 }],
90
+ meta: { next_page_token: "123" },
91
+ url: "/things")
92
+ stub_request(:get, "#{Telnyx.api_base}/things")
93
+ .with(query: { page: { token: "123" } })
94
+ .to_return(body: JSON.generate(data: [{ id: 2 }], meta: { next_page_token: "456" }))
95
+ stub_request(:get, "#{Telnyx.api_base}/things")
96
+ .with(query: { page: { token: "456" } })
97
+ .to_return(body: JSON.generate(data: [{ id: 3 }], meta: { next_page_token: "789" }))
98
+ stub_request(:get, "#{Telnyx.api_base}/things")
99
+ .with(query: { page: { token: "789" } })
100
+ .to_return(body: JSON.generate(data: [], meta: { next_page_token: nil }))
101
+
102
+ assert_equal expected, list.auto_paging_each_by_token.to_a
103
+ end
104
+
105
+ should "provide #auto_paging_each_by_token that responds to a block" do
106
+ arr = [
107
+ { id: 1 },
108
+ { id: 2 },
109
+ { id: 3 },
110
+ ]
111
+ expected = Util.convert_to_telnyx_object(arr, {})
112
+
113
+ list = TestListObject.construct_from(data: [{ id: 1 }],
114
+ meta: { next_page_token: "123" },
115
+ url: "/things")
116
+ stub_request(:get, "#{Telnyx.api_base}/things")
117
+ .with(query: { page: { token: "123" } })
118
+ .to_return(body: JSON.generate(data: [{ id: 2 }], meta: { next_page_token: "456" }))
119
+ stub_request(:get, "#{Telnyx.api_base}/things")
120
+ .with(query: { page: { token: "456" } })
121
+ .to_return(body: JSON.generate(data: [{ id: 3 }], meta: { next_page_token: "789" }))
122
+ stub_request(:get, "#{Telnyx.api_base}/things")
123
+ .with(query: { page: { token: "789" } })
124
+ .to_return(body: JSON.generate(data: [], meta: { next_page_token: nil }))
125
+
126
+ actual = []
127
+ list.auto_paging_each_by_token do |obj|
128
+ actual << obj
129
+ end
130
+
131
+ assert_equal expected, actual
132
+ end
133
+
134
+ should "provide #empty?" do
135
+ list = Telnyx::ListObject.construct_from(data: [])
136
+ assert list.empty?
137
+ list = Telnyx::ListObject.construct_from(data: [{}])
138
+ refute list.empty?
139
+ end
140
+
141
+ #
142
+ # next_page
143
+ #
144
+
145
+ should "fetch a next page through #next_page" do
146
+ list = TestListObject.construct_from(data: [{ id: 1 }],
147
+ meta: { page_number: 1, total_pages: 2 },
148
+ url: "/things")
149
+ stub_request(:get, "#{Telnyx.api_base}/things")
150
+ .with(query: { page: { number: 2, size: 20 } })
151
+ .to_return(body: JSON.generate(data: [{ id: 2 }]))
152
+ next_list = list.next_page
153
+ refute next_list.empty?
154
+ end
155
+
156
+ should "fetch a next page through #next_page and respect filters" do
157
+ list = TestListObject.construct_from(data: [{ id: 1 }],
158
+ meta: { page_number: 1, total_pages: 2 },
159
+ url: "/things")
160
+ list.filters = { enabled: true }
161
+ stub_request(:get, "#{Telnyx.api_base}/things")
162
+ .with(query: { page: { number: 2, size: 20 }, enabled: true })
163
+ .to_return(body: JSON.generate(data: [{ id: 2 }], meta: { page_number: 2, total_pages: 2 }))
164
+ next_list = list.next_page
165
+ assert_equal({ enabled: true }, next_list.filters)
166
+ end
167
+
168
+ should "fetch an empty page through #next_page" do
169
+ list = TestListObject.construct_from(data: [{ id: 1 }],
170
+ meta: { page_number: 1, total_pages: 1 },
171
+ url: "/things")
172
+ next_list = list.next_page
173
+ assert_equal Telnyx::ListObject.empty_list, next_list
174
+ end
175
+
176
+ #
177
+ # next page by token
178
+ #
179
+
180
+ should "fetch a next page through #next_page_by_token" do
181
+ list = TestListObject.construct_from(data: [{ id: 1 }],
182
+ meta: { next_page_token: "123" },
183
+ url: "/things")
184
+ stub_request(:get, "#{Telnyx.api_base}/things")
185
+ .with(query: { page: { token: "123" } })
186
+ .to_return(body: JSON.generate(data: [{ id: 2 }]))
187
+ next_list = list.next_page_by_token
188
+ refute next_list.empty?
189
+ end
190
+
191
+ should "fetch a next page through #next_page_by_token and respect filters" do
192
+ list = TestListObject.construct_from(data: [{ id: 1 }],
193
+ meta: { next_page_token: "123" },
194
+ url: "/things")
195
+ list.filters = { enabled: true }
196
+ stub_request(:get, "#{Telnyx.api_base}/things")
197
+ .with(query: { page: { token: "123" }, enabled: true })
198
+ .to_return(body: JSON.generate(data: [{ id: 2 }], meta: { next_page_token: "456" }))
199
+ next_list = list.next_page_by_token
200
+ assert_equal({ enabled: true }, next_list.filters)
201
+ end
202
+
203
+ should "fetch an empty page through #next_page_by_token" do
204
+ list = TestListObject.construct_from(data: [{ id: 1 }],
205
+ meta: {},
206
+ url: "/things")
207
+ next_list = list.next_page_by_token
208
+ assert_equal Telnyx::ListObject.empty_list, next_list
209
+ end
210
+
211
+ #
212
+ # previous_page
213
+ #
214
+
215
+ should "fetch a next page through #previous_page" do
216
+ list = TestListObject.construct_from(data: [{ id: 2 }],
217
+ meta: { page_number: 2, total_pages: 3 },
218
+ url: "/things")
219
+ stub_request(:get, "#{Telnyx.api_base}/things")
220
+ .with(query: { page: { number: 1, size: 20 } })
221
+ .to_return(body: JSON.generate(data: [{ id: 1 }], meta: { page_number: 3, total_pages: 3 }))
222
+ next_list = list.previous_page
223
+ refute next_list.empty?
224
+ end
225
+
226
+ should "fetch a next page through #previous_page and respect filters" do
227
+ list = TestListObject.construct_from(data: [{ id: 2 }],
228
+ meta: { page_number: 2, total_pages: 2 },
229
+ url: "/things")
230
+ list.filters = { enabled: true }
231
+ stub_get = stub_request(:get, "#{Telnyx.api_base}/things")
232
+ .with(query: { enabled: true, page: { number: 1, size: 20 } })
233
+ .to_return(body: JSON.generate(data: [{ id: 1 }], meta: { page_number: 1, total_pages: 2 }))
234
+
235
+ next_list = list.previous_page
236
+ assert_requested(stub_get)
237
+ assert_equal({ enabled: true }, next_list.filters)
238
+ end
239
+ end
240
+ end
241
+
242
+ # A helper class with a URL that allows us to try out pagination.
243
+ class TestListObject < Telnyx::ListObject
244
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ require ::File.expand_path("../../test_helper", __FILE__)
4
+
5
+ module Telnyx
6
+ class MessageTest < Test::Unit::TestCase
7
+ should "be retrievable" do
8
+ message = Telnyx::Message.retrieve("123")
9
+ assert_requested :get, "#{Telnyx.api_base}/v2/messages/123"
10
+ assert message.is_a?(Telnyx::Message)
11
+ end
12
+
13
+ should "be creatable" do
14
+ message = Telnyx::Message.create(to: "+18005554000", from: "+18005559000", text: "Hello, World!")
15
+ assert_requested :post, "#{Telnyx.api_base}/v2/messages"
16
+ assert message.is_a?(Telnyx::Message)
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require ::File.expand_path("../../test_helper", __FILE__)
4
+
5
+ module Telnyx
6
+ class MessagingPhoneNumberTest < Test::Unit::TestCase
7
+ should "be listable" do
8
+ messaging_phone_numbers = Telnyx::MessagingPhoneNumber.list
9
+ assert_requested :get, "#{Telnyx.api_base}/v2/messaging_phone_numbers"
10
+ assert messaging_phone_numbers.data.is_a?(Array)
11
+ assert messaging_phone_numbers.first.is_a?(Telnyx::MessagingPhoneNumber)
12
+ end
13
+
14
+ should "be retrievable" do
15
+ messaging_phone_number = Telnyx::MessagingPhoneNumber.retrieve("123")
16
+ assert_requested :get, "#{Telnyx.api_base}/v2/messaging_phone_numbers/123"
17
+ assert messaging_phone_number.is_a?(Telnyx::MessagingPhoneNumber)
18
+ end
19
+
20
+ should "be saveable" do
21
+ messaging_phone_number = Telnyx::MessagingPhoneNumber.retrieve("123")
22
+ messaging_phone_number.messaging_profile_id = "value"
23
+ messaging_phone_number.save
24
+ assert_requested :patch, "#{Telnyx.api_base}/v2/messaging_phone_numbers/#{messaging_phone_number.id}"
25
+ end
26
+
27
+ should "be updateable" do
28
+ messaging_phone_number = Telnyx::MessagingPhoneNumber.update("123", messaging_profile_id: "456")
29
+ assert_requested :patch, "#{Telnyx.api_base}/v2/messaging_phone_numbers/123"
30
+ assert messaging_phone_number.is_a?(Telnyx::MessagingPhoneNumber)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,70 @@
1
+ # frozen_string_literal: true
2
+
3
+ require ::File.expand_path("../../test_helper", __FILE__)
4
+
5
+ module Telnyx
6
+ class MessagingProfileTest < Test::Unit::TestCase
7
+ should "be listable" do
8
+ messaging_profiles = Telnyx::MessagingProfile.list
9
+ assert_requested :get, "#{Telnyx.api_base}/v2/messaging_profiles"
10
+ assert messaging_profiles.data.is_a?(Array)
11
+ assert messaging_profiles.first.is_a?(Telnyx::MessagingProfile)
12
+ end
13
+
14
+ should "be retrievable" do
15
+ messaging_profile = Telnyx::MessagingProfile.retrieve("123")
16
+ assert_requested :get, "#{Telnyx.api_base}/v2/messaging_profiles/123"
17
+ assert messaging_profile.is_a?(Telnyx::MessagingProfile)
18
+ end
19
+
20
+ should "be creatable" do
21
+ messaging_profile = Telnyx::MessagingProfile.create(name: "Foo")
22
+ assert_requested :post, "#{Telnyx.api_base}/v2/messaging_profiles"
23
+ assert messaging_profile.is_a?(Telnyx::MessagingProfile)
24
+ end
25
+
26
+ should "be saveable" do
27
+ messaging_profile = Telnyx::MessagingProfile.retrieve("123")
28
+ messaging_profile.name = "value"
29
+ messaging_profile.save
30
+ assert_requested :patch, "#{Telnyx.api_base}/v2/messaging_profiles/#{messaging_profile.id}"
31
+ end
32
+
33
+ should "be updateable" do
34
+ messaging_profile = Telnyx::MessagingProfile.update("123", name: "foo")
35
+ assert_requested :patch, "#{Telnyx.api_base}/v2/messaging_profiles/123"
36
+ assert messaging_profile.is_a?(Telnyx::MessagingProfile)
37
+ end
38
+
39
+ should "be deletable" do
40
+ messaging_profile = Telnyx::MessagingProfile.retrieve("123")
41
+ messaging_profile = messaging_profile.delete
42
+ assert_requested :delete, "#{Telnyx.api_base}/v2/messaging_profiles/#{messaging_profile.id}"
43
+ assert messaging_profile.is_a?(Telnyx::MessagingProfile)
44
+ end
45
+
46
+ should "be able to list PhoneNumbers" do
47
+ messaging_profile = Telnyx::MessagingProfile.retrieve("123")
48
+ phone_numbers = messaging_profile.phone_numbers
49
+ assert_requested :get, "#{Telnyx.api_base}/v2/messaging_profiles/123/phone_numbers"
50
+ assert phone_numbers.data.is_a?(Array)
51
+ assert phone_numbers.data[0].is_a?(Telnyx::MessagingPhoneNumber)
52
+ end
53
+
54
+ should "be able to list SenderIds" do
55
+ messaging_profile = Telnyx::MessagingProfile.retrieve("123")
56
+ sender_ids = messaging_profile.sender_ids
57
+ assert_requested :get, "#{Telnyx.api_base}/v2/messaging_profiles/123/sender_ids"
58
+ assert sender_ids.data.is_a?(Array)
59
+ assert sender_ids.data[0].is_a?(Telnyx::MessagingSenderId)
60
+ end
61
+
62
+ should "be able to list ShortCodes" do
63
+ messaging_profile = Telnyx::MessagingProfile.retrieve("123")
64
+ short_codes = messaging_profile.short_codes
65
+ assert_requested :get, "#{Telnyx.api_base}/v2/messaging_profiles/123/short_codes"
66
+ assert short_codes.data.is_a?(Array)
67
+ assert short_codes.data[0].is_a?(Telnyx::MessagingShortCode)
68
+ end
69
+ end
70
+ end
@@ -0,0 +1,46 @@
1
+ # frozen_string_literal: true
2
+
3
+ require ::File.expand_path("../../test_helper", __FILE__)
4
+
5
+ module Telnyx
6
+ class MessagingSenderIdTest < Test::Unit::TestCase
7
+ should "be listable" do
8
+ messaging_sender_ids = Telnyx::MessagingSenderId.list
9
+ assert_requested :get, "#{Telnyx.api_base}/v2/messaging_sender_ids"
10
+ assert messaging_sender_ids.data.is_a?(Array)
11
+ assert messaging_sender_ids.first.is_a?(Telnyx::MessagingSenderId)
12
+ end
13
+
14
+ should "be retrievable" do
15
+ messaging_sender_id = Telnyx::MessagingSenderId.retrieve("123")
16
+ assert_requested :get, "#{Telnyx.api_base}/v2/messaging_sender_ids/123"
17
+ assert messaging_sender_id.is_a?(Telnyx::MessagingSenderId)
18
+ end
19
+
20
+ should "be creatable" do
21
+ messaging_sender_id = Telnyx::MessagingSenderId.create(sender_id: "TelnyxID")
22
+ assert_requested :post, "#{Telnyx.api_base}/v2/messaging_sender_ids"
23
+ assert messaging_sender_id.is_a?(Telnyx::MessagingSenderId)
24
+ end
25
+
26
+ should "be saveable" do
27
+ messaging_sender_id = Telnyx::MessagingSenderId.retrieve("123")
28
+ messaging_sender_id.messaging_profile_id = "value"
29
+ messaging_sender_id.save
30
+ assert_requested :patch, "#{Telnyx.api_base}/v2/messaging_sender_ids/#{messaging_sender_id.id}"
31
+ end
32
+
33
+ should "be updateable" do
34
+ messaging_sender_id = Telnyx::MessagingSenderId.update("123", messaging_profile_id: "foo")
35
+ assert_requested :patch, "#{Telnyx.api_base}/v2/messaging_sender_ids/123"
36
+ assert messaging_sender_id.is_a?(Telnyx::MessagingSenderId)
37
+ end
38
+
39
+ should "be deletable" do
40
+ messaging_sender_id = Telnyx::MessagingSenderId.retrieve("123")
41
+ messaging_sender_id = messaging_sender_id.delete
42
+ assert_requested :delete, "#{Telnyx.api_base}/v2/messaging_sender_ids/#{messaging_sender_id.id}"
43
+ assert messaging_sender_id.is_a?(Telnyx::MessagingSenderId)
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require ::File.expand_path("../../test_helper", __FILE__)
4
+
5
+ module Telnyx
6
+ class MessagingShortCodeTest < Test::Unit::TestCase
7
+ should "be listable" do
8
+ messaging_short_codes = Telnyx::MessagingShortCode.list
9
+ assert_requested :get, "#{Telnyx.api_base}/v2/messaging_short_codes"
10
+ assert messaging_short_codes.data.is_a?(Array)
11
+ assert messaging_short_codes.first.is_a?(Telnyx::MessagingShortCode)
12
+ end
13
+
14
+ should "be retrievable" do
15
+ messaging_short_code = Telnyx::MessagingShortCode.retrieve("123")
16
+ assert_requested :get, "#{Telnyx.api_base}/v2/messaging_short_codes/123"
17
+ assert messaging_short_code.is_a?(Telnyx::MessagingShortCode)
18
+ end
19
+
20
+ should "be saveable" do
21
+ messaging_short_code = Telnyx::MessagingShortCode.retrieve("123")
22
+ messaging_short_code.messaging_profile_id = "value"
23
+ messaging_short_code.save
24
+ assert_requested :patch, "#{Telnyx.api_base}/v2/messaging_short_codes/#{messaging_short_code.id}"
25
+ end
26
+
27
+ should "be updateable" do
28
+ messaging_short_code = Telnyx::MessagingShortCode.update("123", messaging_profile_id: "foo")
29
+ assert_requested :patch, "#{Telnyx.api_base}/v2/messaging_short_codes/123"
30
+ assert messaging_short_code.is_a?(Telnyx::MessagingShortCode)
31
+ end
32
+ end
33
+ end