sendgrid4r 1.8.1 → 1.10.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 (145) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +6 -2
  3. data/README.md +1 -0
  4. data/lib/sendgrid4r/factory/campaign_factory.rb +18 -5
  5. data/lib/sendgrid4r/factory/condition_factory.rb +1 -1
  6. data/lib/sendgrid4r/factory/mail_factory.rb +57 -0
  7. data/lib/sendgrid4r/factory/segment_factory.rb +2 -5
  8. data/lib/sendgrid4r/factory/version_factory.rb +1 -1
  9. data/lib/sendgrid4r/rest/api.rb +48 -49
  10. data/lib/sendgrid4r/rest/api_keys_management/api_keys.rb +75 -0
  11. data/lib/sendgrid4r/rest/api_keys_management/permissions.rb +31 -0
  12. data/lib/sendgrid4r/rest/blocks.rb +49 -68
  13. data/lib/sendgrid4r/rest/bounces.rb +45 -64
  14. data/lib/sendgrid4r/rest/cancel_scheduled_sends.rb +53 -72
  15. data/lib/sendgrid4r/rest/categories.rb +31 -0
  16. data/lib/sendgrid4r/rest/email_activity.rb +72 -0
  17. data/lib/sendgrid4r/rest/invalid_emails.rb +50 -68
  18. data/lib/sendgrid4r/rest/ip_access_management.rb +86 -111
  19. data/lib/sendgrid4r/rest/ips/addresses.rb +50 -59
  20. data/lib/sendgrid4r/rest/ips/pools.rb +42 -53
  21. data/lib/sendgrid4r/rest/ips/warmup.rb +46 -55
  22. data/lib/sendgrid4r/rest/mail/address.rb +14 -0
  23. data/lib/sendgrid4r/rest/mail/attachment.rb +22 -0
  24. data/lib/sendgrid4r/rest/mail/content.rb +10 -0
  25. data/lib/sendgrid4r/rest/mail/mail.rb +28 -0
  26. data/lib/sendgrid4r/rest/mail/mail_settings.rb +62 -0
  27. data/lib/sendgrid4r/rest/mail/params.rb +64 -0
  28. data/lib/sendgrid4r/rest/mail/personalization.rb +33 -0
  29. data/lib/sendgrid4r/rest/mail/tracking_settings.rb +74 -0
  30. data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/custom_fields.rb +12 -27
  31. data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/lists.rb +20 -34
  32. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/recipients.rb +134 -0
  33. data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/reserved_fields.rb +6 -9
  34. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/segments.rb +86 -0
  35. data/lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb +119 -0
  36. data/lib/sendgrid4r/rest/marketing_campaigns/senders.rb +101 -0
  37. data/lib/sendgrid4r/rest/request.rb +61 -63
  38. data/lib/sendgrid4r/rest/settings/enforced_tls.rb +23 -26
  39. data/lib/sendgrid4r/rest/settings/mail.rb +167 -183
  40. data/lib/sendgrid4r/rest/settings/partner.rb +33 -36
  41. data/lib/sendgrid4r/rest/settings/settings.rb +17 -22
  42. data/lib/sendgrid4r/rest/settings/tracking.rb +97 -107
  43. data/lib/sendgrid4r/rest/sm/global_unsubscribes.rb +52 -60
  44. data/lib/sendgrid4r/rest/sm/groups.rb +52 -58
  45. data/lib/sendgrid4r/rest/sm/sm.rb +15 -17
  46. data/lib/sendgrid4r/rest/sm/suppressions.rb +50 -67
  47. data/lib/sendgrid4r/rest/spam_reports.rb +49 -69
  48. data/lib/sendgrid4r/rest/stats/advanced.rb +100 -102
  49. data/lib/sendgrid4r/rest/stats/category.rb +31 -33
  50. data/lib/sendgrid4r/rest/stats/global.rb +17 -19
  51. data/lib/sendgrid4r/rest/stats/parse.rb +18 -20
  52. data/lib/sendgrid4r/rest/stats/stats.rb +59 -69
  53. data/lib/sendgrid4r/rest/stats/subuser.rb +70 -32
  54. data/lib/sendgrid4r/rest/subusers.rb +106 -134
  55. data/lib/sendgrid4r/rest/transactional_templates/templates.rb +63 -0
  56. data/lib/sendgrid4r/rest/transactional_templates/versions.rb +90 -0
  57. data/lib/sendgrid4r/rest/users.rb +125 -57
  58. data/lib/sendgrid4r/rest/webhooks/event.rb +36 -42
  59. data/lib/sendgrid4r/rest/webhooks/parse.rb +28 -37
  60. data/lib/sendgrid4r/rest/whitelabel/domains.rb +176 -222
  61. data/lib/sendgrid4r/rest/whitelabel/ips.rb +107 -128
  62. data/lib/sendgrid4r/rest/whitelabel/links.rb +131 -167
  63. data/lib/sendgrid4r/version.rb +1 -1
  64. data/lib/sendgrid4r.rb +23 -13
  65. data/sendgrid4r.gemspec +1 -1
  66. data/spec/client_spec.rb +12 -1
  67. data/spec/factory/campaign_factory_spec.rb +75 -35
  68. data/spec/factory/condition_factory_spec.rb +19 -18
  69. data/spec/factory/segment_factory_spec.rb +28 -21
  70. data/spec/factory/version_factory_spec.rb +28 -27
  71. data/spec/photo.jpg +0 -0
  72. data/spec/rest/api_keys_management/api_keys_spec.rb +174 -0
  73. data/spec/rest/api_keys_management/permissions_spec.rb +54 -0
  74. data/spec/rest/blocks_spec.rb +78 -106
  75. data/spec/rest/bounces_spec.rb +91 -118
  76. data/spec/rest/cancel_scheduled_sends_spec.rb +94 -149
  77. data/spec/rest/categories_spec.rb +77 -0
  78. data/spec/rest/email_activity_spec.rb +151 -0
  79. data/spec/rest/invalid_emails_spec.rb +85 -119
  80. data/spec/rest/ip_access_management_spec.rb +157 -195
  81. data/spec/rest/ips/addresses_spec.rb +94 -122
  82. data/spec/rest/ips/pools_spec.rb +84 -112
  83. data/spec/rest/ips/warmup_spec.rb +63 -71
  84. data/spec/rest/mail/address_spec.rb +28 -0
  85. data/spec/rest/mail/attachment_spec.rb +48 -0
  86. data/spec/rest/mail/content_spec.rb +32 -0
  87. data/spec/rest/mail/mail_settings_spec.rb +51 -0
  88. data/spec/rest/mail/mail_spec.rb +136 -0
  89. data/spec/rest/mail/params_spec.rb +152 -0
  90. data/spec/rest/mail/personalization_spec.rb +66 -0
  91. data/spec/rest/mail/tracking_settings_spec.rb +63 -0
  92. data/spec/rest/marketing_campaigns/contacts/custom_fields_spec.rb +146 -0
  93. data/spec/rest/marketing_campaigns/contacts/lists_spec.rb +307 -0
  94. data/spec/rest/marketing_campaigns/contacts/recipients_spec.rb +331 -0
  95. data/spec/rest/marketing_campaigns/contacts/reserved_fields_spec.rb +119 -0
  96. data/spec/rest/marketing_campaigns/contacts/segments_spec.rb +268 -0
  97. data/spec/rest/marketing_campaigns/marketing_campaigns_spec.rb +427 -0
  98. data/spec/rest/marketing_campaigns/senders_spec.rb +230 -0
  99. data/spec/rest/settings/enforced_tls_spec.rb +38 -54
  100. data/spec/rest/settings/mail_spec.rb +227 -330
  101. data/spec/rest/settings/partner_spec.rb +40 -59
  102. data/spec/rest/settings/settings_spec.rb +44 -42
  103. data/spec/rest/settings/tracking_spec.rb +130 -189
  104. data/spec/rest/sm/global_unsubscribes_spec.rb +47 -72
  105. data/spec/rest/sm/groups_spec.rb +88 -123
  106. data/spec/rest/sm/sm_spec.rb +32 -30
  107. data/spec/rest/sm/suppressions_spec.rb +105 -140
  108. data/spec/rest/spam_reports_spec.rb +81 -109
  109. data/spec/rest/stats/advanced_spec.rb +67 -125
  110. data/spec/rest/stats/category_spec.rb +27 -45
  111. data/spec/rest/stats/global_spec.rb +34 -42
  112. data/spec/rest/stats/parse_spec.rb +32 -30
  113. data/spec/rest/stats/stats_spec.rb +174 -172
  114. data/spec/rest/stats/subuser_spec.rb +97 -57
  115. data/spec/rest/subusers_spec.rb +156 -209
  116. data/spec/rest/transactional_templates/templates_spec.rb +199 -0
  117. data/spec/rest/transactional_templates/versions_spec.rb +228 -0
  118. data/spec/rest/users_spec.rb +176 -91
  119. data/spec/rest/webhooks/event_spec.rb +59 -85
  120. data/spec/rest/webhooks/parse_spec.rb +51 -71
  121. data/spec/rest/whitelabel/domains_spec.rb +333 -513
  122. data/spec/rest/whitelabel/ips_spec.rb +109 -147
  123. data/spec/rest/whitelabel/links_spec.rb +181 -265
  124. metadata +70 -40
  125. data/lib/sendgrid4r/rest/api_keys/api_keys.rb +0 -80
  126. data/lib/sendgrid4r/rest/api_keys/permissions.rb +0 -33
  127. data/lib/sendgrid4r/rest/campaigns/campaigns.rb +0 -126
  128. data/lib/sendgrid4r/rest/categories/categories.rb +0 -43
  129. data/lib/sendgrid4r/rest/contacts/recipients.rb +0 -150
  130. data/lib/sendgrid4r/rest/contacts/segments.rb +0 -97
  131. data/lib/sendgrid4r/rest/email_activity/email_activity.rb +0 -81
  132. data/lib/sendgrid4r/rest/templates/templates.rb +0 -69
  133. data/lib/sendgrid4r/rest/templates/versions.rb +0 -95
  134. data/spec/rest/api_keys/api_keys_spec.rb +0 -210
  135. data/spec/rest/api_keys/permissions_spec.rb +0 -65
  136. data/spec/rest/campaigns/campaigns_spec.rb +0 -492
  137. data/spec/rest/categories/categories_spec.rb +0 -96
  138. data/spec/rest/contacts/custom_fields_spec.rb +0 -174
  139. data/spec/rest/contacts/lists_spec.rb +0 -372
  140. data/spec/rest/contacts/recipients_spec.rb +0 -343
  141. data/spec/rest/contacts/reserved_fields_spec.rb +0 -146
  142. data/spec/rest/contacts/segments_spec.rb +0 -307
  143. data/spec/rest/email_activity/email_activity_spec.rb +0 -179
  144. data/spec/rest/templates/templates_spec.rb +0 -222
  145. data/spec/rest/templates/versions_spec.rb +0 -252
