telnyx 2.9.0 → 3.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 (207) hide show
  1. checksums.yaml +4 -4
  2. data/.github/scripts/before_install.sh +10 -9
  3. data/.github/workflows/publish-gem-on-release.yml +6 -6
  4. data/.github/workflows/ruby.yml +4 -4
  5. data/.rubocop.yml +1 -1
  6. data/Gemfile +7 -8
  7. data/README.md +1 -1
  8. data/Spec3.json +77839 -0
  9. data/VERSION +1 -1
  10. data/lib/telnyx/access_control_ip.rb +13 -0
  11. data/lib/telnyx/access_ip_range.rb +12 -0
  12. data/lib/telnyx/address.rb +9 -0
  13. data/lib/telnyx/api_operations/delete.rb +1 -1
  14. data/lib/telnyx/api_resource.rb +4 -1
  15. data/lib/telnyx/authentication_providers.rb +12 -0
  16. data/lib/telnyx/available_phone_number.rb +5 -0
  17. data/lib/telnyx/balance.rb +12 -0
  18. data/lib/telnyx/batch_mdr_report.rb +15 -0
  19. data/lib/telnyx/brand.rb +13 -0
  20. data/lib/telnyx/bulk_creation.rb +21 -0
  21. data/lib/telnyx/bulk_credential.rb +16 -0
  22. data/lib/telnyx/bulk_sim_card_action.rb +9 -0
  23. data/lib/telnyx/business_identitie.rb +9 -0
  24. data/lib/telnyx/call.rb +2 -2
  25. data/lib/telnyx/call_event.rb +9 -0
  26. data/lib/telnyx/call_recording.rb +12 -0
  27. data/lib/telnyx/campaign.rb +34 -0
  28. data/lib/telnyx/cdr_usage_report.rb +13 -0
  29. data/lib/telnyx/channel_zone.rb +10 -0
  30. data/lib/telnyx/comment.rb +20 -0
  31. data/lib/telnyx/conference.rb +1 -1
  32. data/lib/telnyx/connection.rb +5 -0
  33. data/lib/telnyx/csv_download.rb +10 -0
  34. data/lib/telnyx/custom_storage_credential.rb +7 -0
  35. data/lib/telnyx/detail_record.rb +9 -0
  36. data/lib/telnyx/dialogflow_connection.rb +20 -0
  37. data/lib/telnyx/document.rb +20 -0
  38. data/lib/telnyx/dynamic_emergency_address.rb +12 -0
  39. data/lib/telnyx/dynamic_emergency_endpoint.rb +12 -0
  40. data/lib/telnyx/embedding.rb +14 -0
  41. data/lib/telnyx/enum.rb +15 -0
  42. data/lib/telnyx/fax.rb +14 -0
  43. data/lib/telnyx/global_ip.rb +10 -0
  44. data/lib/telnyx/global_ip_allowed_port.rb +8 -0
  45. data/lib/telnyx/global_ip_assignment.rb +12 -0
  46. data/lib/telnyx/global_ip_assignment_health.rb +8 -0
  47. data/lib/telnyx/global_ip_assignment_usage.rb +8 -0
  48. data/lib/telnyx/global_ip_latency.rb +8 -0
  49. data/lib/telnyx/global_ip_protocol.rb +8 -0
  50. data/lib/telnyx/global_ip_usage.rb +8 -0
  51. data/lib/telnyx/inference.rb +9 -0
  52. data/lib/telnyx/inventory_coverage.rb +9 -0
  53. data/lib/telnyx/ledger_billing_group_report.rb +9 -0
  54. data/lib/telnyx/managed_account.rb +32 -0
  55. data/lib/telnyx/mdr_usage_report.rb +21 -0
  56. data/lib/telnyx/media.rb +21 -0
  57. data/lib/telnyx/message_number_pool.rb +9 -0
  58. data/lib/telnyx/messaging_hosted_number_order.rb +21 -0
  59. data/lib/telnyx/messaging_profile.rb +14 -2
  60. data/lib/telnyx/messaging_tollfree_verification.rb +12 -0
  61. data/lib/telnyx/messaging_url_domain.rb +9 -0
  62. data/lib/telnyx/mobile_operator_network.rb +9 -0
  63. data/lib/telnyx/mobile_push_credential.rb +11 -0
  64. data/lib/telnyx/network.rb +19 -0
  65. data/lib/telnyx/notification_channel.rb +12 -0
  66. data/lib/telnyx/notification_event.rb +9 -0
  67. data/lib/telnyx/notification_event_condition.rb +9 -0
  68. data/lib/telnyx/notification_profile.rb +12 -0
  69. data/lib/telnyx/notification_setting.rb +12 -0
  70. data/lib/telnyx/number_block_order.rb +10 -0
  71. data/lib/telnyx/ota_update.rb +9 -0
  72. data/lib/telnyx/phone_number.rb +6 -0
  73. data/lib/telnyx/phone_number_block_job.rb +14 -0
  74. data/lib/telnyx/phone_number_campaigns.rb +12 -0
  75. data/lib/telnyx/portability_check.rb +9 -0
  76. data/lib/telnyx/porting_order.rb +39 -1
  77. data/lib/telnyx/portout.rb +9 -0
  78. data/lib/telnyx/private_wireless_gateway.rb +11 -0
  79. data/lib/telnyx/public_internet_gateway.rb +11 -0
  80. data/lib/telnyx/region.rb +9 -0
  81. data/lib/telnyx/requirement.rb +8 -0
  82. data/lib/telnyx/requirement_type.rb +8 -0
  83. data/lib/telnyx/room.rb +20 -0
  84. data/lib/telnyx/room_composition.rb +11 -0
  85. data/lib/telnyx/room_participant.rb +9 -0
  86. data/lib/telnyx/room_recording.rb +10 -0
  87. data/lib/telnyx/room_session.rb +18 -0
  88. data/lib/telnyx/short_code.rb +10 -0
  89. data/lib/telnyx/sim_card.rb +28 -2
  90. data/lib/telnyx/sim_card_action.rb +12 -0
  91. data/lib/telnyx/sim_card_data_usage_notification.rb +12 -0
  92. data/lib/telnyx/sim_card_group.rb +21 -0
  93. data/lib/telnyx/sim_card_group_action.rb +8 -0
  94. data/lib/telnyx/sim_card_order.rb +10 -0
  95. data/lib/telnyx/summary.rb +9 -0
  96. data/lib/telnyx/telephony_credential.rb +22 -0
  97. data/lib/telnyx/telnyx_client.rb +1 -2
  98. data/lib/telnyx/texml_application.rb +9 -0
  99. data/lib/telnyx/verification.rb +3 -3
  100. data/lib/telnyx/verified_calls_display_profile.rb +17 -0
  101. data/lib/telnyx/verify_profile.rb +1 -0
  102. data/lib/telnyx/version.rb +1 -1
  103. data/lib/telnyx/virtual_cross_connect.rb +20 -0
  104. data/lib/telnyx/virtual_cross_connect_region.rb +9 -0
  105. data/lib/telnyx/wdr.rb +13 -0
  106. data/lib/telnyx/webhook_deliverie.rb +9 -0
  107. data/lib/telnyx/wireguard_interface.rb +11 -0
  108. data/lib/telnyx/wireguard_peer.rb +21 -0
  109. data/lib/telnyx.rb +67 -3
  110. data/server.js +31 -0
  111. data/telnyx.gemspec +4 -2
  112. data/test/telnyx/api_resource_test.rb +25 -21
  113. data/test/telnyx/available_phone_number_test.rb +6 -0
  114. data/test/telnyx/batch_mdr_report_test.rb +35 -0
  115. data/test/telnyx/billing_group_test.rb +12 -8
  116. data/test/telnyx/bulk_credential_test.rb +20 -0
  117. data/test/telnyx/bulk_sim_card_action_test.rb +22 -0
  118. data/test/telnyx/business_identitie_test.rb +25 -0
  119. data/test/telnyx/call_control_application_test.rb +13 -9
  120. data/test/telnyx/call_control_test.rb +24 -23
  121. data/test/telnyx/call_event_test.rb +14 -0
  122. data/test/telnyx/call_recording_test.rb +28 -0
  123. data/test/telnyx/call_test.rb +29 -0
  124. data/test/telnyx/campaign_test.rb +32 -0
  125. data/test/telnyx/cdr_usage_report_test.rb +15 -0
  126. data/test/telnyx/channel_zone_test.rb +14 -0
  127. data/test/telnyx/comment_test.rb +32 -0
  128. data/test/telnyx/conference_test.rb +27 -16
  129. data/test/telnyx/connection_test.rb +8 -1
  130. data/test/telnyx/credential_connection_test.rb +5 -4
  131. data/test/telnyx/csv_download_test.rb +33 -0
  132. data/test/telnyx/custom_storage_credential_test.rb +17 -0
  133. data/test/telnyx/detail_record_test.rb +15 -0
  134. data/test/telnyx/dialogflow_connection_test.rb +32 -0
  135. data/test/telnyx/embedding_test.rb +27 -0
  136. data/test/telnyx/enum_test.rb +15 -0
  137. data/test/telnyx/fax_application_test.rb +5 -4
  138. data/test/telnyx/fax_test.rb +13 -4
  139. data/test/telnyx/fqdn_connection_test.rb +5 -5
  140. data/test/telnyx/fqdn_test.rb +12 -7
  141. data/test/telnyx/global_ip_allowed_port_test.rb +14 -0
  142. data/test/telnyx/global_ip_assignment_health_test.rb +14 -0
  143. data/test/telnyx/global_ip_assignment_test.rb +44 -0
  144. data/test/telnyx/global_ip_latency_test.rb +14 -0
  145. data/test/telnyx/global_ip_protocol_test.rb +14 -0
  146. data/test/telnyx/global_ip_test.rb +35 -0
  147. data/test/telnyx/global_ip_usage_test.rb +14 -0
  148. data/test/telnyx/inference_test.rb +12 -0
  149. data/test/telnyx/ip_connection_test.rb +12 -8
  150. data/test/telnyx/ip_test.rb +12 -8
  151. data/test/telnyx/ledger_billing_group_report_test.rb +18 -0
  152. data/test/telnyx/managed_account_test.rb +42 -0
  153. data/test/telnyx/mdr_usage_report_test.rb +47 -0
  154. data/test/telnyx/message_number_pool_test.rb +18 -0
  155. data/test/telnyx/message_test.rb +2 -2
  156. data/test/telnyx/messaging_phone_number_test.rb +2 -1
  157. data/test/telnyx/messaging_profile_test.rb +26 -14
  158. data/test/telnyx/messaging_tollfree_verification_test.rb +71 -0
  159. data/test/telnyx/messaging_url_domain_test.rb +14 -0
  160. data/test/telnyx/mobile_operator_network_test.rb +15 -0
  161. data/test/telnyx/mobile_push_credential_test.rb +33 -0
  162. data/test/telnyx/network_test.rb +49 -0
  163. data/test/telnyx/number_block_order_test.rb +28 -0
  164. data/test/telnyx/number_order_document_test.rb +4 -3
  165. data/test/telnyx/number_order_test.rb +3 -2
  166. data/test/telnyx/number_reservation_test.rb +2 -2
  167. data/test/telnyx/ota_update_test.rb +20 -0
  168. data/test/telnyx/phone_number_block_job_test.rb +25 -0
  169. data/test/telnyx/phone_number_regulatory_requirement_test.rb +2 -1
  170. data/test/telnyx/phone_number_test.rb +8 -6
  171. data/test/telnyx/porting_order_test.rb +45 -10
  172. data/test/telnyx/private_wireless_gateway_test.rb +32 -0
  173. data/test/telnyx/public_internet_gateway_test.rb +32 -0
  174. data/test/telnyx/queue_test.rb +9 -6
  175. data/test/telnyx/region_test.rb +14 -0
  176. data/test/telnyx/regulatory_requirement_test.rb +6 -3
  177. data/test/telnyx/requirement_test.rb +22 -0
  178. data/test/telnyx/requirement_type_test.rb +22 -0
  179. data/test/telnyx/room_composition_test.rb +32 -0
  180. data/test/telnyx/room_participant_test.rb +19 -0
  181. data/test/telnyx/room_recording_test.rb +27 -0
  182. data/test/telnyx/room_session_test.rb +47 -0
  183. data/test/telnyx/room_test.rb +52 -0
  184. data/test/telnyx/short_code_test.rb +30 -0
  185. data/test/telnyx/sim_card_data_usage_notification_test.rb +42 -0
  186. data/test/telnyx/sim_card_group_action_test.rb +22 -0
  187. data/test/telnyx/sim_card_group_test.rb +59 -0
  188. data/test/telnyx/sim_card_order_test.rb +27 -0
  189. data/test/telnyx/sim_card_test.rb +75 -10
  190. data/test/telnyx/summary_test.rb +12 -0
  191. data/test/telnyx/telephony_credential_test.rb +35 -6
  192. data/test/telnyx/texml_application_test.rb +25 -0
  193. data/test/telnyx/verification_test.rb +4 -4
  194. data/test/telnyx/verified_calls_display_profile_test.rb +33 -0
  195. data/test/telnyx/verify_profile_test.rb +16 -7
  196. data/test/telnyx/virtual_cross_connect_region_test.rb +22 -0
  197. data/test/telnyx/virtual_cross_connect_test.rb +49 -0
  198. data/test/telnyx/wdr_test.rb +14 -0
  199. data/test/telnyx/webhook_deliverie_test.rb +23 -0
  200. data/test/telnyx/wireguard_interface_test.rb +32 -0
  201. data/test/telnyx/wireguard_peer_test.rb +48 -0
  202. data/test/test_helper.rb +10 -26
  203. metadata +235 -37
  204. data/examples/2 factor authentication/Gemfile +0 -7
  205. data/examples/2 factor authentication/main.rb +0 -67
  206. data/examples/2 factor authentication/readme.md +0 -5
  207. data/test/telnyx_mock.rb +0 -78
