seven_api 0.5.0 → 0.6.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 (112) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -6
  3. data/.idea/inspectionProfiles/Project_Default.xml +5 -5
  4. data/.idea/ruby-client.iml +51 -4
  5. data/Gemfile +2 -2
  6. data/LICENSE +21 -21
  7. data/README.md +3 -3
  8. data/Rakefile +5 -5
  9. data/doc/{Sms77 → SevenApi}/Client.html +229 -229
  10. data/doc/{Sms77 → SevenApi}/Contacts/Action.html +130 -130
  11. data/doc/{Sms77 → SevenApi}/Contacts.html +125 -125
  12. data/doc/{Sms77 → SevenApi}/Endpoint.html +186 -186
  13. data/doc/{Sms77 → SevenApi}/Hooks/Action.html +130 -130
  14. data/doc/{Sms77 → SevenApi}/Hooks/EventType.html +145 -145
  15. data/doc/{Sms77 → SevenApi}/Hooks/RequestMethod.html +130 -130
  16. data/doc/{Sms77 → SevenApi}/Hooks/Validator.html +597 -597
  17. data/doc/{Sms77 → SevenApi}/Hooks.html +125 -125
  18. data/doc/{Sms77 → SevenApi}/Journal/Type.html +135 -135
  19. data/doc/{Sms77 → SevenApi}/Journal/Validator.html +393 -393
  20. data/doc/{Sms77 → SevenApi}/Journal.html +125 -125
  21. data/doc/{Sms77 → SevenApi}/Lookup/Type.html +135 -135
  22. data/doc/{Sms77 → SevenApi}/Lookup.html +125 -125
  23. data/doc/{Sms77 → SevenApi}/Resource.html +869 -869
  24. data/doc/{Sms77 → SevenApi}/Resources/Analytics.html +262 -262
  25. data/doc/{Sms77 → SevenApi}/Resources/Balance.html +245 -245
  26. data/doc/{Sms77 → SevenApi}/Resources/Contacts.html +448 -448
  27. data/doc/{Sms77 → SevenApi}/Resources/Hooks.html +456 -456
  28. data/doc/{Sms77 → SevenApi}/Resources/Journal.html +260 -260
  29. data/doc/{Sms77 → SevenApi}/Resources/Lookup.html +539 -539
  30. data/doc/{Sms77 → SevenApi}/Resources/Pricing.html +262 -262
  31. data/doc/{Sms77 → SevenApi}/Resources/Sms.html +260 -260
  32. data/doc/{Sms77 → SevenApi}/Resources/Status.html +260 -260
  33. data/doc/{Sms77 → SevenApi}/Resources/Subaccounts.html +650 -650
  34. data/doc/{Sms77 → SevenApi}/Resources/ValidateForVoice.html +260 -260
  35. data/doc/{Sms77 → SevenApi}/Resources/Voice.html +260 -260
  36. data/doc/SevenApi/Resources.html +128 -0
  37. data/doc/{Sms77 → SevenApi}/Sms/Type.html +125 -125
  38. data/doc/{Sms77 → SevenApi}/Sms.html +125 -125
  39. data/doc/{Sms77 → SevenApi}/Subaccounts/Action.html +140 -140
  40. data/doc/SevenApi/Subaccounts/Validator.html +490 -0
  41. data/doc/{Sms77 → SevenApi}/Subaccounts.html +125 -125
  42. data/doc/{Sms77 → SevenApi}/Util.html +1032 -1032
  43. data/doc/{Sms77.html → SevenApi.html} +145 -145
  44. data/doc/_index.html +443 -443
  45. data/doc/class_list.html +51 -51
  46. data/doc/css/full_list.css +58 -58
  47. data/doc/css/style.css +497 -497
  48. data/doc/file.README.html +110 -111
  49. data/doc/file_list.html +56 -56
  50. data/doc/frames.html +17 -17
  51. data/doc/index.html +110 -111
  52. data/doc/js/app.js +314 -314
  53. data/doc/js/full_list.js +216 -216
  54. data/doc/js/jquery.js +3 -3
  55. data/doc/method_list.html +563 -563
  56. data/doc/top-level-namespace.html +109 -109
  57. data/document.sh +3 -0
  58. data/lib/seven_api/client.rb +32 -30
  59. data/lib/seven_api/contacts.rb +5 -10
  60. data/lib/seven_api/endpoint.rb +5 -0
  61. data/lib/seven_api/hooks.rb +69 -67
  62. data/lib/seven_api/journal.rb +39 -39
  63. data/lib/seven_api/lookup.rb +12 -11
  64. data/lib/seven_api/numbers.rb +9 -0
  65. data/lib/seven_api/paginated.rb +10 -0
  66. data/lib/seven_api/rcs.rb +9 -0
  67. data/lib/seven_api/resource.rb +8 -4
  68. data/lib/seven_api/resources/analytics.rb +54 -21
  69. data/lib/seven_api/resources/balance.rb +19 -19
  70. data/lib/seven_api/resources/contacts.rb +56 -38
  71. data/lib/seven_api/resources/groups.rb +57 -0
  72. data/lib/seven_api/resources/hooks.rb +40 -40
  73. data/lib/seven_api/resources/journal.rb +20 -20
  74. data/lib/seven_api/resources/lookup.rb +63 -47
  75. data/lib/seven_api/resources/numbers.rb +71 -0
  76. data/lib/seven_api/resources/pricing.rb +20 -20
  77. data/lib/seven_api/resources/rcs.rb +39 -0
  78. data/lib/seven_api/resources/sms.rb +29 -20
  79. data/lib/seven_api/resources/status.rb +20 -20
  80. data/lib/seven_api/resources/subaccounts.rb +65 -65
  81. data/lib/seven_api/resources/validate_for_voice.rb +20 -20
  82. data/lib/seven_api/resources/voice.rb +29 -20
  83. data/lib/seven_api/sms.rb +9 -9
  84. data/lib/seven_api/subaccounts.rb +55 -55
  85. data/lib/seven_api/util.rb +68 -68
  86. data/lib/seven_api/version.rb +5 -5
  87. data/lib/seven_api.rb +6 -6
  88. data/release.sh +4 -4
  89. data/seven_api.gemspec +5 -5
  90. data/spec/EnvKeyStore.rb +14 -14
  91. data/spec/matchers.rb +22 -22
  92. data/spec/seven_api/analytics_spec.rb +49 -0
  93. data/spec/seven_api/balance_spec.rb +18 -12
  94. data/spec/seven_api/client_spec.rb +15 -15
  95. data/spec/seven_api/contacts_spec.rb +100 -129
  96. data/spec/seven_api/groups_spec.rb +74 -0
  97. data/spec/seven_api/hooks_spec.rb +108 -108
  98. data/spec/seven_api/instance_spec.rb +22 -22
  99. data/spec/seven_api/journal_spec.rb +86 -86
  100. data/spec/seven_api/lookup_spec.rb +197 -179
  101. data/spec/seven_api/numbers_spec.rb +135 -0
  102. data/spec/seven_api/pricing_spec.rb +76 -76
  103. data/spec/seven_api/rcs_spec.rb +99 -0
  104. data/spec/seven_api/sms_spec.rb +103 -103
  105. data/spec/seven_api/subaccounts_spec.rb +121 -121
  106. data/spec/seven_api/validate_for_voice_spec.rb +19 -19
  107. data/spec/seven_api/voice_spec.rb +51 -51
  108. data/spec/seven_api_spec.rb +9 -9
  109. data/spec/spec_helper.rb +8 -17
  110. metadata +62 -50
  111. data/doc/Sms77/Resources.html +0 -128
  112. data/doc/Sms77/Subaccounts/Validator.html +0 -490