@@ -1,492 +0,0 @@
1
- # encoding: utf-8
2
- require File.dirname(__FILE__) + '/../../spec_helper'
3
-
4
- describe SendGrid4r::REST::Campaigns::Campaigns do
5
- describe 'integration test', :it do
6
- before do
7
- begin
8
- Dotenv.load
9
- @client = SendGrid4r::Client.new(api_key: ENV['KN_API_KEY'])
10
- @title1 = 'Test Title1'
11
- @title2 = 'Test Title2'
12
- @title1_edit = 'Edit Title1'
13
- @subject1 = 'Subject1'
14
- @subject2 = 'Subject2'
15
-
16
- @email1 = 'test@example.com'
17
- @last_name1 = 'Last Name1'
18
- @list_name1 = 'List Name1'
19
- @group_name1 = 'Group Name1'
20
- @pool_name1 = 'pool_test1'
21
-
22
- # celan up test env
23
- # delete campaigns
24
- campaigns = @client.get_campaigns
25
- campaigns.result.each do |campaign|
26
- @client.delete_campaign(
27
- campaign_id: campaign.id
28
- ) if campaign.title == @title1
29
- @client.delete_campaign(
30
- campaign_id: campaign.id
31
- ) if campaign.title == @title2
32
- @client.delete_campaign(
33
- campaign_id: campaign.id
34
- ) if campaign.title == @title1_edit
35
- end
36
- # delete recipients
37
- recipients = @client.get_recipients
38
- recipients.recipients.each do |recipient|
39
- next if recipient.email != @email1
40
- @client.delete_recipient(recipient_id: recipient.id)
41
- end
42
- # delete lists
43
- lists = @client.get_lists
44
- lists.lists.each do |list|
45
- next if list.name != @list_name1
46
- @client.delete_list(list_id: list.id)
47
- end
48
- # delete suppression groups
49
- grps = @client.get_groups
50
- grps.each do |grp|
51
- next if grp.name != @group_name1
52
- @client.delete_group(group_id: grp.id)
53
- end
54
- # delete ip pools
55
- pools = @client.get_pools
56
- pools.each do |pool|
57
- @client.delete_pool(name: pool.name) if pool.name == @pool_name1
58
- end
59
- # post a recipient
60
- recipient1 = {}
61
- recipient1['email'] = @email1
62
- recipient1['last_name'] = @last_name1
63
- @result = @client.post_recipients(params: [recipient1])
64
- # post a list
65
- @list1 = @client.post_list(name: @list_name1)
66
- # add a recipient to the list
67
- @client.post_recipient_to_list(
68
- list_id: @list1.id, recipient_id: @result.persisted_recipients[0]
69
- )
70
- # add a group
71
- @group1 = @client.post_group(name: @group_name1, description: 'test')
72
- # add an ip pool
73
- @pool1 = @client.post_pool(name: @pool_name1)
74
- # add a campaign
75
- @campaign_factory = SendGrid4r::Factory::CampaignFactory.new
76
- @params = @campaign_factory.create(
77
- title: @title1, subject: @subject1, sender_id: 516,
78
- list_ids: [@list1.id], categories: ['cat1'],
79
- suppression_group_id: @group1.id,
80
- html_content: 'html <a href="[unsubscribe]">unsub</a>',
81
- plain_content: 'plain [unsubscribe]')
82
- @campaign1 = @client.post_campaign(params: @params)
83
- rescue RestClient::ExceptionWithResponse => e
84
- puts e.inspect
85
- raise e
86
- end
87
- end
88
-
89
- context 'without block call' do
90
- it '#post_campaign' do
91
- begin
92
- params = @campaign_factory.create(
93
- title: @title2, subject: @subject2, sender_id: 516,
94
- list_ids: [@list1.id], categories: ['cat1'],
95
- suppression_group_id: @group1.id, html_content: 'html',
96
- plain_content: 'plain')
97
- campaign2 = @client.post_campaign(params: params)
98
- expect(campaign2.title).to eq(@title2)
99
- expect(campaign2.subject).to eq(@subject2)
100
- expect(campaign2.sender_id).to eq(516)
101
- expect(campaign2.list_ids).to eq([@list1.id])
102
- expect(campaign2.categories).to eq(['cat1'])
103
- expect(campaign2.suppression_group_id).to eq(@group1.id)
104
- expect(campaign2.html_content).to eq('html')
105
- expect(campaign2.plain_content).to eq('plain')
106
- rescue RestClient::ExceptionWithResponse => e
107
- puts e.inspect
108
- raise e
109
- end
110
- end
111
-
112
- it '#post_campaign with custom_unsubscribe_url' do
113
- begin
114
- params = @campaign_factory.create(
115
- title: @title2, subject: @subject2, sender_id: 516,
116
- list_ids: [@list1.id], categories: ['cat1'],
117
- custom_unsubscribe_url: 'https://sendgrid.com',
118
- ip_pool: @pool_name1, html_content: 'html', plain_content: 'plain')
119
- campaign2 = @client.post_campaign(params: params)
120
- expect(campaign2.title).to eq(@title2)
121
- expect(campaign2.subject).to eq(@subject2)
122
- expect(campaign2.sender_id).to eq(516)
123
- expect(campaign2.list_ids).to eq([@list1.id])
124
- expect(campaign2.categories).to eq(['cat1'])
125
- expect(campaign2.html_content).to eq('html')
126
- expect(campaign2.plain_content).to eq('plain')
127
- rescue RestClient::ExceptionWithResponse => e
128
- puts e.inspect
129
- raise e
130
- end
131
- end
132
-
133
- it '#get_campaigns' do
134
- begin
135
- campaigns = @client.get_campaigns
136
- expect(campaigns.length).to be >= 1
137
- campaigns.result.each do |campaign|
138
- next if campaign.title != @title1
139
- expect(campaign.title).to eq(@title1)
140
- end
141
- rescue RestClient::ExceptionWithResponse => e
142
- puts e.inspect
143
- raise e
144
- end
145
- end
146
-
147
- it '#get_campaign' do
148
- begin
149
- campaign = @client.get_campaign(campaign_id: @campaign1.id)
150
- expect(campaign).to eq(@campaign1)
151
- rescue RestClient::ExceptionWithResponse => e
152
- puts e.inspect
153
- raise e
154
- end
155
- end
156
-
157
- it '#delete_campaign' do
158
- begin
159
- @client.delete_campaign(campaign_id: @campaign1.id)
160
- expect do
161
- @client.delete_campaign(campaign_id: @campaign1.id)
162
- end.to raise_error(RestClient::ResourceNotFound)
163
- rescue RestClient::ExceptionWithResponse => e
164
- puts e.inspect
165
- raise e
166
- end
167
- end
168
-
169
- it '#patch_campaign' do
170
- begin
171
- @campaign1.title = @title1_edit
172
- actual = @client.patch_campaign(
173
- campaign_id: @campaign1.id, params: @campaign1
174
- )
175
- expect(actual.title).to eq(@title1_edit)
176
- rescue RestClient::ExceptionWithResponse => e
177
- puts e.inspect
178
- raise e
179
- end
180
- end
181
-
182
- it '#send_campaign' do
183
- begin
184
- actual = @client.send_campaign(campaign_id: @campaign1.id)
185
- expect(actual.id).to eq(@campaign1.id)
186
- expect(actual.status).to eq('Scheduled')
187
- rescue RestClient::ExceptionWithResponse => e
188
- puts e.inspect
189
- raise e
190
- end
191
- end
192
-
193
- it '#schedule_campaign' do
194
- begin
195
- send_at = Time.at(Time.now.to_i, 0)
196
- actual = @client.schedule_campaign(
197
- campaign_id: @campaign1.id,
198
- send_at: send_at
199
- )
200
- expect(actual.id).to eq(@campaign1.id)
201
- expect(actual.status).to eq('Scheduled')
202
- expect(actual.send_at).to eq(send_at)
203
- rescue RestClient::ExceptionWithResponse => e
204
- puts e.inspect
205
- raise e
206
- end
207
- end
208
-
209
- it '#reschedule_campaign' do
210
- begin
211
- send_at = Time.at(Time.now.to_i, 0)
212
- @client.schedule_campaign(
213
- campaign_id: @campaign1.id,
214
- send_at: send_at
215
- )
216
- send_at = Time.at(Time.now.to_i, 0)
217
- actual = @client.reschedule_campaign(
218
- campaign_id: @campaign1.id,
219
- send_at: send_at
220
- )
221
- expect(actual.id).to eq(@campaign1.id)
222
- expect(actual.status).to eq('Scheduled')
223
- expect(actual.send_at).to eq(send_at)
224
- rescue RestClient::ExceptionWithResponse => e
225
- puts e.inspect
226
- raise e
227
- end
228
- end
229
-
230
- it '#get_schedule_time_campaign' do
231
- begin
232
- send_at = Time.at(Time.now.to_i, 0)
233
- @client.schedule_campaign(
234
- campaign_id: @campaign1.id,
235
- send_at: send_at
236
- )
237
- actual = @client.get_schedule_time_campaign(
238
- campaign_id: @campaign1.id
239
- )
240
- expect(actual.send_at).to eq(send_at)
241
- rescue RestClient::ExceptionWithResponse => e
242
- puts e.inspect
243
- raise e
244
- end
245
- end
246
-
247
- it '#unschedule_campaign' do
248
- begin
249
- send_at = Time.at(Time.now.to_i, 0)
250
- @client.schedule_campaign(
251
- campaign_id: @campaign1.id, send_at: send_at
252
- )
253
- @client.unschedule_campaign(campaign_id: @campaign1.id)
254
- rescue RestClient::ExceptionWithResponse => e
255
- puts e.inspect
256
- raise e
257
- end
258
- end
259
-
260
- it '#test_campaign' do
261
- begin
262
- @client.test_campaign(campaign_id: @campaign1.id, to: ENV['MAIL'])
263
- rescue RestClient::ExceptionWithResponse => e
264
- puts e.inspect
265
- raise e
266
- end
267
- end
268
- end
269
- end
270
-
271
- describe 'unit test', :ut do
272
- let(:client) do
273
- SendGrid4r::Client.new(api_key: '')
274
- end
275
-
276
- let(:campaign) do
277
- JSON.parse(
278
- '{'\
279
- '"id": 986724,'\
280
- '"title": "March Newsletter",'\
281
- '"subject": "New Products for Spring!",'\
282
- '"sender_id": 124451,'\
283
- '"list_ids": ['\
284
- '110,'\
285
- '124'\
286
- '],'\
287
- '"segment_ids": ['\
288
- '110'\
289
- '],'\
290
- '"categories": ['\
291
- '"spring line"'\
292
- '],'\
293
- '"suppression_group_id": 42,'\
294
- '"custom_unsubscribe_url": "",'\
295
- '"ip_pool": "marketing",'\
296
- '"html_content": "<html><head><title></title></head><body>'\
297
- '<p>Check out our spring line!</p></body></html>",'\
298
- '"plain_content": "Check out our spring line!",'\
299
- '"status": "Draft"'\
300
- '}'
301
- )
302
- end
303
-
304
- let(:campaigns) do
305
- JSON.parse(
306
- '{'\
307
- '"result": ['\
308
- '{'\
309
- '"id": 986724,'\
310
- '"title": "March Newsletter",'\
311
- '"subject": "New Products for Spring!",'\
312
- '"sender_id": 124451,'\
313
- '"list_ids": ['\
314
- '110,'\
315
- '124'\
316
- '],'\
317
- '"segment_ids": ['\
318
- '110'\
319
- '],'\
320
- '"categories": ['\
321
- '"spring line"'\
322
- '],'\
323
- '"suppression_group_id": 42,'\
324
- '"custom_unsubscribe_url": "",'\
325
- '"ip_pool": "marketing",'\
326
- '"html_content": "<html><head><title></title></head><body>'\
327
- '<p>Check out our spring line!</p></body></html>",'\
328
- '"plain_content": "Check out our spring line!",'\
329
- '"status": "Draft"'\
330
- '},'\
331
- '{'\
332
- '"id": 986723,'\
333
- '"title": "February Newsletter",'\
334
- '"subject": "Final Winter Product Sale!",'\
335
- '"sender_id": 124451,'\
336
- '"list_ids": ['\
337
- '110,'\
338
- '124'\
339
- '],'\
340
- '"segment_ids": ['\
341
- '110'\
342
- '],'\
343
- '"categories": ['\
344
- '"winter line"'\
345
- '],'\
346
- '"suppression_group_id": 42,'\
347
- '"custom_unsubscribe_url": "",'\
348
- '"ip_pool": "marketing",'\
349
- '"html_content": "<html><head><title></title></head><body>'\
350
- '<p>Last call for winter clothes!</p></body></html>",'\
351
- '"plain_content": "Last call for winter clothes!",'\
352
- '"status": "Sent"'\
353
- '}'\
354
- ']'\
355
- '}'
356
- )
357
- end
358
-
359
- let(:sent) do
360
- JSON.parse(
361
- '{'\
362
- '"id": 986724,'\
363
- '"status": "Scheduled"'\
364
- '}'
365
- )
366
- end
367
-
368
- let(:schedule) do
369
- JSON.parse(
370
- '{'\
371
- '"id": 986724,'\
372
- '"send_at": 1489771528,'\
373
- '"status": "Scheduled"'\
374
- '}'
375
- )
376
- end
377
-
378
- it '#post_campaign' do
379
- allow(client).to receive(:execute).and_return(campaign)
380
- actual = client.post_campaign(params: nil)
381
- expect(actual).to be_a(SendGrid4r::REST::Campaigns::Campaigns::Campaign)
382
- end
383
-
384
- it '#get_campaigns' do
385
- allow(client).to receive(:execute).and_return(campaigns)
386
- actual = client.get_campaigns
387
- expect(actual).to be_a(
388
- SendGrid4r::REST::Campaigns::Campaigns::Campaigns
389
- )
390
- end
391
-
392
- it '#get_campaign' do
393
- allow(client).to receive(:execute).and_return(campaign)
394
- actual = client.get_campaign(campaign_id: 0)
395
- expect(actual).to be_a(SendGrid4r::REST::Campaigns::Campaigns::Campaign)
396
- end
397
-
398
- it '#delete_campaign' do
399
- allow(client).to receive(:execute).and_return('')
400
- client.delete_campaign(campaign_id: 0)
401
- end
402
-
403
- it '#patch_campaign' do
404
- allow(client).to receive(:execute).and_return(campaign)
405
- actual = client.patch_campaign(campaign_id: 0, params: nil)
406
- expect(actual).to be_a(SendGrid4r::REST::Campaigns::Campaigns::Campaign)
407
- end
408
-
409
- it '#send_campaign' do
410
- allow(client).to receive(:execute).and_return(sent)
411
- actual = client.send_campaign(campaign_id: 0)
412
- expect(actual).to be_a(SendGrid4r::REST::Campaigns::Campaigns::Campaign)
413
- end
414
-
415
- it '#schedule_campaign' do
416
- allow(client).to receive(:execute).and_return(schedule)
417
- actual = client.schedule_campaign(campaign_id: 0, send_at: nil)
418
- expect(actual).to be_a(SendGrid4r::REST::Campaigns::Campaigns::Campaign)
419
- end
420
-
421
- it '#reschedule_campaign' do
422
- allow(client).to receive(:execute).and_return(schedule)
423
- actual = client.reschedule_campaign(campaign_id: 0, send_at: nil)
424
- expect(actual).to be_a(SendGrid4r::REST::Campaigns::Campaigns::Campaign)
425
- end
426
-
427
- it '#get_schedule_time_campaign' do
428
- allow(client).to receive(:execute).and_return(schedule)
429
- actual = client.get_schedule_time_campaign(campaign_id: 0)
430
- expect(actual).to be_a(SendGrid4r::REST::Campaigns::Campaigns::Campaign)
431
- end
432
-
433
- it '#unschedule_campaign' do
434
- allow(client).to receive(:execute).and_return('')
435
- actual = client.unschedule_campaign(campaign_id: 0)
436
- expect(actual).to eq('')
437
- end
438
-
439
- it '#test_campaign' do
440
- allow(client).to receive(:execute).and_return('')
441
- actual = client.test_campaign(campaign_id: 0, to: '')
442
- expect(actual).to eq('')
443
- end
444
-
445
- it 'creates campaign instance' do
446
- actual = SendGrid4r::REST::Campaigns::Campaigns.create_campaign(campaign)
447
- expect(actual).to be_a(SendGrid4r::REST::Campaigns::Campaigns::Campaign)
448
- expect(actual.id).to eq(986724)
449
- expect(actual.title).to eq('March Newsletter')
450
- expect(actual.subject).to eq('New Products for Spring!')
451
- expect(actual.sender_id).to eq(124451)
452
- expect(actual.list_ids).to eq([110, 124])
453
- expect(actual.segment_ids).to eq([110])
454
- expect(actual.categories).to eq(['spring line'])
455
- expect(actual.suppression_group_id).to eq(42)
456
- expect(actual.custom_unsubscribe_url).to eq('')
457
- expect(actual.ip_pool).to eq('marketing')
458
- expect(actual.html_content).to eq(
459
- '<html><head><title></title></head><body>'\
460
- '<p>Check out our spring line!</p></body></html>')
461
- expect(actual.plain_content).to eq('Check out our spring line!')
462
- expect(actual.status).to eq('Draft')
463
- end
464
-
465
- it 'creates campaigns instance' do
466
- actual = SendGrid4r::REST::Campaigns::Campaigns.create_campaigns(
467
- campaigns
468
- )
469
- expect(actual).to be_a(SendGrid4r::REST::Campaigns::Campaigns::Campaigns)
470
- actual.result.each do |campaign|
471
- expect(campaign).to be_a(
472
- SendGrid4r::REST::Campaigns::Campaigns::Campaign
473
- )
474
- end
475
- end
476
-
477
- it 'creates sent instance' do
478
- actual = SendGrid4r::REST::Campaigns::Campaigns.create_campaign(sent)
479
- expect(actual).to be_a(SendGrid4r::REST::Campaigns::Campaigns::Campaign)
480
- expect(actual.id).to eq(986724)
481
- expect(actual.status).to eq('Scheduled')
482
- end
483
-
484
- it 'creates schedule instance' do
485
- actual = SendGrid4r::REST::Campaigns::Campaigns.create_campaign(schedule)
486
- expect(actual).to be_a(SendGrid4r::REST::Campaigns::Campaigns::Campaign)
487
- expect(actual.id).to eq(986724)
488
- expect(actual.send_at).to eq(Time.at(1489771528))
489
- expect(actual.status).to eq('Scheduled')
490
- end
491
- end
492
- end
@@ -1,96 +0,0 @@
1
- # encoding: utf-8
2
- require File.dirname(__FILE__) + '/../../spec_helper'
3
-
4
- describe SendGrid4r::REST::Categories do
5
- describe 'integration test', :it do
6
- before do
7
- Dotenv.load
8
- @client = SendGrid4r::Client.new(api_key: ENV['API_KEY'])
9
- end
10
-
11
- context 'without block call' do
12
- it '#get_categories if no params' do
13
- begin
14
- categories = @client.get_categories
15
- expect(categories.length).to be >= 0
16
- categories.each do |category|
17
- expect(category.category).to be_a(String)
18
- end
19
- rescue RestClient::ExceptionWithResponse => e
20
- puts e.inspect
21
- raise e
22
- end
23
- end
24
-
25
- it '#get_categories if name was specified' do
26
- begin
27
- categories = @client.get_categories(category: 'Newsletter')
28
- expect(categories.length).to eq(1)
29
- categories.each do |category|
30
- expect(category.category).to eq('Newsletter')
31
- end
32
- rescue RestClient::ExceptionWithResponse => e
33
- puts e.inspect
34
- raise e
35
- end
36
- end
37
-
38
- it '#get_categories if offset & limit were specified' do
39
- begin
40
- categories = @client.get_categories(
41
- category: nil, limit: 5, offset: 2
42
- )
43
- expect(categories.length).to be > 0
44
- categories.each do |category|
45
- expect(category.category).to be_a(String)
46
- end
47
- rescue RestClient::ExceptionWithResponse => e
48
- puts e.inspect
49
- raise e
50
- end
51
- end
52
- end
53
- end
54
-
55
- describe 'unit test', :ut do
56
- let(:client) do
57
- SendGrid4r::Client.new(api_key: '')
58
- end
59
-
60
- let(:categories) do
61
- JSON.parse(
62
- '['\
63
- '{"category": "cat1"},'\
64
- '{"category": "cat2"},'\
65
- '{"category": "cat3"},'\
66
- '{"category": "cat4"},'\
67
- '{"category": "cat5"}'\
68
- ']'
69
- )
70
- end
71
-
72
- it '#get_categories' do
73
- allow(client).to receive(:execute).and_return(categories)
74
- actual = client.get_categories
75
- expect(actual).to be_a(Array)
76
- actual.each do |category|
77
- expect(category).to be_a(
78
- SendGrid4r::REST::Categories::Categories::Category
79
- )
80
- end
81
- end
82
-
83
- it 'creates categories instance' do
84
- actual = SendGrid4r::REST::Categories::Categories.create_categories(
85
- categories
86
- )
87
- expect(actual).to be_a(Array)
88
- actual.each do |category|
89
- expect(category).to be_a(
90
- SendGrid4r::REST::Categories::Categories::Category
91
- )
92
- expect(category.category).to be_a(String)
93
- end
94
- end
95
- end
96
- end