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,28 +1,26 @@
1
1
  # encoding: utf-8
2
2
  require File.dirname(__FILE__) + '/../spec_helper'
3
3
 
4
- describe 'SendGrid4r::REST::Contacts::Recipients' do
5
- before :all do
6
- Dotenv.load
7
- @client = SendGrid4r::Client.new(
8
- ENV['SENDGRID_USERNAME'], ENV['SENDGRID_PASSWORD'])
9
- @email1 = 'jones@example.com'
10
- @email2 = 'miller@example.com'
11
- @last_name1 = 'Jones'
12
- @last_name2 = 'Miller'
13
- @pet1 = 'Fluffy'
14
- @pet2 = 'FrouFrou'
15
- @custom_field_name = 'pet'
16
- end
17
-
18
- context 'always' do
19
- it 'is normal' do
4
+ describe SendGrid4r::REST::Contacts::Recipients do
5
+ describe 'integration test' do
6
+ before do
20
7
  begin
8
+ Dotenv.load
9
+ @client = SendGrid4r::Client.new(
10
+ username: ENV['SENDGRID_USERNAME'],
11
+ password: ENV['SENDGRID_PASSWORD'])
12
+ @email1 = 'jones@example.com'
13
+ @email2 = 'miller@example.com'
14
+ @last_name1 = 'Jones'
15
+ @last_name2 = 'Miller'
16
+ @pet1 = 'Fluffy'
17
+ @pet2 = 'FrouFrou'
18
+ @custom_field_name = 'pet'
19
+
21
20
  # celan up test env
22
21
  recipients = @client.get_recipients
23
- expect(recipients.recipients.length >= 0).to eq(true)
24
22
  recipients.recipients.each do |recipient|
25
- next if recipient.email != @email1
23
+ next if recipient.email != @email1 && recipient.email != @email2
26
24
  @client.delete_recipient(recipient.id)
27
25
  end
28
26
  custom_fields = @client.get_custom_fields
@@ -36,64 +34,314 @@ describe 'SendGrid4r::REST::Contacts::Recipients' do
36
34
  params['email'] = @email1
37
35
  params['last_name'] = @last_name1
38
36
  params[@custom_field_name] = @pet1