@@ -8,7 +8,7 @@ module Telnyx
8
8
  telephony_credentials = TelephonyCredential.list
9
9
  assert_requested :get, "#{Telnyx.api_base}/v2/telephony_credentials"
10
10
  assert_kind_of ListObject, telephony_credentials
11
- assert_kind_of TelephonyCredential, telephony_credentials.first
11
+ assert_kind_of TelnyxObject, telephony_credentials.first
12
12
  end
13
13
 
14
14
  should "create telephony credential" do
@@ -22,22 +22,51 @@ module Telnyx
22
22
  should "retrieve telephony credential" do
23
23
  telephony_credential = TelephonyCredential.retrieve("id")
24
24
  assert_requested :get, "#{Telnyx.api_base}/v2/telephony_credentials/id"
25
- assert_kind_of TelephonyCredential, telephony_credential
25
+ assert_kind_of TelnyxObject, telephony_credential
26
26
  end
27
27
 
28
28
  should "delete telephony credential" do
29
29
  telephony_credential = TelephonyCredential.retrieve("id")
30
-
30
+ id = telephony_credential.id.gsub(/\s+/, "+").freeze
31
31
  telephony_credential.delete
32
- assert_requested :delete, "#{Telnyx.api_base}/v2/telephony_credentials/id"
32
+ assert_requested :delete, "#{Telnyx.api_base}/v2/telephony_credentials/#{id}"
33
33
  end
