sendgrid4r 0.2.0 → 0.3.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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/.env.example +5 -0
  3. data/.rubocop.yml +8 -8
  4. data/README.md +2 -0
  5. data/lib/auth.rb +5 -2
  6. data/lib/client.rb +4 -2
  7. data/lib/sendgrid4r/factory/version_factory.rb +1 -1
  8. data/lib/sendgrid4r/rest/api.rb +4 -0
  9. data/lib/sendgrid4r/rest/api_keys/api_keys.rb +73 -0
  10. data/lib/sendgrid4r/rest/asm/asm.rb +28 -0
  11. data/lib/sendgrid4r/rest/asm/global_suppressions.rb +12 -8
  12. data/lib/sendgrid4r/rest/asm/groups.rb +29 -22
  13. data/lib/sendgrid4r/rest/asm/suppressions.rb +25 -15
  14. data/lib/sendgrid4r/rest/categories/categories.rb +19 -9
  15. data/lib/sendgrid4r/rest/contacts/custom_fields.rb +14 -8
  16. data/lib/sendgrid4r/rest/contacts/lists.rb +32 -20
  17. data/lib/sendgrid4r/rest/contacts/recipients.rb +42 -31
  18. data/lib/sendgrid4r/rest/contacts/reserved_fields.rb +6 -2
  19. data/lib/sendgrid4r/rest/contacts/segments.rb +22 -12
  20. data/lib/sendgrid4r/rest/ips/addresses.rb +36 -22
  21. data/lib/sendgrid4r/rest/ips/pools.rb +31 -16
  22. data/lib/sendgrid4r/rest/ips/warmup.rb +34 -15
  23. data/lib/sendgrid4r/rest/request.rb +33 -19
  24. data/lib/sendgrid4r/rest/settings/enforced_tls.rb +12 -5
  25. data/lib/sendgrid4r/rest/stats/advanced.rb +73 -25
  26. data/lib/sendgrid4r/rest/stats/category.rb +11 -6
  27. data/lib/sendgrid4r/rest/stats/global.rb +6 -4
  28. data/lib/sendgrid4r/rest/stats/parse.rb +10 -4
  29. data/lib/sendgrid4r/rest/stats/stats.rb +13 -18
  30. data/lib/sendgrid4r/rest/stats/subuser.rb +10 -6
  31. data/lib/sendgrid4r/rest/templates/templates.rb +23 -16
  32. data/lib/sendgrid4r/rest/templates/versions.rb +39 -36
  33. data/lib/sendgrid4r/version.rb +1 -1
  34. data/spec/api_keys/api_keys_spec.rb +152 -0
  35. data/spec/asm/asm_spec.rb +33 -0
  36. data/spec/asm/global_suppressions_spec.rb +111 -45
  37. data/spec/asm/groups_spec.rb +172 -48
  38. data/spec/asm/suppressions_spec.rb +180 -54
  39. data/spec/categories/categories_spec.rb +81 -25
  40. data/spec/client_spec.rb +11 -4
  41. data/spec/contacts/custom_fields_spec.rb +135 -44
  42. data/spec/contacts/lists_spec.rb +314 -84
  43. data/spec/contacts/recipients_spec.rb +337 -92
  44. data/spec/contacts/reserved_fields_spec.rb +80 -60
  45. data/spec/contacts/segments_spec.rb +219 -88
  46. data/spec/factory/condition_factory_spec.rb +12 -12
  47. data/spec/factory/segment_factory_spec.rb +19 -19
  48. data/spec/factory/version_factory_spec.rb +6 -6
  49. data/spec/ips/addresses_spec.rb +177 -84
  50. data/spec/ips/pools_spec.rb +190 -34
  51. data/spec/ips/warmup_spec.rb +106 -38
  52. data/spec/settings/enforced_tls_spec.rb +76 -18
  53. data/spec/stats/advanced_spec.rb +373 -196
  54. data/spec/stats/category_spec.rb +133 -71
  55. data/spec/stats/global_spec.rb +74 -47
  56. data/spec/stats/parse_spec.rb +46 -29
  57. data/spec/stats/stats_spec.rb +246 -0
  58. data/spec/stats/subuser_spec.rb +99 -54
  59. data/spec/templates/templates_spec.rb +219 -54
  60. data/spec/templates/versions_spec.rb +171 -67
  61. metadata +10 -2
@@ -1,241 +1,418 @@
1
1
  # encoding: utf-8
2
2
  require File.dirname(__FILE__) + '/../spec_helper'
3
3
 