39
- new_recipient = @client.post_recipient(params)
40
- expect(new_recipient.created_at.is_a?(Fixnum)).to eq(true)
41
- new_recipient.custom_fields.each do |custom_field|
37
+ @new_recipient = @client.post_recipient(params)
38
+ rescue => e
39
+ puts e.inspect
40
+ raise e
41
+ end
42
+ end
43
+
44
+ context 'without block call' do
45
+ it '#post_recipient' do
46
+ begin
47
+ params = {}
48
+ params['email'] = @email2
49
+ params['last_name'] = @last_name2
50
+ params[@custom_field_name] = @pet2
51
+ new_recipient = @client.post_recipient(params)
52
+ expect(new_recipient.created_at).to be_a(Time)
53
+ new_recipient.custom_fields.each do |custom_field|
54
+ expect(
55
+ custom_field
56
+ ).to be_a(SendGrid4r::REST::Contacts::CustomFields::Field)
57
+ end
58
+ expect(new_recipient.email).to eq(@email2)
59
+ expect(new_recipient.first_name).to eq(nil)
60
+ expect(new_recipient.id).to eq(@email2)
61
+ expect(new_recipient.last_clicked).to eq(nil)
62
+ expect(new_recipient.last_emailed).to eq(nil)
63
+ expect(new_recipient.last_name).to eq(@last_name2)
64
+ expect(new_recipient.last_opened).to eq(nil)
65
+ expect(new_recipient.updated_at).to be_a(Time)
66
+ rescue => e
67
+ puts e.inspect
68
+ raise e
69
+ end
70
+ end
71
+
72
+ it '#post_recipient for same key' do
73
+ begin
74
+ params = {}
75
+ params['email'] = @email1
76
+ params['last_name'] = @last_name1
77
+ params[@custom_field_name] = @pet1
78
+ @client.post_recipient(params)
79
+ rescue => e
80
+ puts e.inspect
81
+ raise e
82
+ end
83
+ end
84
+
85
+ it '#get_recipients' do
86
+ begin
87
+ recipients = @client.get_recipients(100, 0)
88
+ expect(recipients.recipients.length).to be > 0
89
+ recipients.recipients.each do |recipient|
90
+ expect(
91
+ recipient
92
+ ).to be_a(SendGrid4r::REST::Contacts::Recipients::Recipient)
93
+ end
94
+ rescue => e
95
+ puts e.inspect
96
+ raise e
97
+ end
98
+ end
99
+
100
+ it '#get_recipient_count' do
101
+ begin
102
+ actual_count = @client.get_recipients_count
103
+ expect(actual_count).to be >= 0
104
+ rescue => e
105
+ puts e.inspect
106
+ raise e
107
+ end
108
+ end
109
+
110
+ it '#search_recipients' do
111
+ begin
112
+ params = {}
113
+ params['email'] = @email1
114
+ recipients = @client.search_recipients(params)
115
+ expect(recipients.recipients).to be_a(Array)
116
+ rescue => e
117
+ puts e.inspect
118
+ raise e
119
+ end
120
+ end
121
+
122
+ it '#get_recipient' do
123
+ begin
124
+ recipient = @client.get_recipient(@new_recipient.id)
42
125
  expect(
43
- custom_field.is_a?(
44
- SendGrid4r::REST::Contacts::CustomFields::Field
126
+ recipient
127
+ ).to be_a(SendGrid4r::REST::Contacts::Recipients::Recipient)
128
+ rescue => e
129
+ puts e.inspect
130
+ raise e
131
+ end
132
+ end
133
+
134
+ it '#get_lists_recipient_belong' do
135
+ begin
136
+ lists = @client.get_lists_recipient_belong(@new_recipient.id)
137
+ lists.lists.each do |list|
138
+ expect(
139
+ list.is_a?(SendGrid4r::REST::Contacts::Lists::List)
140
+ ).to eq(true)
141
+ end
142
+ rescue => e
143
+ puts e.inspect
144
+ raise e
145
+ end
146
+ end
147
+
148
+ it '#post_recipients' do
149
+ begin
150
+ recipient1 = {}
151
+ recipient1['email'] = @email1
152
+ recipient1['last_name'] = @last_name1
153
+ recipient1[@custom_field_name] = @pet1
154
+ recipient2 = {}
155
+ recipient2['email'] = @email2
156
+ recipient2['last_name'] = @last_name2
157
+ recipient2[@custom_field_name] = @pet2
158
+ params = [recipient1, recipient2]
159
+ result = @client.post_recipients(params)
160
+ expect(result.error_count).to eq(0)
161
+ result.error_indices.each do |index|
162
+ expect(index).to be_a(Fixnum)
163
+ end
164
+ expect(result.new_count).to be_a(Fixnum)
165
+ expect(result.updated_count).to be_a(Fixnum)
166
+ rescue => e
167
+ puts e.inspect
168
+ raise e
169
+ end
170
+ end
171
+
172
+ it '#get_recipients_by_id' do
173
+ begin
174
+ recipient_ids = [@email1, @email2]
175
+ actual_recipients = @client.get_recipients_by_id(recipient_ids)
176
+ expect(actual_recipients.recipients).to be_a(Array)
177
+ expect(actual_recipients.recipients.length).to eq(1)
178
+ actual_recipients.recipients.each do |recip|
179
+ expect(
180
+ recip
181
+ ).to be_a(SendGrid4r::REST::Contacts::Recipients::Recipient)
182
+ end
183
+ rescue => e
184
+ puts e.inspect
185
+ raise e
186
+ end
187
+ end
188
+
189
+ it '#delete_recipient' do
190
+ begin
191
+ @client.delete_recipient(@new_recipient.id)
192
+ expect do
193
+ @client.get_recipient(@new_recipient.id)
194
+ end.to raise_error(RestClient::ResourceNotFound)
195
+ rescue => e
196
+ puts e.inspect
197
+ raise e
198
+ end
199
+ end
200
+
201
+ it '#delete_recipients' do
202
+ begin
203
+ @client.delete_recipients([@email1, @email2])
204
+ rescue => e
205
+ puts e.inspect
206
+ raise e
207
+ end
208
+ end
209
+ end
210
+
211
+ context 'with block call' do
212
+ it '#post_recipient' do
213
+ params = {}
214
+ params['email'] = @email2
215
+ params['last_name'] = @last_name2
216
+ params[@custom_field_name] = @pet2
217
+ @client.post_recipient(params) do |resp, req, res|
218
+ resp =
219
+ SendGrid4r::REST::Contacts::Recipients.create_recipient(
220
+ JSON.parse(resp)
45
221
  )
46
- ).to eq(true)
47
- end
48
- expect(new_recipient.email).to eq(@email1)
49
- expect(new_recipient.first_name).to eq(nil)
50
- expect(new_recipient.id).to eq(@email1)
51
- expect(new_recipient.last_clicked).to eq(nil)
52
- expect(new_recipient.last_emailed).to eq(nil)
53
- expect(new_recipient.last_name).to eq(@last_name1)
54
- expect(new_recipient.last_opened).to eq(nil)
55
- expect(new_recipient.updated_at.is_a?(Fixnum)).to eq(true)
56
- # post same recipients
57
- @client.post_recipient(params)
58
- # get all recipients
59
- recipients = @client.get_recipients(100, 0)
60
- expect(recipients.recipients.length > 0).to eq(true)
61
- recipients.recipients.each do |recipient|
62
- expect(
63
- recipient.is_a?(SendGrid4r::REST::Contacts::Recipients::Recipient)
64
- ).to eq(true)
65
- end
66
- # get multiple recipients
67
- recipient_ids = [@email1, @email2]
68
- actual_recipients = @client.get_recipients_by_id(recipient_ids)
69
- expect(actual_recipients.recipients.is_a?(Array)).to eq(true)
70
- expect(actual_recipients.recipients.length).to eq(2)
71
- actual_recipients.recipients.each do |recipient|
72
- expect(
73
- recipient.is_a?(SendGrid4r::REST::Contacts::Recipients::Recipient)
74
- ).to eq(true)
222
+ expect(resp).to be_a(
223
+ SendGrid4r::REST::Contacts::Recipients::Recipient
224
+ )
225
+ expect(req).to be_a(RestClient::Request)
226
+ expect(res).to be_a(Net::HTTPCreated)
75
227
  end