34
34
 
35
35
  should "update telephony credential" do
36
36
  telephony_credential = TelephonyCredential.retrieve("id")
37
-
37
+ id = telephony_credential.id.gsub(/\s+/, "+").freeze
38
38
  telephony_credential.expires_at = "2021-07-27T17:58:54Z"
39
39
  telephony_credential.save
40
- assert_requested :patch, "#{Telnyx.api_base}/v2/telephony_credentials/id"
40
+ assert_requested :patch, "#{Telnyx.api_base}/v2/telephony_credentials/#{id}"
41
+ end
42
+
43
+ context "actions" do
44
+ should "perform action activate" do
45
+ omit "ID req mismatch"
46
+ telephony_credential = TelephonyCredential.retrieve("id")
47
+ id = telephony_credential.id.gsub(/\s+/, "+").freeze
48
+ telephony_credential.activate
49
+ assert_requested :post, "#{Telnyx.api_base}/v2/telephony_credentials/#{id}/actions/activate"
50
+ end
51
+
52
+ should "deactivate" do
53
+ omit "ID req mismatch"
54
+ telephony_credential = TelephonyCredential.retrieve("id")
55
+ id = telephony_credential.id.gsub(/\s+/, "+").freeze
56
+ telephony_credential.deactivate
57
+ assert_requested :post, "#{Telnyx.api_base}/v2/telephony_credentials/#{id}/actions/deactivate"
58
+ end
59
+ should "tags" do
60
+ TelephonyCredential.tags
61
+ assert_requested :get, "#{Telnyx.api_base}/v2/telephony_credentials/tags"
62
+ end
41
63
  end