4
- describe 'SendGrid4r::REST::Stats::Advanced' do
5
- before :all do
6
- Dotenv.load
7
- @client = SendGrid4r::Client.new(
8
- ENV['SENDGRID_USERNAME'], ENV['SENDGRID_PASSWORD'])
9
- end
4
+ describe SendGrid4r::REST::Stats::Advanced do
5
+ describe 'integration test' do
6
+ before do
7
+ Dotenv.load
8
+ @client = SendGrid4r::Client.new(
9
+ username: ENV['SENDGRID_USERNAME'],
10
+ password: ENV['SENDGRID_PASSWORD'])
11
+ end
12
+
13
+ context 'without block call' do
14
+ it '#get_geo_stats with mandatory params' do
15
+ begin
16
+ top_stats = @client.get_geo_stats(start_date: '2015-01-01')
17
+ expect(top_stats).to be_a(Array)
18
+ top_stats.each do |top_stat|
19
+ expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
20
+ expect(top_stat.date).to be_a(String)
21
+ expect(top_stat.stats).to be_a(Array)
22
+ top_stat.stats.each do |stat|
23
+ expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
24
+ expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
25
+ expect(stat.metrics.clicks.nil?).to be(false)
26
+ expect(stat.metrics.opens.nil?).to be(false)
27
+ expect(stat.metrics.unique_clicks.nil?).to be(false)
28
+ expect(stat.metrics.unique_opens.nil?).to be(false)
29
+ expect(stat.name).to be_a(String)
30
+ expect(stat.type).to eq('country')
31
+ end
32
+ end
33
+ rescue => e
34
+ puts e.inspect
35
+ raise e
36
+ end
37
+ end
38
+
39
+ it '#get_geo_stats with all params' do
40
+ begin
41
+ top_stats = @client.get_geo_stats(
42
+ start_date: '2015-01-01',
43
+ end_date: '2015-01-02',
44
+ aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK,
45
+ country: 'US'
46
+ )
47
+ expect(top_stats).to be_a(Array)
48
+ top_stats.each do |top_stat|
49
+ expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
50
+ expect(top_stat.date).to be_a(String)
51
+ expect(top_stat.stats).to be_a(Array)
52
+ top_stat.stats.each do |stat|
53
+ expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
54
+ expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
55
+ end
56
+ end
57
+ rescue => e
58
+ puts e.inspect
59
+ raise e
60
+ end
61
+ end
62
+
63
+ it '#get_devices_stats with mandatory params' do
64
+ begin
65
+ top_stats = @client.get_devices_stats(start_date: '2015-01-01')
66
+ expect(top_stats).to be_a(Array)
67
+ top_stats.each do |top_stat|
68
+ expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
69
+ expect(top_stat.date).to be_a(String)
70
+ expect(top_stat.stats).to be_a(Array)
71
+ top_stat.stats.each do |stat|
72
+ expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
73
+ expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
74
+ expect(stat.name).to be_a(String)
75
+ expect(stat.type).to eq('device')
76
+ end
77
+ end
78
+ rescue => e
79
+ puts e.inspect
80
+ raise e
81
+ end
82
+ end
10
83
 