76
- # read a count of recipients
77
- actual_count = @client.get_recipients_count
78
- expect(actual_count > 0).to eq(true)
79
- # Search recipients
228
+ end
229
+
230
+ it '#delete_recipient' do
80
231
  params = {}
81
232
  params['email'] = @email1
82
- recipients = @client.search_recipients(params)
83
- expect(recipients.recipients.length).to eq(1)
84
- # get a single recipient
85
- recipient = @client.get_recipient(new_recipient.id)
86
- expect(
87
- recipient.is_a?(SendGrid4r::REST::Contacts::Recipients::Recipient)
88
- ).to eq(true)
89
- # List the recipient lists to which the recipient belongs
90
- lists = @client.get_lists_recipient_belong(new_recipient.id)
91
- lists.lists.each do |list|
92
- expect(
93
- list.is_a?(SendGrid4r::REST::Contacts::Lists::List)
94
- ).to eq(true)
233
+ params['last_name'] = @last_name1
234
+ params[@custom_field_name] = @pet1
235
+ recipient = @client.post_recipient(params)
236
+ @client.delete_recipient(recipient.id) do |resp, req, res|
237
+ expect(resp).to eq('')
238
+ expect(req).to be_a(RestClient::Request)
239
+ expect(res).to be_a(Net::HTTPNoContent)
240
+ end
241
+ end
242
+
243
+ it '#delete_recipients' do
244
+ @client.delete_recipients([@email1, @email2]) do |resp, req, res|
245
+ expect(resp).to eq('')
246
+ expect(req).to be_a(RestClient::Request)
247
+ expect(res).to be_a(Net::HTTPNoContent)
248
+ end
249
+ end
250
+
251
+ it '#get_recipients' do
252
+ @client.get_recipients do |resp, req, res|
253
+ resp =
254
+ SendGrid4r::REST::Contacts::Recipients.create_recipients(
255
+ JSON.parse(resp)
256
+ )
257
+ expect(resp).to be_a(
258
+ SendGrid4r::REST::Contacts::Recipients::Recipients
259
+ )
260
+ expect(req).to be_a(RestClient::Request)
261
+ expect(res).to be_a(Net::HTTPOK)
262
+ end
263
+ end
264
+
265
+ it '#get_recipients_by_id' do
266
+ params = {}
267
+ params['email'] = @email1
268
+ params['last_name'] = @last_name1
269
+ params[@custom_field_name] = @pet1
270
+ recipient = @client.post_recipient(params)
271
+ @client.get_recipients_by_id([recipient.id]) do |resp, req, res|
272
+ resp =
273
+ SendGrid4r::REST::Contacts::Recipients.create_recipients(
274
+ JSON.parse(resp)
275
+ )
276
+ expect(resp).to be_a(
277
+ SendGrid4r::REST::Contacts::Recipients::Recipients
278
+ )
279
+ expect(req).to be_a(RestClient::Request)
280
+ expect(res).to be_a(Net::HTTPOK)
281
+ end
282
+ end
283
+
284
+ it '#get_recipients_count' do
285
+ @client.get_recipients_count do |resp, req, res|
286
+ expect(JSON.parse(resp)['recipient_count']).to be_a(Fixnum)
287
+ expect(req).to be_a(RestClient::Request)
288
+ expect(res).to be_a(Net::HTTPOK)
289
+ end
290
+ end
291
+
292
+ it '#search_recipients' do
293
+ params = {}
294
+ params['email'] = @email1
295
+ @client.search_recipients(params) do |resp, req, res|
296
+ resp =
297
+ SendGrid4r::REST::Contacts::Recipients.create_recipients(
298
+ JSON.parse(resp)
299
+ )
300
+ expect(resp).to be_a(
301
+ SendGrid4r::REST::Contacts::Recipients::Recipients
302
+ )
303
+ expect(req).to be_a(RestClient::Request)
304
+ expect(res).to be_a(Net::HTTPOK)
95
305
  end