64
+ # Issue with response(RESPONSE SCHEMA: text/plain)
65
+ # should "create telephony credential token" do
66
+ # telephony_credential = TelephonyCredential.retrieve("id")
67
+ # id = telephony_credential.id.gsub(/\s+/, "+").freeze
68
+ # telephony_credential.token
69
+ # assert_requested :post, "#{Telnyx.api_base}/v2/telephony_credentials/#{id}/token"
70
+ # end
42
71
  end
43
72
  end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../test_helper"
4
+
5
+ module Telnyx
6
+ class TexmlApplicationTest < Test::Unit::TestCase
7
+ setup do
8
+ @id = "d25f43b3-aea3-6a5d-7a1b-d83e5c100cce"
9
+ end
10
+
11
+ should "be listable" do
12
+ applications = TexmlApplication.list
13
+ assert_requested :get, "#{Telnyx.api_base}/v2/texml_applications"
14
+ assert_kind_of ListObject, applications
15
+ assert applications.is_a?(ListObject)
16
+ assert applications[:data].is_a?(Array)
17
+ end
18
+
19
+ should "be retrieveable" do
20
+ connection = TexmlApplication.retrieve(@id)
21
+ assert_requested :get, "#{Telnyx.api_base}/v2/texml_applications/#{@id}"
22
+ assert connection.is_a?(TexmlApplication)
23
+ end
24
+ end
25
+ end
@@ -46,14 +46,14 @@ module Telnyx
46
46
  end