11
- context 'always' do
12
- describe '#get_geo_stats' do
13
- it 'returns geo stats if specify mandatory params' do
14
- actual = @client.get_geo_stats(start_date: '2015-01-01')
15
- expect(actual.class).to be(Array)
16
- expect(actual.length > 0).to be(true)
17
- actual.each do |global_stat|
18
- expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
19
- stats = global_stat.stats
20
- expect(stats.length).to eq(14)
21
- stats.each do |stat|
22
- expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
23
- expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
24
- expect(stat.metrics.clicks.nil?).to be(false)
25
- expect(stat.metrics.opens.nil?).to be(false)
26
- expect(stat.metrics.unique_clicks.nil?).to be(false)
27
- expect(stat.metrics.unique_opens.nil?).to be(false)
28
- end
29
- end
30
- end
31
- it 'returns geo stats if specify all params' do
32
- actual = @client.get_geo_stats(
84
+ it '#get_devices_stats with all params' do
85
+ begin
86
+ top_stats = @client.get_devices_stats(
87
+ start_date: '2015-01-01',
88
+ end_date: '2015-01-02',
89
+ aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK
90
+ )
91
+ expect(top_stats).to be_a(Array)
92
+ top_stats.each do |top_stat|
93
+ expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
94
+ expect(top_stat.date).to be_a(String)
95
+ expect(top_stat.stats).to be_a(Array)
96
+ top_stat.stats.each do |stat|
97
+ expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
98
+ expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
99
+ end
100
+ end
101
+ rescue => e
102
+ puts e.inspect
103
+ raise e
104
+ end
105
+ end
106
+
107
+ it '#get_clients_stats with mandatory params' do
108
+ begin
109
+ top_stats = @client.get_clients_stats(start_date: '2015-01-01')
110
+ expect(top_stats).to be_a(Array)
111
+ top_stats.each do |top_stat|
112
+ expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
113
+ expect(top_stat.date).to be_a(String)
114
+ expect(top_stat.stats).to be_a(Array)
115
+ top_stat.stats.each do |stat|
116
+ expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
117
+ expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
118
+ expect(stat.name).to be_a(String)
119
+ expect(stat.type).to eq('client')
120
+ end
121
+ end
122
+ rescue => e
123
+ puts e.inspect
124
+ raise e
125
+ end
126
+ end
127
+
128
+ it '#get_clients_stats with all params' do
129
+ begin
130
+ top_stats = @client.get_clients_stats(
131
+ start_date: '2015-01-01',
132
+ end_date: '2015-01-02',
133
+ aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK
134
+ )
135
+ expect(top_stats).to be_a(Array)
136
+ top_stats.each do |top_stat|
137
+ expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
138
+ expect(top_stat.date).to be_a(String)
139
+ expect(top_stat.stats).to be_a(Array)
140
+ top_stat.stats.each do |stat|
141
+ expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
142
+ expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
143
+ end
144
+ end
145
+ rescue => e
146
+ puts e.inspect
147
+ raise e
148
+ end
149
+ end
150
+
151
+ it '#get_clients_type_stats with mandatory params' do
152
+ begin
153
+ top_stats = @client.get_clients_type_stats(
154
+ start_date: '2015-01-01', client_type: 'webmail'
155
+ )
156
+ expect(top_stats).to be_a(Array)
157
+ top_stats.each do |top_stat|
158
+ expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
159
+ expect(top_stat.date).to be_a(String)
160
+ expect(top_stat.stats).to be_a(Array)
161
+ top_stat.stats.each do |stat|
162
+ expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
163
+ expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
164
+ expect(stat.name).to be_a(String)
165
+ expect(stat.type).to eq('client')
166
+ end
167
+ end
168
+ rescue => e
169
+ puts e.inspect
170
+ raise e
171
+ end
172
+ end
173
+
174
+ it '#get_clients_stats with all params' do
175
+ begin
176
+ top_stats = @client.get_clients_type_stats(
177
+ start_date: '2015-01-01',
178
+ end_date: '2015-01-02',
179
+ aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK,
180
+ client_type: 'webmail'
181
+ )
182
+ expect(top_stats).to be_a(Array)
183
+ top_stats.each do |top_stat|
184
+ expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
185
+ expect(top_stat.date).to be_a(String)
186
+ expect(top_stat.stats).to be_a(Array)
187
+ top_stat.stats.each do |stat|
188
+ expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
189
+ expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
190
+ end
191
+ end
192
+ rescue => e
193
+ puts e.inspect
194
+ raise e
195
+ end
196
+ end
197
+
198
+ it '#get_mailbox_providers_stats with mandatory params' do
199
+ begin
200
+ top_stats =
201
+ @client.get_mailbox_providers_stats(start_date: '2015-01-01')
202
+ expect(top_stats).to be_a(Array)
203
+ top_stats.each do |top_stat|
204
+ expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
205
+ expect(top_stat.date).to be_a(String)
206
+ expect(top_stat.stats).to be_a(Array)
207
+ top_stat.stats.each do |stat|
208
+ expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
209
+ expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
210
+ expect(stat.metrics.blocks.nil?).to be(false)
211
+ expect(stat.metrics.bounces.nil?).to be(false)
212
+ expect(stat.metrics.clicks.nil?).to be(false)
213
+ expect(stat.metrics.deferred.nil?).to be(false)
214
+ expect(stat.metrics.delivered.nil?).to be(false)
215
+ expect(stat.metrics.drops.nil?).to be(false)
216
+ expect(stat.metrics.opens.nil?).to be(false)
217
+ expect(stat.metrics.spam_reports.nil?).to be(false)
218
+ expect(stat.metrics.unique_clicks.nil?).to be(false)
219
+ expect(stat.metrics.unique_opens.nil?).to be(false)
220
+ expect(stat.name).to be_a(String)
221
+ expect(stat.type).to eq('mailbox_provider')
222
+ end
223
+ end
224
+ rescue => e
225
+ puts e.inspect
226
+ raise e
227
+ end
228
+ end
229
+
230
+ it '#get_mailbox_providers_stats with all params' do
231
+ begin
232
+ top_stats = @client.get_mailbox_providers_stats(
233
+ start_date: '2015-01-01',
234
+ end_date: '2015-01-02',
235
+ aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK,
236
+ esps: 'sss'
237
+ )
238
+ expect(top_stats).to be_a(Array)
239
+ top_stats.each do |top_stat|
240
+ expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
241
+ expect(top_stat.date).to be_a(String)
242
+ expect(top_stat.stats).to be_a(Array)
243
+ top_stat.stats.each do |stat|
244
+ expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
245
+ expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
246
+ end
247
+ end
248
+ rescue => e
249
+ puts e.inspect
250
+ raise e
251
+ end
252
+ end
253
+
254
+ it '#get_browsers_stats with mandatory params' do
255
+ begin
256
+ top_stats = @client.get_browsers_stats(start_date: '2015-01-01')
257
+ expect(top_stats).to be_a(Array)
258
+ top_stats.each do |top_stat|
259
+ expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
260
+ expect(top_stat.date).to be_a(String)
261
+ expect(top_stat.stats).to be_a(Array)
262
+ top_stat.stats.each do |stat|
263
+ expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
264
+ expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
265
+ expect(stat.name).to eq(nil)
266
+ expect(stat.type).to eq('browser')
267
+ end
268
+ end
269
+ rescue => e
270
+ puts e.inspect
271
+ raise e
272
+ end
273
+ end
274
+
275
+ it '#get_browsers_stats with all params' do
276
+ begin
277
+ top_stats = @client.get_browsers_stats(
278
+ start_date: '2015-01-01',
279
+ end_date: '2015-01-02',
280
+ aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK,
281
+ browsers: 'chrome'
282
+ )
283
+ expect(top_stats).to be_a(Array)
284
+ top_stats.each do |top_stat|
285
+ expect(top_stat).to be_a(SendGrid4r::REST::Stats::TopStat)
286
+ expect(top_stat.date).to be_a(String)
287
+ expect(top_stat.stats).to be_a(Array)
288
+ top_stat.stats.each do |stat|
289
+ expect(stat).to be_a(SendGrid4r::REST::Stats::Stat)
290
+ expect(stat.metrics).to be_a(SendGrid4r::REST::Stats::Metric)
291
+ end
292
+ end
293
+ rescue => e
294
+ puts e.inspect
295
+ raise e
296
+ end
297
+ end
298
+ end
299
+
300
+ context 'with block call' do
301
+ it '#get_geo_stats with all params' do
302
+ @client.get_geo_stats(
33
303
  start_date: '2015-01-01',
34
304
  end_date: '2015-01-02',
35
305
  aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK,
36
306
  country: 'US'
37
- )
38
- expect(actual.class).to be(Array)
39
- expect(actual.length > 0).to be(true)
40
- actual.each do |global_stat|
41
- expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
42
- stats = global_stat.stats
43
- expect(stats.length).to eq(1)
44
- stats.each do |stat|
45
- expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
46
- expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
307
+ ) do |resp, req, res|
308
+ resp =
309
+ SendGrid4r::REST::Stats.create_top_stats(
310
+ JSON.parse(resp)
311
+ )
312
+ expect(resp).to be_a(Array)
313
+ resp.each do |stat|
314
+ expect(stat).to be_a(SendGrid4r::REST::Stats::TopStat)
47
315
  end