96
- # add multiple recipients
306
+ end
307
+
308
+ it '#get_recipient' do
309
+ params = {}
310
+ params['email'] = @email1
311
+ params['last_name'] = @last_name1
312
+ params[@custom_field_name] = @pet1
313
+ recipient = @client.post_recipient(params)
314
+ @client.get_recipient(recipient.id) do |resp, req, res|
315
+ resp =
316
+ SendGrid4r::REST::Contacts::Recipients.create_recipient(
317
+ JSON.parse(resp)
318
+ )
319
+ expect(resp).to be_a(
320
+ SendGrid4r::REST::Contacts::Recipients::Recipient
321
+ )
322
+ expect(req).to be_a(RestClient::Request)
323
+ expect(res).to be_a(Net::HTTPOK)
324
+ end
325
+ end
326
+
327
+ it '#get_lists_recipient_belong' do
328
+ params = {}
329
+ params['email'] = @email1
330
+ params['last_name'] = @last_name1
331
+ params[@custom_field_name] = @pet1
332
+ recipient = @client.post_recipient(params)
333
+ @client.get_lists_recipient_belong(recipient.id) do |resp, req, res|
334
+ resp =
335
+ SendGrid4r::REST::Contacts::Lists.create_lists(
336
+ JSON.parse(resp)
337
+ )
338
+ expect(resp).to be_a(SendGrid4r::REST::Contacts::Lists::Lists)
339
+ expect(req).to be_a(RestClient::Request)
340
+ expect(res).to be_a(Net::HTTPOK)
341
+ end
342
+ end
343
+
344
+ it '#post_recipients' do
97
345
  recipient1 = {}
98
346
  recipient1['email'] = @email1
99
347
  recipient1['last_name'] = @last_name1
@@ -103,26 +351,22 @@ describe 'SendGrid4r::REST::Contacts::Recipients' do
103
351
  recipient2['last_name'] = @last_name2
104
352
  recipient2[@custom_field_name] = @pet2
105
353
  params = [recipient1, recipient2]
106
- result = @client.post_recipients(params)
107
- expect(result.error_count).to eq(0)
108
- result.error_indices.each do |index|
109
- expect(index.is_a?(Fixnum)).to eq(true)
110
- end
111
- expect(result.new_count).to eq(0)
112
- expect(result.updated_count).to eq(2)
113
- # delete a recipient
114
- @client.delete_recipient(new_recipient.id)
115
- expect do
116
- @client.get_recipient(new_recipient.id)
117
- end.to raise_error(RestClient::ResourceNotFound)
118
- # delete multiple recipients
119
- @client.delete_recipients([@email1, @email2])
120
- rescue => e
121
- puts e.inspect
122
- raise e
354
+ @client.post_recipients(params) do |resp, req, res|
355
+ resp =
356
+ SendGrid4r::REST::Contacts::Recipients.create_result(
357
+ JSON.parse(resp)
358
+ )
359
+ expect(resp).to be_a(
360
+ SendGrid4r::REST::Contacts::Recipients::ResultAddMultiple
361
+ )
362
+ expect(req).to be_a(RestClient::Request)
363
+ expect(res).to be_a(Net::HTTPCreated)
364
+ end
123
365
  end