47
47
 
48
48
  should "retrieve verification" do
49
- verification = Verification.retrieve("id")
50
- assert_requested :get, "#{Telnyx.api_base}/v2/verifications/id"
49
+ id = "8b957e5d-0b58-a3e1-42ec-5c4519d08087"
50
+ verification = Verification.retrieve(id)
51
+ assert_requested :get, "#{Telnyx.api_base}/v2/verifications/#{id}"
51
52
  assert_kind_of Verification, verification
52
53
  end
53
54
 
54
55
  should "send verification code" do
55
- Verification.submit_code code: "12345", phone_number: "+13035551234"
56
-
56
+ Verification.submit_code({ code: "12345", phone_number: "+13035551234", verify_profile_id: "080e8523-3b29-439b-c08c-edd4b0ec719e" })
57
57
  assert_requested :post, "#{Telnyx.api_base}/v2/verifications/by_phone_number/+13035551234/actions/verify"
58
58
  end
59
59
  end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../test_helper"
4
+
5
+ module Telnyx
6
+ class VerifiedCallsDisplayProfilesTest < Test::Unit::TestCase
7
+ setup do
8
+ @profiles = VerifiedCallsDisplayProfile.list
9
+ @id = @profiles.first.id.freeze
10
+ end
11
+
12
+ should "be listable" do
13
+ assert_requested :get, "#{Telnyx.api_base}/v2/verified_calls_display_profiles"
14
+ assert_kind_of ListObject, @profiles
15
+ assert_kind_of TelnyxObject, @profiles.first
16
+ assert @profiles[:data].is_a?(Array)
17
+ end
18
+
19
+ should "be retrievable" do
20
+ profile = VerifiedCallsDisplayProfile.retrieve(@id)
21
+ assert_requested :get, "#{Telnyx.api_base}/v2/verified_calls_display_profiles/#{@id}"
22
+ assert profile.is_a?(Telnyx::VerifiedCallsDisplayProfile)
23
+ end
24
+
25
+ should "create verified_calls_display_profiles verification_request" do
26
+ omit "ID req mismatch"
27
+ profile = VerifiedCallsDisplayProfile.retrieve(@id)
28
+ id = profile.id.freeze
29
+ profile.verification_request
30
+ assert_requested :post, "#{Telnyx.api_base}/v2/verified_calls_display_profiles/#{id}/verification_request"
31
+ end
32
+ end
33
+ end
@@ -4,6 +4,10 @@ require_relative "../test_helper"
4
4
 
5
5
  module Telnyx
6
6
  class VerifyProfileTest < Test::Unit::TestCase
7
+ setup do
8
+ @id = "080e8523-3b29-439b-c08c-edd4b0ec719e"
9
+ @verify_profile = VerifyProfile.retrieve(@id)
10
+ end
7
11
  should "list verify_profiles" do