@@ -1,179 +1,197 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
- require 'seven_api/endpoint'
5
- require 'seven_api/lookup'
6
- require 'seven_api/resources/lookup'
7
- require 'json'
8
-
9
- RSpec.describe SevenApi, 'lookup' do
10
- def request(type, stub, extra_args = {})
11
- helper = Helper.new(SevenApi::Resources::Lookup)
12
- helper.request(
13
- helper.resource.method(type),
14
- stub,
15
- { number: '+491771783130' }.merge(extra_args))
16
- end
17
-
18
- it 'misses number to lookup' do
19
- stub = {
20
- carrier: nil,
21
- country_code: false,
22
- country_iso: nil,
23
- country_name: nil,
24
- international: '+',
25
- international_formatted: '',
26
- national: '',
27
- network_type: nil,
28
- success: false
29
- }
30
-
31
- res = request(SevenApi::Lookup::Type::FORMAT, stub, { number: '' })
32
-
33
- expect(res).to be_a(Hash)
34
- expect(res[:success]).to match(false)
35
- end
36
-
37
- it 'returns number formatting details as json' do
38
- stub = {
39
- carrier: 'Eplus',
40
- country_code: '49',
41
- country_iso: 'DE',
42
- country_name: 'Germany',
43
- international: '+491771783130',
44
- international_formatted: '+49 177 1783130',
45
- national: '0177 1783130',
46
- network_type: 'mobile',
47
- success: true
48
- }
49
-
50
- body = request(SevenApi::Lookup::Type::FORMAT, stub)
51
-
52
- expect(body).to be_a(Hash)
53
- expect(body[:carrier]).to be_a(String)
54
- expect(body[:country_code]).to be_a(String)
55
- expect(body[:country_iso]).to be_a(String)
56
- expect(body[:country_name]).to be_a(String)
57
- expect(body[:international]).to be_a(String)
58
- expect(body[:international_formatted]).to be_a(String)
59
- expect(body[:national]).to be_a(String)
60
- expect(body[:network_type]).to be_a(String)
61
- expect(body[:success]).to be_boolean
62
- end
63
-
64
- it 'returns CNAM details as json' do
65
- stub = {
66
- code: '100',
67
- name: 'GERMANY',
68
- number: '+491771783130',
69
- success: 'true'
70
- }
71
- body = request(SevenApi::Lookup::Type::CNAM, stub)
72
-
73
- expect(body).to be_a(Hash)
74
- expect(body[:code]).to be_a(String)
75
- expect(body[:name]).to be_a(String)
76
- expect(body[:number]).to be_a(String)
77
- expect(body[:success]).to be_a(String)
78
- end
79
-
80
- it 'returns MNP details as text' do
81
- body = request(SevenApi::Lookup::Type::MNP, 'eplus')
82
-
83
- expect(body).to be_a(String)
84
- end
85
-
86
- it 'returns MNP details as json' do
87
- stub = {
88
- code: 100,
89
- mnp: {
90
- country: 'DE',
91
- international_formatted: '+49 177 1783130',
92
- isPorted: false,
93
- mccmnc: '26203',
94
- national_format: '0177 1783130',
95
- network: "Telef\u00f3nica Germany GmbH & Co. oHG (O2)",
96
- number: '+491771783130'
97
- },
98
- price: 0.005,
99
- success: true
100
- }
101
- body = request(SevenApi::Lookup::Type::MNP, stub, { json: 1 })
102
-
103
- expect(body).to be_a(Hash)
104
- expect(body[:code]).to be_a(Integer)
105
- expect(body[:price]).to be_a(Float)
106
- expect(body[:mnp]).to be_a(Hash)
107
- expect(body[:mnp][:country]).to be_a(String)
108
- expect(body[:mnp][:international_formatted]).to be_a(String)
109
- expect(body[:mnp][:isPorted]).to be_boolean
110
- expect(body[:mnp][:mccmnc]).to be_a(String)
111
- expect(body[:mnp][:national_format]).to be_a(String)
112
- expect(body[:mnp][:network]).to be_a(String)
113
- expect(body[:mnp][:number]).to be_a(String)
114
- expect(body[:success]).to be_boolean
115
- end
116
-
117
- it 'returns HLR details as json' do
118
- stub = {
119
- country_code: 'DE',
120
- country_name: 'Germany',
121
- country_prefix: '49',
122
- current_carrier: {
123
- country: 'DE',
124
- name: "Telef\u00f3nica Germany GmbH & Co. oHG (O2)",
125
- network_code: '26203',
126
- network_type: 'mobile'
127
- },
128
- international_format_number: '491771783130',
129
- international_formatted: '+49 177 1783130',
130
- lookup_outcome: true,
131
- lookup_outcome_message: 'success',
132
- national_format_number: '0177 1783130',
133
- original_carrier: {
134
- country: 'DE',
135
- name: "Telef\u00f3nica Germany GmbH & Co. oHG (O2)",
136
- network_code: '26203',
137
- network_type: 'mobile'
138
- },
139
- status: true,
140
- status_message: 'success',
141
- gsm_code: '0',
142
- gsm_message: 'No error',
143
- ported: 'assumed_not_ported',
144
- reachable: 'reachable',
145
- roaming: 'not_roaming',
146
- valid_number: 'valid'
147
- }
148
-
149
- body = request(SevenApi::Lookup::Type::HLR, stub)
150
-
151
- expect(body).to be_a(Hash)
152
- expect(body[:country_code]).to be_a(String)
153
- expect(body[:country_name]).to be_a(String)
154
- expect(body[:country_prefix]).to be_a(String)
155
- assert_carrier(body[:current_carrier])
156
- expect(body[:international_format_number]).to be_a(String)
157
- expect(body[:international_formatted]).to be_a(String)
158
- expect(body[:lookup_outcome]).to be_boolean
159
- expect(body[:lookup_outcome_message]).to be_a(String)
160
- expect(body[:national_format_number]).to be_a(String)
161
- assert_carrier(body[:original_carrier])
162
- expect(body[:status]).to be_boolean
163
- expect(body[:status_message]).to be_a(String)
164
- expect(body[:gsm_code]).to be_a(String)
165
- expect(body[:gsm_message]).to be_a(String)
166
- expect(body[:ported]).to be_a(String)
167
- expect(body[:reachable]).to be_a(String)
168
- expect(body[:roaming]).to be_a(String)
169
- expect(body[:valid_number]).to be_a(String)
170
- end
171
-
172
- def assert_carrier(hash)
173
- expect(hash).to be_a(Hash)
174
- expect(hash[:country]).to be_a(String)
175
- expect(hash[:name]).to be_a(String)
176
- expect(hash[:network_code]).to be_a(String)
177
- expect(hash[:network_type]).to be_a(String)
178
- end
179
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require 'seven_api/endpoint'
5
+ require 'seven_api/lookup'
6
+ require 'seven_api/resources/lookup'
7
+ require 'json'
8
+
9
+ RSpec.describe SevenApi, 'lookup' do
10
+ helper = Helper.new(SevenApi::Resources::Lookup)
11
+
12
+ def request(type, stub, params = { number: '+491771783130' })
13
+ helper.request(helper.resource.method(type), stub, params)
14
+ end
15
+
16
+ it 'misses number to lookup' do
17
+ stub = {
18
+ carrier: nil,
19
+ country_code: false,
20
+ country_iso: nil,
21
+ country_name: nil,
22
+ international: '+',
23
+ international_formatted: '',
24
+ national: '',
25
+ network_type: nil,
26
+ success: false
27
+ }
28
+ path = SevenApi::Resources::Lookup.const_get('PATHS')[:format]
29
+ res = helper.request(helper.resource.method(:format), stub, { number: '' }, path)
30
+
31
+ expect(res).to be_a(Hash)
32
+ expect(res[:success]).to match(false)
33
+ end
34
+
35
+ it 'returns number formatting details' do
36
+ stub = {
37
+ carrier: 'Eplus',
38
+ country_code: '49',
39
+ country_iso: 'DE',
40
+ country_name: 'Germany',
41
+ international: '+491771783130',
42
+ international_formatted: '+49 177 1783130',
43
+ national: '0177 1783130',
44
+ network_type: 'mobile',
45
+ success: true
46
+ }
47
+ path = SevenApi::Resources::Lookup.const_get('PATHS')[:format]
48
+ body = helper.request(helper.resource.method(:format), stub, { number: '+491771783130' }, path)
49
+
50
+ assert_format(body)
51
+ end
52
+
53
+ it 'returns RCS lookup capabilities' do
54
+ stub = {
55
+ carrier: "O2",
56
+ country_code: "49",
57
+ country_iso: "DE",
58
+ country_name: "Germany",
59
+ international: "+49176123456789",
60
+ international_formatted: "+49 179 123456789",
61
+ national: "0176 12345679",
62
+ network_type: "mobile",
63
+ rcs_capabilities: %w[ACTION_CREATE_CALENDAR_EVENT ACTION_DIAL ACTION_OPEN_URL ACTION_SHARE_LOCATION ACTION_VIEW_LOCATION RICHCARD_CAROUSEL RICHCARD_STANDALONE],
64
+ success: true
65
+ }
66
+ path = SevenApi::Resources::Lookup.const_get('PATHS')[:rcs_capabilities]
67
+ body = helper.request(helper.resource.method(:rcs_capabilities), stub, { number: '+491771783130' }, path)
68
+
69
+ assert_format(body)
70
+ expect(body[:rcs_capabilities]).to be_a(Array)
71
+ end
72
+
73
+ it 'returns CNAM details' do
74
+ stub = {
75
+ code: '100',
76
+ name: 'GERMANY',
77
+ number: '+491771783130',
78
+ success: 'true'
79
+ }
80
+ path = SevenApi::Resources::Lookup.const_get('PATHS')[:cnam]
81
+ body = helper.request(helper.resource.method(:cnam), stub, { number: '+491771783130' }, path)
82
+
83
+ expect(body).to be_a(Hash)
84
+ expect(body[:code]).to be_a(String)
85
+ expect(body[:name]).to be_a(String)
86
+ expect(body[:number]).to be_a(String)
87
+ expect(body[:success]).to be_a(String)
88
+ end
89
+
90
+ it 'returns MNP details' do
91
+ stub = {
92
+ code: 100,
93
+ mnp: {
94
+ country: 'DE',
95
+ international_formatted: '+49 177 1783130',
96
+ isPorted: false,
97
+ mccmnc: '26203',
98
+ national_format: '0177 1783130',
99
+ network: "Telef\u00f3nica Germany GmbH & Co. oHG (O2)",
100
+ number: '+491771783130'
101
+ },
102
+ price: 0.005,
103
+ success: true
104
+ }
105
+ path = SevenApi::Resources::Lookup.const_get('PATHS')[:mnp]
106
+ body = helper.request(helper.resource.method(:mnp), stub, { number: '+491771783130' }, path)
107
+
108
+ expect(body).to be_a(Hash)
109
+ expect(body[:code]).to be_a(Integer)
110
+ expect(body[:price]).to be_a(Float)
111
+ expect(body[:mnp]).to be_a(Hash)
112
+ expect(body[:mnp][:country]).to be_a(String)
113
+ expect(body[:mnp][:international_formatted]).to be_a(String)
114
+ expect(body[:mnp][:isPorted]).to be_boolean
115
+ expect(body[:mnp][:mccmnc]).to be_a(String)
116
+ expect(body[:mnp][:national_format]).to be_a(String)
117
+ expect(body[:mnp][:network]).to be_a(String)
118
+ expect(body[:mnp][:number]).to be_a(String)
119
+ expect(body[:success]).to be_boolean
120
+ end
121
+
122
+ it 'returns HLR details' do
123
+ stub = {
124
+ country_code: 'DE',
125
+ country_name: 'Germany',
126
+ country_prefix: '49',
127
+ current_carrier: {
128
+ country: 'DE',
129
+ name: "Telef\u00f3nica Germany GmbH & Co. oHG (O2)",
130
+ network_code: '26203',
131
+ network_type: 'mobile'
132
+ },
133
+ international_format_number: '491771783130',
134
+ international_formatted: '+49 177 1783130',
135
+ lookup_outcome: true,
136
+ lookup_outcome_message: 'success',
137
+ national_format_number: '0177 1783130',
138
+ original_carrier: {
139
+ country: 'DE',
140
+ name: "Telef\u00f3nica Germany GmbH & Co. oHG (O2)",
141
+ network_code: '26203',
142
+ network_type: 'mobile'
143
+ },
144
+ status: true,
145
+ status_message: 'success',
146
+ gsm_code: '0',
147
+ gsm_message: 'No error',
148
+ ported: 'assumed_not_ported',
149
+ reachable: 'reachable',
150
+ roaming: 'not_roaming',
151
+ valid_number: 'valid'
152
+ }
153
+ path = SevenApi::Resources::Lookup.const_get('PATHS')[:hlr]
154
+ body = helper.request(helper.resource.method(:hlr), stub, { number: '+491771783130' }, path)
155
+
156
+ expect(body).to be_a(Hash)
157
+ expect(body[:country_code]).to be_a(String)
158
+ expect(body[:country_name]).to be_a(String)
159
+ expect(body[:country_prefix]).to be_a(String)
160
+ assert_carrier(body[:current_carrier])
161
+ expect(body[:international_format_number]).to be_a(String)
162
+ expect(body[:international_formatted]).to be_a(String)
163
+ expect(body[:lookup_outcome]).to be_boolean
164
+ expect(body[:lookup_outcome_message]).to be_a(String)
165
+ expect(body[:national_format_number]).to be_a(String)
166
+ assert_carrier(body[:original_carrier])
167
+ expect(body[:status]).to be_boolean
168
+ expect(body[:status_message]).to be_a(String)
169
+ expect(body[:gsm_code]).to be_a(String)
170
+ expect(body[:gsm_message]).to be_a(String)
171
+ expect(body[:ported]).to be_a(String)
172
+ expect(body[:reachable]).to be_a(String)
173
+ expect(body[:roaming]).to be_a(String)
174
+ expect(body[:valid_number]).to be_a(String)
175
+ end
176
+
177
+ def assert_carrier(hash)
178
+ expect(hash).to be_a(Hash)
179
+ expect(hash[:country]).to be_a(String)
180
+ expect(hash[:name]).to be_a(String)
181
+ expect(hash[:network_code]).to be_a(String)
182
+ expect(hash[:network_type]).to be_a(String)
183
+ end
184
+
185
+ def assert_format(body)
186
+ expect(body).to be_a(Hash)
187
+ expect(body[:carrier]).to be_a(String)
188
+ expect(body[:country_code]).to be_a(String)
189
+ expect(body[:country_iso]).to be_a(String)
190
+ expect(body[:country_name]).to be_a(String)
191
+ expect(body[:international]).to be_a(String)
192
+ expect(body[:international_formatted]).to be_a(String)
193
+ expect(body[:national]).to be_a(String)
194
+ expect(body[:network_type]).to be_a(String)
195
+ expect(body[:success]).to be_boolean
196
+ end
197
+ end
@@ -0,0 +1,135 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require 'seven_api/resources/numbers'
5
+
6
+ dummy_number = {
7
+ "country": "DE",
8
+ "number": "49176123456789",
9
+ "friendly_name": "",
10
+ "billing": {
11
+ "fees": {
12
+ "setup": 19.9,
13
+ "basic_charge": 238.8,
14
+ "sms_mo": 0,
15
+ "voice_mo": 0
16
+ },
17
+ "payment_interval": "annually"
18
+ },
19
+ "features": {
20
+ "sms": true,
21
+ "a2p_sms": false,
22
+ "voice": true
23
+ },
24
+ "forward_sms_mo": {
25
+ "sms": {
26
+ "number": [
27
+ "4917612345678"
28
+ ],
29
+ "enabled": true
30
+ },
31
+ "email": {
32
+ "address": %w[j.doe@acme.inc john@doe.com],
33
+ "enabled": true
34
+ }
35
+ },
36
+ "expires": nil,
37
+ "created": "2024-01-31 17:06:27"
38
+ }
39
+
40
+ RSpec.describe SevenApi, 'numbers' do
41
+ $new_number_id = nil
42
+
43
+ def assert_new(response_body)
44
+ code = response_body[:return]
45
+ $new_number_id = response_body[:id]
46
+
47
+ expect(code).to be_numeric
48
+ expect($new_number_id).to be_an_instance_of(Integer)
49
+ end
50
+
51
+ def assert_number(number)
52
+ expect(number[:id]).to be_numeric
53
+ expect(number[:name]).to be_an_instance_of(String)
54
+ end
55
+
56
+ it 'returns available numbers' do
57
+ stub = {
58
+ availableNumbers: [
59
+ dummy_number,
60
+ dummy_number
61
+ ],
62
+ }
63
+
64
+ helper = Helper.new(SevenApi::Resources::Numbers)
65
+ body = helper.request(helper.resource.method(:available), stub)
66
+
67
+ expect(body).to be_a(Hash)
68
+ expect(body).to have_key(:availableNumbers)
69
+ expect(body[:availableNumbers]).to be_a(Array)
70
+
71
+ body[:availableNumbers].each do |number|
72
+ assert_number(number)
73
+ end
74
+ end
75
+
76
+ it 'returns active numbers' do
77
+ stub = {
78
+ availableNumbers: [
79
+ dummy_number,
80
+ dummy_number
81
+ ],
82
+ }
83
+
84
+ helper = Helper.new(SevenApi::Resources::Numbers)
85
+ body = helper.request(helper.resource.method(:active), stub)
86
+
87
+ expect(body).to be_a(Array)
88
+
89
+ body.each do |number|
90
+ assert_number(number)
91
+ end
92
+ end
93
+
94
+ it 'order a number' do
95
+ stub = dummy_number
96
+ helper = Helper.new(SevenApi::Resources::Numbers)
97
+ body = helper.request(helper.resource.method(:order), stub)
98
+
99
+ expect(body).to be_a(Hash)
100
+
101
+ assert_new(body)
102
+ end
103
+
104
+ it 'update a number' do
105
+ stub = dummy_number
106
+ helper = Helper.new(SevenApi::Resources::Numbers)
107
+ body = helper.request(helper.resource.method(:update), stub)
108
+
109
+ expect(body).to be_a(Hash)
110
+
111
+ assert_new(body)
112
+ end
113
+
114
+ it 'get a number' do
115
+ stub = dummy_number
116
+ helper = Helper.new(SevenApi::Resources::Numbers)
117
+ body = helper.request(helper.resource.method(:one[:number]), stub)
118
+
119
+ expect(body).to be_a(Hash)
120
+
121
+ assert_new(body)
122
+ end
123
+
124
+ it 'deletes a number' do
125
+ helper = Helper.new(SevenApi::Resources::Numbers)
126
+ body = helper.request(
127
+ helper.resource.method(:delete),
128
+ nil,
129
+ 0
130
+ )
131
+
132
+ expect(body).to be_a(Hash)
133
+ expect(body[:return]).to be_a(String)
134
+ end
135
+ end
@@ -1,76 +1,76 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
- require 'seven_api/resources/pricing'
5
-
6
- RSpec.describe SevenApi, 'pricing' do
7
- it 'returns all countries pricing as json' do
8
- stub = {
9
- countCountries: 1,
10
- countNetworks: 4,
11
- countries: [
12
- {
13
- countryCode: 'AT',
14
- countryName: 'Austria',
15
- countryPrefix: '43',
16
- networks: [
17
- {
18
- comment: '',
19
- features: [],
20
- mcc: '232',
21
- mncs: ['02'],
22
- networkName: 'A1 Telekom Austria',
23
- price: 0.075
24
- },
25
- {
26
- comment: '',
27
- features: %w[alpha Numeric dlr sc],
28
- mcc: '232',
29
- mncs: ['01'],
30
- networkName: 'A1 Telekom Austria (A1.net)',
31
- price: 0.075
32
- }
33
- ]
34
- }
35
- ]
36
- }
37
-
38
- helper = Helper.new(SevenApi::Resources::Pricing)
39
- res = helper.request(helper.resource.method(:retrieve), stub)
40
- countries = res[:countries]
41
-
42
- expect(res).to be_a(Hash)
43
- expect(res[:countCountries]).to be_a(Integer)
44
- expect(res[:countNetworks]).to be_a(Integer)
45
- expect(countries).to be_a(Array)
46
-
47
- countries.each do |country|
48
- networks = country[:networks]
49
-
50
- expect(country).to be_a(Hash)
51
- expect(country[:countryCode]).to be_a(String)
52
- expect(country[:countryName]).to be_a(String)
53
- expect(country[:countryPrefix]).to be_a(String)
54
- expect(networks).to be_a(Array)
55
-
56
- networks.each do |network|
57
- mncs = network[:mncs]
58
- features = network[:features]
59
-
60
- expect(network).to be_a(Hash)
61
- expect(network[:mcc]).to be_a(String)
62
- expect(mncs).to be_a(Array)
63
- mncs.each do |mnc|
64
- expect(mnc).to be_a(String)
65
- end
66
- expect(network[:networkName]).to be_a(String)
67
- expect(network[:price]).to be_a(Float)
68
- expect(features).to be_a(Array)
69
- features.each do |feature|
70
- expect(feature).to be_a(String)
71
- end
72
- expect(network[:comment]).to be_a(String)
73
- end
74
- end
75
- end
76
- end
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require 'seven_api/resources/pricing'
5
+
6
+ RSpec.describe SevenApi, 'pricing' do
7
+ it 'returns all countries pricing as json' do
8
+ stub = {
9
+ countCountries: 1,
10
+ countNetworks: 4,
11
+ countries: [
12
+ {
13
+ countryCode: 'AT',
14
+ countryName: 'Austria',
15
+ countryPrefix: '43',
16
+ networks: [
17
+ {
18
+ comment: '',
19
+ features: [],
20
+ mcc: '232',
21
+ mncs: ['02'],
22
+ networkName: 'A1 Telekom Austria',
23
+ price: 0.075
24
+ },
25
+ {
26
+ comment: '',
27
+ features: %w[alpha Numeric dlr sc],
28
+ mcc: '232',
29
+ mncs: ['01'],
30
+ networkName: 'A1 Telekom Austria (A1.net)',
31
+ price: 0.075
32
+ }
33
+ ]
34
+ }
35
+ ]
36
+ }
37
+
38
+ helper = Helper.new(SevenApi::Resources::Pricing)
39
+ res = helper.request(helper.resource.method(:retrieve), stub)
40
+ countries = res[:countries]
41
+
42
+ expect(res).to be_a(Hash)
43
+ expect(res[:countCountries]).to be_a(Integer)
44
+ expect(res[:countNetworks]).to be_a(Integer)
45
+ expect(countries).to be_a(Array)
46
+
47
+ countries.each do |country|
48
+ networks = country[:networks]
49
+
50
+ expect(country).to be_a(Hash)
51
+ expect(country[:countryCode]).to be_a(String)
52
+ expect(country[:countryName]).to be_a(String)
53
+ expect(country[:countryPrefix]).to be_a(String)
54
+ expect(networks).to be_a(Array)
55
+
56
+ networks.each do |network|
57
+ mncs = network[:mncs]
58
+ features = network[:features]
59
+
60
+ expect(network).to be_a(Hash)
61
+ expect(network[:mcc]).to be_a(String)
62
+ expect(mncs).to be_a(Array)
63
+ mncs.each do |mnc|
64
+ expect(mnc).to be_a(String)
65
+ end
66
+ expect(network[:networkName]).to be_a(String)
67
+ expect(network[:price]).to be_a(Float)
68
+ expect(features).to be_a(Array)
69
+ features.each do |feature|
70
+ expect(feature).to be_a(String)
71
+ end
72
+ expect(network[:comment]).to be_a(String)
73
+ end
74
+ end
75
+ end
76
+ end