316
+ expect(req).to be_a(RestClient::Request)
317
+ expect(res).to be_a(Net::HTTPOK)
48
318
  end
49
319
  end
50
- end
51
- describe '#get_devices_stats' do
52
- it 'returns devices stats if specify mandatory params' do
53
- actual = @client.get_devices_stats(start_date: '2015-01-01')
54
- expect(actual.class).to be(Array)
55
- expect(actual.length > 0).to be(true)
56
- actual.each do |global_stat|
57
- expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
58
- stats = global_stat.stats
59
- expect(stats.length).to eq(5)
60
- stats.each do |stat|
61
- expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
62
- expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
63
- expect(stat.metrics.opens.nil?).to be(false)
64
- expect(stat.metrics.unique_opens.nil?).to be(false)
65
- end
66
- end
67
- end
68
- it 'returns devices stats if specify all params' do
69
- actual = @client.get_devices_stats(
320
+
321
+ it '#get_devices_stats with all params' do
322
+ @client.get_devices_stats(
70
323
  start_date: '2015-01-01',
71
324
  end_date: '2015-01-02',
72
325
  aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK
73
- )
74
- expect(actual.class).to be(Array)
75
- expect(actual.length > 0).to be(true)
76
- actual.each do |global_stat|
77
- expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
78
- stats = global_stat.stats
79
- expect(stats.length).to eq(1)
80
- stats.each do |stat|
81
- expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
82
- expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
326
+ ) do |resp, req, res|
327
+ resp =
328
+ SendGrid4r::REST::Stats.create_top_stats(
329
+ JSON.parse(resp)
330
+ )
331
+ expect(resp).to be_a(Array)
332
+ resp.each do |stat|
333
+ expect(stat).to be_a(SendGrid4r::REST::Stats::TopStat)
83
334
  end