8
12
  verify_profile = VerifyProfile.list
9
13
  assert_requested :get, "#{Telnyx.api_base}/v2/verify_profiles"
@@ -17,17 +21,22 @@ module Telnyx
17
21
  end
18
22
 
19
23
  should "retrieve verify_profile" do
20
- verify_profile = VerifyProfile.retrieve("id")
21
- assert_requested :get, "#{Telnyx.api_base}/v2/verify_profiles/id"
22
- assert_kind_of VerifyProfile, verify_profile
24
+ assert_requested :get, "#{Telnyx.api_base}/v2/verify_profiles/#{@id}"
25
+ assert_kind_of VerifyProfile, @verify_profile
23
26
  end
24
27
 
25
28
  should "update verify_profile" do
26
- verify_profile = VerifyProfile.retrieve("id")
29
+ id = @verify_profile.id.freeze
30
+
31
+ @verify_profile.name = "123"
32
+ @verify_profile.save
33
+ assert_requested :patch, "#{Telnyx.api_base}/v2/verify_profiles/#{id}"
34
+ end
27
35
 
28
- verify_profile.name = "123"
29
- verify_profile.save
30
- assert_requested :patch, "#{Telnyx.api_base}/v2/verify_profiles/#{verify_profile.id}"
36
+ should "delete verify_profile" do
37
+ id = @verify_profile.id.freeze
38
+ @verify_profile.delete
39
+ assert_requested :delete, "#{Telnyx.api_base}/v2/verify_profiles/#{id}"
31
40
  end
32
41
  end