124
366
  end
367
+ end
125
368
 
369
+ describe 'unit test' do
126
370
  it 'creates recipient instance' do
127
371
  json =
128
372
  '{'\
@@ -146,7 +390,8 @@ describe 'SendGrid4r::REST::Contacts::Recipients' do
146
390
  '}'
147
391
  hash = JSON.parse(json)
148
392
  actual = SendGrid4r::REST::Contacts::Recipients.create_recipient(hash)
149
- expect(actual.created_at).to eq(1422313607)
393
+ expect(actual).to be_a(SendGrid4r::REST::Contacts::Recipients::Recipient)
394
+ expect(actual.created_at).to eq(Time.at(1422313607))
150
395
  expect(actual.email).to eq('jones@example.com')
151
396
  expect(actual.first_name).to eq(nil)
152
397
  expect(actual.id).to eq('jones@example.com')
@@ -154,7 +399,7 @@ describe 'SendGrid4r::REST::Contacts::Recipients' do
154
399
  expect(actual.last_emailed).to eq(nil)
155
400
  expect(actual.last_name).to eq('Jones')
156
401
  expect(actual.last_opened).to eq(nil)
157
- expect(actual.updated_at).to eq(1422313790)
402
+ expect(actual.updated_at).to eq(Time.at(1422313790))
158
403
  custom_field = actual.custom_fields[0]
159
404
  expect(custom_field.id).to eq(23)
160
405
  expect(custom_field.name).to eq('pet')
@@ -189,11 +434,11 @@ describe 'SendGrid4r::REST::Contacts::Recipients' do
189
434
  '}'
190
435
  hash = JSON.parse(json)
191
436
  actual = SendGrid4r::REST::Contacts::Recipients.create_recipients(hash)
192
- expect(actual.recipients.is_a?(Array)).to eq(true)
437
+ expect(actual.recipients).to be_a(Array)
193
438
  actual.recipients.each do |recipient|
194
439
  expect(
195
- recipient.is_a?(SendGrid4r::REST::Contacts::Recipients::Recipient)
196
- ).to eq(true)
440
+ recipient
441
+ ).to be_a(SendGrid4r::REST::Contacts::Recipients::Recipient)
197
442
  end
198
443
  end
199
444
  end
@@ -1,66 +1,87 @@
1
1
  # encoding: utf-8
2
2
  require File.dirname(__FILE__) + '/../spec_helper'
3
3
 