335
+ expect(req).to be_a(RestClient::Request)
336
+ expect(res).to be_a(Net::HTTPOK)
84
337
  end
85
338
  end
86
- end
87
- describe '#get_clients_stats' do
88
- it 'returns clients stats if specify mandatory params' do
89
- actual = @client.get_clients_stats(start_date: '2015-01-01')
90
- expect(actual.class).to be(Array)
91
- expect(actual.length > 0).to be(true)
92
- actual.each do |global_stat|
93
- expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
94
- stats = global_stat.stats
95
- expect(stats.length).to eq(17)
96
- stats.each do |stat|
97
- expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
98
- expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
99
- expect(stat.metrics.opens.nil?).to be(false)
100
- expect(stat.metrics.unique_opens.nil?).to be(false)
101
- end
102
- end
103
- end
104
- it 'returns clients stats if specify all params' do
105
- actual = @client.get_clients_stats(
339
+
340
+ it '#get_clients_stats with all params' do
341
+ @client.get_clients_stats(
106
342
  start_date: '2015-01-01',
107
343
  end_date: '2015-01-02',
108
344
  aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK
109
- )
110
- expect(actual.class).to be(Array)
111
- expect(actual.length > 0).to be(true)
112
- actual.each do |global_stat|
113
- expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
114
- stats = global_stat.stats
115
- expect(stats.length).to eq(1)
116
- stats.each do |stat|
117
- expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
118
- expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
345
+ ) do |resp, req, res|
346
+ resp =
347
+ SendGrid4r::REST::Stats.create_top_stats(
348
+ JSON.parse(resp)
349
+ )
350
+ expect(resp).to be_a(Array)
351
+ resp.each do |stat|
352
+ expect(stat).to be_a(SendGrid4r::REST::Stats::TopStat)
119
353
  end
354
+ expect(req).to be_a(RestClient::Request)
355
+ expect(res).to be_a(Net::HTTPOK)
120
356
  end
121
357
  end
122
- end
123
- describe '#get_clients_type_stats' do
124
- it 'returns clients type stats if specify mandatory params' do
125
- actual = @client.get_clients_type_stats(
126
- start_date: '2015-01-01', client_type: 'webmail'
127
- )
128
- expect(actual.class).to be(Array)
129
- expect(actual.length > 0).to be(true)
130
- actual.each do |global_stat|
131
- expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
132
- stats = global_stat.stats
133
- expect(stats.length).to eq(5)
134
- stats.each do |stat|
135
- expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
136
- expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
137
- expect(stat.metrics.opens.nil?).to be(false)
138
- expect(stat.metrics.unique_opens.nil?).to be(false)
139
- end
140
- end
141
- end
142
- it 'returns clients type stats if specify all params' do
143
- actual = @client.get_clients_type_stats(
358
+
359
+ it '#get_clients_type_stats with all params' do
360
+ @client.get_clients_type_stats(
144
361
  start_date: '2015-01-01',
145
362
  end_date: '2015-01-02',
146
363
  aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK,
147
364
  client_type: 'webmail'
148
- )
149
- expect(actual.class).to be(Array)
150
- expect(actual.length > 0).to be(true)
151
- actual.each do |global_stat|
152
- expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
153
- stats = global_stat.stats
154
- expect(stats.length).to eq(1)
155
- stats.each do |stat|
156
- expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
157
- expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
365
+ ) do |resp, req, res|
366
+ resp =
367
+ SendGrid4r::REST::Stats.create_top_stats(
368
+ JSON.parse(resp)
369
+ )
370
+ expect(resp).to be_a(Array)
371
+ resp.each do |stat|
372
+ expect(stat).to be_a(SendGrid4r::REST::Stats::TopStat)
158
373
  end