33
42
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../test_helper"
4
+
5
+ module Telnyx
6
+ class VirtualCrossConnectRegionTest < Test::Unit::TestCase
7
+ setup do
8
+ @id = "d25f43b3-aea3-6a5d-7a1b-d83e5c100cce"
9
+ end
10
+ should "retrieve virtual cross connect region" do
11
+ virtual_cross_connect_region = VirtualCrossConnectRegion.retrieve @id
12
+ assert_requested(:get, "#{Telnyx.api_base}/v2/virtual_cross_connect_regions/#{@id}")
13
+ assert_kind_of VirtualCrossConnectRegion, virtual_cross_connect_region
14
+ end
15
+
16
+ should "list virtual cross connect regions" do
17
+ virtual_cross_connect_regions = VirtualCrossConnectRegion.list
18
+ assert_requested(:get, "#{Telnyx.api_base}/v2/virtual_cross_connect_regions")
19
+ assert_kind_of Telnyx::ListObject, virtual_cross_connect_regions
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../test_helper"
4
+
5
+ module Telnyx
6
+ class VirtualCrossConnectTest < Test::Unit::TestCase
7
+ setup do
8
+ @id = "d25f43b3-aea3-6a5d-7a1b-d83e5c100cce"
9
+ @virtual_cross_connect = VirtualCrossConnect.retrieve @id
10
+ end
11
+ should "be retrievable" do
12
+ assert_requested(:get, "#{Telnyx.api_base}/v2/virtual_cross_connects/#{@id}")
13
+ assert_kind_of VirtualCrossConnect, @virtual_cross_connect
14
+ end
15
+
16
+ should "be listable" do
17
+ virtual_cross_connects = VirtualCrossConnect.list
18
+ assert_requested(:get, "#{Telnyx.api_base}/v2/virtual_cross_connects")
19
+ assert_kind_of Telnyx::ListObject, virtual_cross_connects
20
+ end
21
+
22
+ should "be updatable" do
23
+ @virtual_cross_connect.name = "new name"
24
+ id = @virtual_cross_connect.id.freeze
25
+ @virtual_cross_connect.save
26
+ assert_requested :patch, "#{Telnyx.api_base}/v2/virtual_cross_connects/#{id}"
27
+ end
28
+
29
+ should "be deletable" do
30
+ id = @virtual_cross_connect.id.freeze
31
+ @virtual_cross_connect.delete
32
+ assert_requested :delete, "#{Telnyx.api_base}/v2/virtual_cross_connects/#{id}"
33
+ end
34
+
35
+ should "be creatable" do
36
+ VirtualCrossConnect.create(name: "virtual_cross_connect", network_id: "d25f43b3-aea3-6a5d-7a1b-d83e5c100cc7", region_code: "labore", cloud_provider: "aws", cloud_region: "xyx", bgp_asn: -14_361_653.993494183, primary_cloud_account_id: "test")
37
+ assert_requested :post, "#{Telnyx.api_base}/v2/virtual_cross_connects"
38
+ end
39
+
40
+ context "actions" do
41
+ should "provision" do
42
+ omit "ID req mismatch"
43
+ id = @virtual_cross_connect.id.freeze
44
+ @virtual_cross_connect.provision
45
+ assert_requested :post, "#{Telnyx.api_base}/v2/virtual_cross_connects/#{id}/actions/provision"
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,14 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../test_helper"
4
+
5
+ module Telnyx
6
+ class WdrTest < Test::Unit::TestCase
7
+ should "list wdrs reports" do
8
+ wdrs = Wdr.list
9
+ assert_requested :get, "#{Telnyx.api_base}/v2/reports/wdrs"
10
+ assert_kind_of ListObject, wdrs
11
+ assert_kind_of TelnyxObject, wdrs.first
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,23 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../test_helper"
4
+
5
+ module Telnyx
6
+ class WebhookDeliverieTest < Test::Unit::TestCase
7
+ setup do
8
+ @webhook_deliveries = WebhookDeliverie.list
9
+ @id = @webhook_deliveries[:data].first[:webhook][:id].freeze
10
+ end
11
+
12
+ should "be listable" do
13
+ assert_requested :get, "#{Telnyx.api_base}/v2/webhook_deliveries"
14
+ assert @webhook_deliveries.is_a?(ListObject)
15
+ assert @webhook_deliveries[:data].is_a?(Array)
16
+ end
17
+
18
+ should "be retrievable" do
19
+ deliverie = WebhookDeliverie.retrieve(@id)
20
+ assert deliverie.is_a?(WebhookDeliverie)
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../test_helper"
4
+
5
+ module Telnyx
6
+ class WireguardInterfaceTest < Test::Unit::TestCase
7
+ setup do
8
+ @id = "ebb9daec-eb8a-8caa-0105-2b6f56f5a11c"
9
+ @wireguard_interface = Telnyx::WireguardInterface.retrieve(@id)
10
+ end
11
+ should "be creatable" do
12
+ Telnyx::WireguardInterface.create(network_id: "ce7d6838-b281-1b01-9a17-bc23c19ccad4", region_code: "foo")
13
+ assert_requested :post, "#{Telnyx.api_base}/v2/wireguard_interfaces"
14
+ end
15
+
16
+ should "be listable" do
17
+ wireguard_interfaces = WireguardInterface.list
18
+ assert_requested :get, "#{Telnyx.api_base}/v2/wireguard_interfaces"
19
+ assert wireguard_interfaces.data.is_a?(Array)
20
+ end
21
+
22
+ should "be retrievable" do
23
+ assert_requested :get, "#{Telnyx.api_base}/v2/wireguard_interfaces/#{@id}"
24
+ end
25
+
26
+ should "be deletable" do
27
+ id = @wireguard_interface.id.freeze
28
+ @wireguard_interface.delete
29
+ assert_requested :delete, "#{Telnyx.api_base}/v2/wireguard_interfaces/#{id}"
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,48 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "../test_helper"
4
+
5
+ module Telnyx
6
+ class WireguardPeerTest < Test::Unit::TestCase
7
+ setup do
8
+ @id = "d25f43b3-aea3-6a5d-7a1b-d83e5c100cce"
9
+ @wireguard_peer = WireguardPeer.retrieve @id
10
+ end
11
+ should "be retrievable" do
12
+ assert_requested(:get, "#{Telnyx.api_base}/v2/wireguard_peers/#{@id}")
13
+ assert_kind_of WireguardPeer, @wireguard_peer
14
+ end
15
+
16
+ should "be listable" do
17
+ omit "ID req that doesn't exist"
18
+ wireguard_peers = WireguardPeer.list
19
+ assert_requested(:get, "#{Telnyx.api_base}/v2/wireguard_peers")
20
+ assert_kind_of Telnyx::ListObject, wireguard_peers
21
+ end
22
+
23
+ should "be updatable" do
24
+ @wireguard_peer.wireguard_peer = "new code"
25
+ @wireguard_peer.messaging_profile_id = "d25f43b3-aea3-6a5d-7a1b-d83e5c100cc6"
26
+ @wireguard_peer.save
27
+ assert_requested(:get, "#{Telnyx.api_base}/v2/wireguard_peers/#{@id}")
28
+ end
29
+
30
+ should "be deletable" do
31
+ id = @wireguard_peer.id.freeze
32
+ @wireguard_peer.delete
33
+ assert_requested :delete, "#{Telnyx.api_base}/v2/wireguard_peers/#{id}"
34
+ end
35
+
36
+ should "be creatable" do
37
+ omit "ID req that doesn't exist"
38
+ WireguardPeer.create(wireguard_interface_id: "a25f43b3-aea3-6a5d-7a1b-d83e5c100cc6")
39
+ assert_requested :post, "#{Telnyx.api_base}/v2/wireguard_peers"
40
+ end
41
+
42
+ should "be listable allowIps" do
43
+ id = @wireguard_peer.id.freeze
44
+ @wireguard_peer.allowed_ips
45
+ assert_requested(:get, "#{Telnyx.api_base}/v2/wireguard_peers/#{id}/allowed_ips")
46
+ end
47
+ end
48
+ end
data/test/test_helper.rb CHANGED
@@ -14,36 +14,20 @@ require "webmock/test_unit"
14
14
  PROJECT_ROOT = ::File.expand_path("../../", __FILE__)