4
- describe 'SendGrid4r::REST::Contacts::ReservedFields' do
5
- before :all do
6
- Dotenv.load
7
- @client = SendGrid4r::Client.new(
8
- ENV['SENDGRID_USERNAME'], ENV['SENDGRID_PASSWORD'])
9
- @first_name =
10
- SendGrid4r::REST::Contacts::ReservedFields::Field.new(
11
- 'first_name', 'text'
12
- )
13
- @last_name =
14
- SendGrid4r::REST::Contacts::ReservedFields::Field.new(
15
- 'last_name', 'text'
16
- )
17
- @email =
18
- SendGrid4r::REST::Contacts::ReservedFields::Field.new(
19
- 'email', 'text'
20
- )
21
- @created_at =
22
- SendGrid4r::REST::Contacts::ReservedFields::Field.new(
23
- 'created_at', 'date'
24
- )
25
- @updated_at =
26
- SendGrid4r::REST::Contacts::ReservedFields::Field.new(
27
- 'updated_at', 'date'
28
- )
29
- @last_emailed =
30
- SendGrid4r::REST::Contacts::ReservedFields::Field.new(
31
- 'last_emailed', 'date'
32
- )
33
- @last_clicked =
34
- SendGrid4r::REST::Contacts::ReservedFields::Field.new(
35
- 'last_clicked', 'date'
36
- )
37
- @last_opened =
38
- SendGrid4r::REST::Contacts::ReservedFields::Field.new(
39
- 'last_opened', 'date'
40
- )
41
- end
4
+ describe SendGrid4r::REST::Contacts::ReservedFields 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
+ @first_name =
12
+ SendGrid4r::REST::Contacts::ReservedFields::Field.new(
13
+ 'first_name', 'text'
14
+ )
15
+ @last_name =
16
+ SendGrid4r::REST::Contacts::ReservedFields::Field.new(
17
+ 'last_name', 'text'
18
+ )
19
+ @email =
20
+ SendGrid4r::REST::Contacts::ReservedFields::Field.new(
21
+ 'email', 'text'
22
+ )
23
+ @created_at =
24
+ SendGrid4r::REST::Contacts::ReservedFields::Field.new(
25
+ 'created_at', 'date'
26
+ )
27
+ @updated_at =
28
+ SendGrid4r::REST::Contacts::ReservedFields::Field.new(
29
+ 'updated_at', 'date'
30
+ )
31
+ @last_emailed =
32
+ SendGrid4r::REST::Contacts::ReservedFields::Field.new(
33
+ 'last_emailed', 'date'
34
+ )
35
+ @last_clicked =
36
+ SendGrid4r::REST::Contacts::ReservedFields::Field.new(
37
+ 'last_clicked', 'date'
38
+ )
39
+ @last_opened =
40
+ SendGrid4r::REST::Contacts::ReservedFields::Field.new(
41
+ 'last_opened', 'date'
42
+ )
43
+ end
44
+
45
+ context 'without block call' do
46
+ it '#get_reserved_fields' do
47
+ begin
48
+ # get the reserved fields
49
+ fields = @client.get_reserved_fields
50
+ expect(fields.reserved_fields.length).to eq(8)
51
+ set = Set.new(fields.reserved_fields)
52
+ expect(set.include?(@first_name)).to eq(true)
53
+ expect(set.include?(@last_name)).to eq(true)
54
+ expect(set.include?(@email)).to eq(true)
55
+ expect(set.include?(@created_at)).to eq(true)
56
+ expect(set.include?(@updated_at)).to eq(true)
57
+ expect(set.include?(@last_emailed)).to eq(true)
58
+ expect(set.include?(@last_clicked)).to eq(true)
59
+ expect(set.include?(@last_opened)).to eq(true)
60
+ rescue => e
61
+ puts e.inspect
62
+ raise e
63
+ end
64
+ end
65
+ end
42
66
 
43
- context 'always' do
44
- it 'is normal' do
45
- begin
46
- # get the reserved fields
47
- fields = @client.get_reserved_fields
48
- expect(fields.reserved_fields.length).to eq(8)
49
- set = Set.new(fields.reserved_fields)
50
- expect(set.include?(@first_name)).to eq(true)
51
- expect(set.include?(@last_name)).to eq(true)
52
- expect(set.include?(@email)).to eq(true)
53
- expect(set.include?(@created_at)).to eq(true)
54
- expect(set.include?(@updated_at)).to eq(true)
55
- expect(set.include?(@last_emailed)).to eq(true)
56
- expect(set.include?(@last_clicked)).to eq(true)
57
- expect(set.include?(@last_opened)).to eq(true)
58
- rescue => e
59
- puts e.inspect
60
- raise e
67
+ context 'with block call' do
68
+ it '#get_reserved_fields' do
69
+ @client.get_reserved_fields do |resp, req, res|
70
+ resp =
71
+ SendGrid4r::REST::Contacts::ReservedFields.create_fields(
72
+ JSON.parse(resp)
73
+ )
74
+ expect(resp).to be_a(
75
+ SendGrid4r::REST::Contacts::ReservedFields::Fields
76
+ )
77
+ expect(req).to be_a(RestClient::Request)
78
+ expect(res).to be_a(Net::HTTPOK)
79
+ end
61
80
  end
62
81
  end
82
+ end
63
83
 
84
+ describe 'unit test' do
64
85
  it 'creates field instance' do
65
86
  json =
66
87
  '{'\
@@ -117,11 +138,10 @@ describe 'SendGrid4r::REST::Contacts::ReservedFields' do
117
138
  '}'
118
139
  hash = JSON.parse(json)
119
140
  actual = SendGrid4r::REST::Contacts::ReservedFields.create_fields(hash)
120
- expect(actual.reserved_fields.is_a?(Array)).to eq(true)
141
+ expect(actual).to be_a(SendGrid4r::REST::Contacts::ReservedFields::Fields)
142
+ expect(actual.reserved_fields).to be_a(Array)
121
143
  actual.reserved_fields.each do |field|
122
- expect(
123
- field.is_a?(SendGrid4r::REST::Contacts::ReservedFields::Field)
124
- ).to eq(true)
144
+ expect(field).to be_a(SendGrid4r::REST::Contacts::ReservedFields::Field)
125
145
  end
126
146
  end
127
147
  end