374
+ expect(req).to be_a(RestClient::Request)
375
+ expect(res).to be_a(Net::HTTPOK)
159
376
  end
160
377
  end
161
- end
162
- describe '#get_esp_stats' do
163
- it 'returns esp stats if specify mandatory params' do
164
- actual = @client.get_esp_stats(start_date: '2015-01-01')
165
- expect(actual.class).to be(Array)
166
- expect(actual.length > 0).to be(true)
167
- actual.each do |global_stat|
168
- expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
169
- stats = global_stat.stats
170
- expect(stats.length).to eq(1)
171
- stats.each do |stat|
172
- expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
173
- expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
174
- expect(stat.metrics.blocks.nil?).to be(false)
175
- expect(stat.metrics.bounces.nil?).to be(false)
176
- expect(stat.metrics.clicks.nil?).to be(false)
177
- expect(stat.metrics.deferred.nil?).to be(false)
178
- expect(stat.metrics.delivered.nil?).to be(false)
179
- expect(stat.metrics.drops.nil?).to be(false)
180
- expect(stat.metrics.opens.nil?).to be(false)
181
- expect(stat.metrics.spam_reports.nil?).to be(false)
182
- expect(stat.metrics.unique_clicks.nil?).to be(false)
183
- expect(stat.metrics.unique_opens.nil?).to be(false)
184
- end
185
- end
186
- end
187
- it 'returns esp stats if specify all params' do
188
- actual = @client.get_esp_stats(
378
+
379
+ it '#get_mailbox_providers_stats with all params' do
380
+ @client.get_mailbox_providers_stats(
189
381
  start_date: '2015-01-01',
190
382
  end_date: '2015-01-02',
191
383
  aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK,
192
384
  esps: 'sss'
193
- )
194
- expect(actual.class).to be(Array)
195
- expect(actual.length > 0).to be(true)
196
- actual.each do |global_stat|
197
- expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
198
- stats = global_stat.stats
199
- stats.each do |stat|
200
- expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
201
- expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
385
+ ) do |resp, req, res|
386
+ resp =
387
+ SendGrid4r::REST::Stats.create_top_stats(
388
+ JSON.parse(resp)
389
+ )
390
+ expect(resp).to be_a(Array)
391
+ resp.each do |stat|
392
+ expect(stat).to be_a(SendGrid4r::REST::Stats::TopStat)
202
393
  end
394
+ expect(req).to be_a(RestClient::Request)
395
+ expect(res).to be_a(Net::HTTPOK)
203
396
  end
204
397
  end
205
- end
206
- describe '#get_browsers_stats' do
207
- it 'returns browsers stats if specify mandatory params' do
208
- actual = @client.get_browsers_stats(start_date: '2015-01-01')
209
- expect(actual.class).to be(Array)
210
- expect(actual.length > 0).to be(true)
211
- actual.each do |global_stat|
212
- expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
213
- stats = global_stat.stats
214
- expect(stats.length).to eq(1)
215
- stats.each do |stat|
216
- expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
217
- expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
218
- expect(stat.metrics.clicks.nil?).to be(false)
219
- expect(stat.metrics.unique_clicks.nil?).to be(false)
220
- end
221
- end
222
- end
223
- it 'returns browsers stats if specify all params' do
224
- actual = @client.get_browsers_stats(
398
+
399
+ it '#get_browsers_stats with all params' do
400
+ @client.get_browsers_stats(
225
401
  start_date: '2015-01-01',
226
402
  end_date: '2015-01-02',
227
403
  aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK,
228
404
  browsers: 'chrome'
229
- )
230
- expect(actual.class).to be(Array)
231
- expect(actual.length > 0).to be(false)
232
- actual.each do |global_stat|
233
- expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
234
- stats = global_stat.stats
235
- stats.each do |stat|
236
- expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
237
- expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
405
+ ) do |resp, req, res|
406
+ resp =
407
+ SendGrid4r::REST::Stats.create_top_stats(
408
+ JSON.parse(resp)
409
+ )
410
+ expect(resp).to be_a(Array)
411
+ resp.each do |stat|
412
+ expect(stat).to be_a(SendGrid4r::REST::Stats::TopStat)
238
413
  end
414
+ expect(req).to be_a(RestClient::Request)
415
+ expect(res).to be_a(Net::HTTPOK)
239
416
  end
240
417
  end
241
418
  end