15
15
 
16
16
  require ::File.expand_path("../test_data", __FILE__)
17
- require ::File.expand_path("../telnyx_mock", __FILE__)
18
17
 
19
- # If changing this number, please also change it in `.travis.yml`.
20
- MOCK_MINIMUM_VERSION = "0.8.10".freeze
21
- MOCK_PORT = Telnyx::TelnyxMock.start
18
+ # Set up Proxy server configuration
19
+ PROXY_PORT = 12_111 # Port where your proxy server is running
20
+ PROXY_HOST = "localhost"
21
+ PROXY_BASE_URL = "http://#{PROXY_HOST}:#{PROXY_PORT}".freeze
22
22
 
23
23
  # Disable all real network connections except those that are outgoing to
24
- # telnyx-mock.
25
- WebMock.disable_net_connect!(allow: "localhost:#{MOCK_PORT}")
24
+ # the Proxy server.
25
+ WebMock.disable_net_connect!(allow: "#{PROXY_HOST}:#{PROXY_PORT}")
26
26
 
27
- # Try one initial test connection to telnyx-mock so that if there's a problem
28
- # we can print one error and fail fast so that it's more clear to the user how
29
- # they should fix the problem.
30
- begin
31
- conn = Faraday::Connection.new("http://localhost:#{MOCK_PORT}")
32
- resp = conn.get("/")
33
- version = resp.headers["Telnyx-Mock-Version"]
34
- if version != "master" &&
35
- Gem::Version.new(version) < Gem::Version.new(MOCK_MINIMUM_VERSION)
36
- abort("Your version of telnyx-mock (#{version}) is too old. The minimum " \
37
- "version to run this test suite is #{MOCK_MINIMUM_VERSION}. Please " \
38
- "see its repository for upgrade instructions.")
39
- end
40
- rescue Faraday::ConnectionFailed
41
- abort("Couldn't reach telnyx-mock at `localhost:#{MOCK_PORT}`. Is " \
42
- "it running? Please see README for setup instructions.")
43
- end
27
+ # You can remove the Telnyx mock setup as it's not needed for Prism
44
28
 
45
29
  Test::Unit.at_exit do
46
- Telnyx::TelnyxMock.stop
30
+ # Clean up actions for Proxy if required
47
31
  end
48
32
 
49
33
  module Test
@@ -53,8 +37,8 @@ module Test
53
37
  include Mocha
54
38
 
55
39
  setup do
56
- Telnyx.api_key = "KEYSUPERSECRET" # mock server expects this exact string
57
- Telnyx.api_base = "http://localhost:#{MOCK_PORT}"
40
+ Telnyx.api_key = "KEYSUPERSECRET" # Set your desired API key or the one expected by the proxy/Prism
41
+ Telnyx.api_base = PROXY_BASE_URL # Use Proxy's base URL
58
42
 
59
43
  # stub_connect
60
44
  end