sendgrid-ruby 1.1.6 → 6.6.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (160) hide show
  1. checksums.yaml +5 -5
  2. data/.env_sample +1 -3
  3. data/.github/ISSUE_TEMPLATE/config.yml +10 -0
  4. data/.github/workflows/test-and-deploy.yml +120 -0
  5. data/.gitignore +3 -0
  6. data/.rubocop.yml +5 -27
  7. data/.rubocop_todo.yml +127 -0
  8. data/CHANGELOG.md +417 -1
  9. data/CODE_OF_CONDUCT.md +73 -0
  10. data/CONTRIBUTING.md +202 -0
  11. data/Dockerfile +14 -0
  12. data/FIRST_TIMERS.md +79 -0
  13. data/Gemfile +4 -4
  14. data/ISSUE_TEMPLATE.md +30 -0
  15. data/LICENSE +21 -0
  16. data/Makefile +14 -0
  17. data/PULL_REQUEST_TEMPLATE.md +31 -0
  18. data/README.md +153 -229
  19. data/Rakefile +9 -3
  20. data/TROUBLESHOOTING.md +151 -0
  21. data/UPGRADE.md +5 -0
  22. data/USAGE.md +5144 -0
  23. data/config.ru +4 -0
  24. data/examples/accesssettings/accesssettings.rb +80 -0
  25. data/examples/alerts/alerts.rb +59 -0
  26. data/examples/apikeys/apikeys.rb +81 -0
  27. data/examples/asm/asm.rb +170 -0
  28. data/examples/browsers/browsers.rb +13 -0
  29. data/examples/campaigns/campaigns.rb +150 -0
  30. data/examples/categories/categories.rb +33 -0
  31. data/examples/clients/clients.rb +24 -0
  32. data/examples/contactdb/contactdb.rb +392 -0
  33. data/examples/devices/devices.rb +13 -0
  34. data/examples/emailactivity/emailactivity.rb +52 -0
  35. data/examples/geo/geo.rb +13 -0
  36. data/examples/helpers/eventwebhook/example.rb +16 -0
  37. data/examples/helpers/mail/example.rb +158 -0
  38. data/examples/helpers/settings/example.rb +23 -0
  39. data/examples/helpers/stats/example.rb +42 -0
  40. data/examples/ips/ips.rb +164 -0
  41. data/examples/mail/mail.rb +170 -0
  42. data/examples/mailboxproviders/mailboxproviders.rb +13 -0
  43. data/examples/mailsettings/mailsettings.rb +216 -0
  44. data/examples/partnersettings/partnersettings.rb +36 -0
  45. data/examples/scopes/scopes.rb +59 -0
  46. data/examples/senderauthentication/senderauthentication.rb +307 -0
  47. data/examples/senders/senders.rb +95 -0
  48. data/examples/stats/stats.rb +13 -0
  49. data/examples/subusers/subusers.rb +166 -0
  50. data/examples/suppression/suppression.rb +198 -0
  51. data/examples/templates/templates.rb +127 -0
  52. data/examples/trackingsettings/trackingsettings.rb +107 -0
  53. data/examples/user/user.rb +290 -0
  54. data/gemfiles/Sinatra_1.gemfile +6 -0
  55. data/gemfiles/Sinatra_2.gemfile +6 -0
  56. data/lib/rack/sendgrid_webhook_verification.rb +55 -0
  57. data/lib/sendgrid/base_interface.rb +40 -0
  58. data/lib/sendgrid/helpers/eventwebhook/eventwebhook.rb +50 -0
  59. data/lib/sendgrid/helpers/inbound/README.md +98 -0
  60. data/lib/sendgrid/helpers/inbound/app.rb +32 -0
  61. data/lib/sendgrid/helpers/inbound/config.yml +26 -0
  62. data/lib/sendgrid/helpers/inbound/public/index.html +10 -0
  63. data/lib/sendgrid/helpers/inbound/sample_data/default_data.txt +58 -0
  64. data/lib/sendgrid/helpers/inbound/sample_data/raw_data.txt +57 -0
  65. data/lib/sendgrid/helpers/inbound/sample_data/raw_data_with_attachments.txt +298 -0
  66. data/lib/sendgrid/helpers/inbound/send.rb +26 -0
  67. data/lib/sendgrid/helpers/ip_management/ip_management.rb +17 -0
  68. data/lib/sendgrid/helpers/mail/README.md +14 -0
  69. data/lib/sendgrid/helpers/mail/asm.rb +19 -0
  70. data/lib/sendgrid/helpers/mail/attachment.rb +55 -0
  71. data/lib/sendgrid/helpers/mail/bcc_settings.rb +19 -0
  72. data/lib/sendgrid/helpers/mail/bypass_list_management.rb +31 -0
  73. data/lib/sendgrid/helpers/mail/category.rb +18 -0
  74. data/lib/sendgrid/helpers/mail/click_tracking.rb +19 -0
  75. data/lib/sendgrid/helpers/mail/content.rb +19 -0
  76. data/lib/sendgrid/helpers/mail/custom_arg.rb +18 -0
  77. data/lib/sendgrid/helpers/mail/email.rb +32 -0
  78. data/lib/sendgrid/helpers/mail/footer.rb +21 -0
  79. data/lib/sendgrid/helpers/mail/ganalytics.rb +28 -0
  80. data/lib/sendgrid/helpers/mail/header.rb +18 -0
  81. data/lib/sendgrid/helpers/mail/mail.rb +122 -0
  82. data/lib/sendgrid/helpers/mail/mail_settings.rb +45 -0
  83. data/lib/sendgrid/helpers/mail/open_tracking.rb +19 -0
  84. data/lib/sendgrid/helpers/mail/personalization.rb +93 -0
  85. data/lib/sendgrid/helpers/mail/section.rb +18 -0
  86. data/lib/sendgrid/helpers/mail/spam_check.rb +21 -0
  87. data/lib/sendgrid/helpers/mail/subscription_tracking.rb +23 -0
  88. data/lib/sendgrid/helpers/mail/substitution.rb +18 -0
  89. data/lib/sendgrid/helpers/mail/tracking_settings.rb +39 -0
  90. data/lib/sendgrid/helpers/permissions/scope.rb +28 -0
  91. data/lib/sendgrid/helpers/permissions/scopes.yml +309 -0
  92. data/lib/sendgrid/helpers/settings/README.md +14 -0
  93. data/lib/sendgrid/helpers/settings/mail_settings_dto.rb +13 -0
  94. data/lib/sendgrid/helpers/settings/partner_settings_dto.rb +13 -0
  95. data/lib/sendgrid/helpers/settings/settings.rb +28 -0
  96. data/lib/sendgrid/helpers/settings/tracking_settings_dto.rb +22 -0
  97. data/lib/sendgrid/helpers/settings/user_settings_dto.rb +13 -0
  98. data/lib/sendgrid/helpers/stats/email_stats.rb +46 -0
  99. data/lib/sendgrid/helpers/stats/metrics.rb +33 -0
  100. data/lib/sendgrid/helpers/stats/stats_response.rb +29 -0
  101. data/lib/sendgrid/sendgrid.rb +21 -0
  102. data/lib/sendgrid/twilio_email.rb +21 -0
  103. data/lib/sendgrid/version.rb +1 -1
  104. data/lib/sendgrid-ruby.rb +32 -7
  105. data/mail_helper_v3.md +390 -0
  106. data/sendgrid-ruby.gemspec +16 -20
  107. data/spec/fixtures/event_webhook.rb +22 -0
  108. data/spec/rack/sendgrid_webhook_verification_spec.rb +142 -0
  109. data/spec/sendgrid/helpers/eventwebhook/eventwebhook_spec.rb +105 -0
  110. data/spec/sendgrid/helpers/ip_management/ip_management_spec.rb +12 -0
  111. data/spec/sendgrid/helpers/settings/mail_settings_dto_spec.rb +32 -0
  112. data/spec/sendgrid/helpers/settings/partner_settings_dto_spec.rb +24 -0
  113. data/spec/sendgrid/helpers/settings/settings_spec.rb +25 -0
  114. data/spec/sendgrid/helpers/settings/tracking_settings_dto_spec.rb +27 -0
  115. data/spec/sendgrid/helpers/settings/user_settings_dto_spec.rb +24 -0
  116. data/spec/sendgrid/helpers/stats/email_stats_spec.rb +111 -0
  117. data/spec/sendgrid/helpers/stats/metrics_spec.rb +45 -0
  118. data/spec/sendgrid/helpers/stats/stats_response_spec.rb +75 -0
  119. data/spec/sendgrid/sendgrid_spec.rb +11 -0
  120. data/spec/sendgrid/twilio_email_spec.rb +11 -0
  121. data/spec/spec_helper.rb +12 -1
  122. data/static/img/github-fork.png +0 -0
  123. data/static/img/github-sign-up.png +0 -0
  124. data/test/sendgrid/helpers/mail/test_attachment.rb +33 -0
  125. data/test/sendgrid/helpers/mail/test_category.rb +25 -0
  126. data/test/sendgrid/helpers/mail/test_email.rb +41 -0
  127. data/test/sendgrid/helpers/mail/test_mail.rb +260 -0
  128. data/test/sendgrid/helpers/mail/test_personalizations.rb +214 -0
  129. data/test/sendgrid/permissions/test_scopes.rb +36 -0
  130. data/test/sendgrid/test_sendgrid-ruby.rb +2729 -0
  131. data/twilio_sendgrid_logo.png +0 -0
  132. data/use-cases/README.md +17 -0
  133. data/use-cases/domain-authentication.md +5 -0
  134. data/use-cases/email-statistics.md +52 -0
  135. data/use-cases/legacy-templates.md +98 -0
  136. data/use-cases/personalizations.md +34 -0
  137. data/use-cases/sms.md +39 -0
  138. data/use-cases/transactional-templates.md +111 -0
  139. data/use-cases/twilio-email.md +13 -0
  140. data/use-cases/twilio-setup.md +54 -0
  141. metadata +187 -112
  142. data/.rspec +0 -2
  143. data/.travis.yml +0 -20
  144. data/FETCH_HEAD +0 -0
  145. data/Guardfile +0 -10
  146. data/LICENSE.txt +0 -22
  147. data/example.rb +0 -41
  148. data/lib/sendgrid/client.rb +0 -62
  149. data/lib/sendgrid/exceptions.rb +0 -7
  150. data/lib/sendgrid/mail.rb +0 -182
  151. data/lib/sendgrid/recipient.rb +0 -29
  152. data/lib/sendgrid/response.rb +0 -14
  153. data/lib/sendgrid/template.rb +0 -26
  154. data/lib/sendgrid/template_mailer.rb +0 -59
  155. data/spec/lib/sendgrid/client_spec.rb +0 -87
  156. data/spec/lib/sendgrid/mail_spec.rb +0 -151
  157. data/spec/lib/sendgrid/recipient_spec.rb +0 -91
  158. data/spec/lib/sendgrid/template_mailer_spec.rb +0 -86
  159. data/spec/lib/sendgrid/template_spec.rb +0 -61
  160. data/spec/lib/sendgrid_spec.rb +0 -7
@@ -0,0 +1,2729 @@
1
+ require 'simplecov'
2
+ SimpleCov.start
3
+ require_relative '../../lib/sendgrid-ruby'
4
+ require 'ruby_http_client'
5
+ require 'minitest/autorun'
6
+ require 'minitest/unit'
7
+
8
+ class TestAPI < MiniTest::Test
9
+ def setup
10
+ @sg = SendGrid::API.new(api_key: 'SENDGRID_API_KEY')
11
+ end
12
+
13
+ def test_init
14
+ headers = JSON.parse('
15
+ {
16
+ "X-Test": "test"
17
+ }
18
+ ')
19
+ subuser = 'test_user'
20
+ sg = SendGrid::API.new(api_key: 'SENDGRID_API_KEY', host: 'https://api.test.com', request_headers: headers, version: 'v3', impersonate_subuser: subuser)
21
+
22
+ assert_equal('https://api.test.com', sg.host)
23
+ user_agent = "sendgrid/#{SendGrid::VERSION};ruby"
24
+ test_headers = JSON.parse('
25
+ {
26
+ "Authorization": "Bearer SENDGRID_API_KEY",
27
+ "Accept": "application/json",
28
+ "X-Test": "test",
29
+ "User-Agent": "' + user_agent + '",
30
+ "On-Behalf-Of": "' + subuser + '"
31
+ }
32
+ ')
33
+ assert_equal(test_headers, sg.request_headers)
34
+ assert_equal('v3', sg.version)
35
+ assert_equal(subuser, sg.impersonate_subuser)
36
+ assert_equal('6.6.2', SendGrid::VERSION)
37
+ assert_instance_of(SendGrid::Client, sg.client)
38
+ assert_equal({}, sg.http_options)
39
+ end
40
+
41
+ def test_init_when_impersonate_subuser_is_not_given
42
+ sg = SendGrid::API.new(api_key: 'SENDGRID_API_KEY', host: 'https://api.test.com', version: 'v3')
43
+ refute_includes(sg.request_headers, 'On-Behalf-Of')
44
+ end
45
+
46
+ def test_init_when_http_options_is_given
47
+ params = JSON.parse('{"subuser": "test_string", "ip": "test_string", "limit": 1, "exclude_whitelabels": "true", "offset": 1}')
48
+ headers = JSON.parse('{"X-Mock": 200}')
49
+ http_options = {
50
+ open_timeout: 40,
51
+ read_timeout: 40
52
+ }
53
+
54
+ sg = SendGrid::API.new(api_key: 'SENDGRID_API_KEY', version: 'v3', http_options: http_options)
55
+ client = sg.client.ips
56
+ response = client.get(query_params: params, request_headers: headers)
57
+
58
+ assert_equal(40, client.http.open_timeout)
59
+ assert_equal(40, client.http.read_timeout)
60
+ assert_equal('200', response.status_code)
61
+ end
62
+
63
+ def test_access_settings_activity_get
64
+ params = JSON.parse('{"limit": 1}')
65
+ headers = JSON.parse('{"X-Mock": 200}')
66
+
67
+ response = @sg.client.access_settings.activity.get(query_params: params, request_headers: headers)
68
+
69
+ assert_equal('200', response.status_code)
70
+ end
71
+
72
+ def test_access_settings_whitelist_post
73
+ data = JSON.parse('{
74
+ "ips": [
75
+ {
76
+ "ip": "192.168.1.1"
77
+ },
78
+ {
79
+ "ip": "192.*.*.*"
80
+ },
81
+ {
82
+ "ip": "192.168.1.3/32"
83
+ }
84
+ ]
85
+ }')
86
+ headers = JSON.parse('{"X-Mock": 201}')
87
+
88
+ response = @sg.client.access_settings.whitelist.post(request_body: data, request_headers: headers)
89
+
90
+ assert_equal('201', response.status_code)
91
+ end
92
+
93
+ def test_access_settings_whitelist_get
94
+ headers = JSON.parse('{"X-Mock": 200}')
95
+
96
+ response = @sg.client.access_settings.whitelist.get(request_headers: headers)
97
+
98
+ assert_equal('200', response.status_code)
99
+ end
100
+
101
+ def test_access_settings_whitelist_delete
102
+ data = JSON.parse('{
103
+ "ids": [
104
+ 1,
105
+ 2,
106
+ 3
107
+ ]
108
+ }')
109
+ headers = JSON.parse('{"X-Mock": 204}')
110
+
111
+ response = @sg.client.access_settings.whitelist.delete(request_body: data, request_headers: headers)
112
+
113
+ assert_equal('204', response.status_code)
114
+ end
115
+
116
+ def test_access_settings_whitelist__rule_id__get
117
+ rule_id = 'test_url_param'
118
+ headers = JSON.parse('{"X-Mock": 200}')
119
+
120
+ response = @sg.client.access_settings.whitelist._(rule_id).get(request_headers: headers)
121
+
122
+ assert_equal('200', response.status_code)
123
+ end
124
+
125
+ def test_access_settings_whitelist__rule_id__delete
126
+ rule_id = 'test_url_param'
127
+ headers = JSON.parse('{"X-Mock": 204}')
128
+
129
+ response = @sg.client.access_settings.whitelist._(rule_id).delete(request_headers: headers)
130
+
131
+ assert_equal('204', response.status_code)
132
+ end
133
+
134
+ def test_alerts_post
135
+ data = JSON.parse('{
136
+ "email_to": "example@example.com",
137
+ "frequency": "daily",
138
+ "type": "stats_notification"
139
+ }')
140
+ headers = JSON.parse('{"X-Mock": 201}')
141
+
142
+ response = @sg.client.alerts.post(request_body: data, request_headers: headers)
143
+
144
+ assert_equal('201', response.status_code)
145
+ end
146
+
147
+ def test_alerts_get
148
+ headers = JSON.parse('{"X-Mock": 200}')
149
+
150
+ response = @sg.client.alerts.get(request_headers: headers)
151
+
152
+ assert_equal('200', response.status_code)
153
+ end
154
+
155
+ def test_alerts__alert_id__patch
156
+ data = JSON.parse('{
157
+ "email_to": "example@example.com"
158
+ }')
159
+ alert_id = 'test_url_param'
160
+ headers = JSON.parse('{"X-Mock": 200}')
161
+
162
+ response = @sg.client.alerts._(alert_id).patch(request_body: data, request_headers: headers)
163
+
164
+ assert_equal('200', response.status_code)
165
+ end
166
+
167
+ def test_alerts__alert_id__get
168
+ alert_id = 'test_url_param'
169
+ headers = JSON.parse('{"X-Mock": 200}')
170
+
171
+ response = @sg.client.alerts._(alert_id).get(request_headers: headers)
172
+
173
+ assert_equal('200', response.status_code)
174
+ end
175
+
176
+ def test_alerts__alert_id__delete
177
+ alert_id = 'test_url_param'
178
+ headers = JSON.parse('{"X-Mock": 204}')
179
+
180
+ response = @sg.client.alerts._(alert_id).delete(request_headers: headers)
181
+
182
+ assert_equal('204', response.status_code)
183
+ end
184
+
185
+ def test_api_keys_post
186
+ data = JSON.parse('{
187
+ "name": "My API Key",
188
+ "sample": "data",
189
+ "scopes": [
190
+ "mail.send",
191
+ "alerts.create",
192
+ "alerts.read"
193
+ ]
194
+ }')
195
+ headers = JSON.parse('{"X-Mock": 201}')
196
+
197
+ response = @sg.client.api_keys.post(request_body: data, request_headers: headers)
198
+
199
+ assert_equal('201', response.status_code)
200
+ end
201
+
202
+ def test_api_keys_get
203
+ params = JSON.parse('{"limit": 1}')
204
+ headers = JSON.parse('{"X-Mock": 200}')
205
+
206
+ response = @sg.client.api_keys.get(query_params: params, request_headers: headers)
207
+
208
+ assert_equal('200', response.status_code)
209
+ end
210
+
211
+ def test_api_keys__api_key_id__put
212
+ data = JSON.parse('{
213
+ "name": "A New Hope",
214
+ "scopes": [
215
+ "user.profile.read",
216
+ "user.profile.update"
217
+ ]
218
+ }')
219
+ api_key_id = 'test_url_param'
220
+ headers = JSON.parse('{"X-Mock": 200}')
221
+
222
+ response = @sg.client.api_keys._(api_key_id).put(request_body: data, request_headers: headers)
223
+
224
+ assert_equal('200', response.status_code)
225
+ end
226
+
227
+ def test_api_keys__api_key_id__patch
228
+ data = JSON.parse('{
229
+ "name": "A New Hope"
230
+ }')
231
+ api_key_id = 'test_url_param'
232
+ headers = JSON.parse('{"X-Mock": 200}')
233
+
234
+ response = @sg.client.api_keys._(api_key_id).patch(request_body: data, request_headers: headers)
235
+
236
+ assert_equal('200', response.status_code)
237
+ end
238
+
239
+ def test_api_keys__api_key_id__get
240
+ api_key_id = 'test_url_param'
241
+ headers = JSON.parse('{"X-Mock": 200}')
242
+
243
+ response = @sg.client.api_keys._(api_key_id).get(request_headers: headers)
244
+
245
+ assert_equal('200', response.status_code)
246
+ end
247
+
248
+ def test_api_keys__api_key_id__delete
249
+ api_key_id = 'test_url_param'
250
+ headers = JSON.parse('{"X-Mock": 204}')
251
+
252
+ response = @sg.client.api_keys._(api_key_id).delete(request_headers: headers)
253
+
254
+ assert_equal('204', response.status_code)
255
+ end
256
+
257
+ def test_asm_groups_post
258
+ data = JSON.parse('{
259
+ "description": "Suggestions for products our users might like.",
260
+ "is_default": true,
261
+ "name": "Product Suggestions"
262
+ }')
263
+ headers = JSON.parse('{"X-Mock": 201}')
264
+
265
+ response = @sg.client.asm.groups.post(request_body: data, request_headers: headers)
266
+
267
+ assert_equal('201', response.status_code)
268
+ end
269
+
270
+ def test_asm_groups_get
271
+ params = JSON.parse('{"id": 1}')
272
+ headers = JSON.parse('{"X-Mock": 200}')
273
+
274
+ response = @sg.client.asm.groups.get(query_params: params, request_headers: headers)
275
+
276
+ assert_equal('200', response.status_code)
277
+ end
278
+
279
+ def test_asm_groups__group_id__patch
280
+ data = JSON.parse('{
281
+ "description": "Suggestions for items our users might like.",
282
+ "id": 103,
283
+ "name": "Item Suggestions"
284
+ }')
285
+ group_id = 'test_url_param'
286
+ headers = JSON.parse('{"X-Mock": 201}')
287
+
288
+ response = @sg.client.asm.groups._(group_id).patch(request_body: data, request_headers: headers)
289
+
290
+ assert_equal('201', response.status_code)
291
+ end
292
+
293
+ def test_asm_groups__group_id__get
294
+ group_id = 'test_url_param'
295
+ headers = JSON.parse('{"X-Mock": 200}')
296
+
297
+ response = @sg.client.asm.groups._(group_id).get(request_headers: headers)
298
+
299
+ assert_equal('200', response.status_code)
300
+ end
301
+
302
+ def test_asm_groups__group_id__delete
303
+ group_id = 'test_url_param'
304
+ headers = JSON.parse('{"X-Mock": 204}')
305
+
306
+ response = @sg.client.asm.groups._(group_id).delete(request_headers: headers)
307
+
308
+ assert_equal('204', response.status_code)
309
+ end
310
+
311
+ def test_asm_groups__group_id__suppressions_post
312
+ data = JSON.parse('{
313
+ "recipient_emails": [
314
+ "test1@example.com",
315
+ "test2@example.com"
316
+ ]
317
+ }')
318
+ group_id = 'test_url_param'
319
+ headers = JSON.parse('{"X-Mock": 201}')
320
+
321
+ response = @sg.client.asm.groups._(group_id).suppressions.post(request_body: data, request_headers: headers)
322
+
323
+ assert_equal('201', response.status_code)
324
+ end
325
+
326
+ def test_asm_groups__group_id__suppressions_get
327
+ group_id = 'test_url_param'
328
+ headers = JSON.parse('{"X-Mock": 200}')
329
+
330
+ response = @sg.client.asm.groups._(group_id).suppressions.get(request_headers: headers)
331
+
332
+ assert_equal('200', response.status_code)
333
+ end
334
+
335
+ def test_asm_groups__group_id__suppressions_search_post
336
+ data = JSON.parse('{
337
+ "recipient_emails": [
338
+ "exists1@example.com",
339
+ "exists2@example.com",
340
+ "doesnotexists@example.com"
341
+ ]
342
+ }')
343
+ group_id = 'test_url_param'
344
+ headers = JSON.parse('{"X-Mock": 200}')
345
+
346
+ response = @sg.client.asm.groups._(group_id).suppressions.search.post(request_body: data, request_headers: headers)
347
+
348
+ assert_equal('200', response.status_code)
349
+ end
350
+
351
+ def test_asm_groups__group_id__suppressions__email__delete
352
+ group_id = 'test_url_param'
353
+ email = 'test_url_param'
354
+ headers = JSON.parse('{"X-Mock": 204}')
355
+
356
+ response = @sg.client.asm.groups._(group_id).suppressions._(email).delete(request_headers: headers)
357
+
358
+ assert_equal('204', response.status_code)
359
+ end
360
+
361
+ def test_asm_suppressions_get
362
+ headers = JSON.parse('{"X-Mock": 200}')
363
+
364
+ response = @sg.client.asm.suppressions.get(request_headers: headers)
365
+
366
+ assert_equal('200', response.status_code)
367
+ end
368
+
369
+ def test_asm_suppressions_global_post
370
+ data = JSON.parse('{
371
+ "recipient_emails": [
372
+ "test1@example.com",
373
+ "test2@example.com"
374
+ ]
375
+ }')
376
+ headers = JSON.parse('{"X-Mock": 201}')
377
+
378
+ response = @sg.client.asm.suppressions.global.post(request_body: data, request_headers: headers)
379
+
380
+ assert_equal('201', response.status_code)
381
+ end
382
+
383
+ def test_asm_suppressions_global__email__get
384
+ email = 'test_url_param'
385
+ headers = JSON.parse('{"X-Mock": 200}')
386
+
387
+ response = @sg.client.asm.suppressions.global._(email).get(request_headers: headers)
388
+
389
+ assert_equal('200', response.status_code)
390
+ end
391
+
392
+ def test_asm_suppressions_global__email__delete
393
+ email = 'test_url_param'
394
+ headers = JSON.parse('{"X-Mock": 204}')
395
+
396
+ response = @sg.client.asm.suppressions.global._(email).delete(request_headers: headers)
397
+
398
+ assert_equal('204', response.status_code)
399
+ end
400
+
401
+ def test_asm_suppressions__email__get
402
+ email = 'test_url_param'
403
+ headers = JSON.parse('{"X-Mock": 200}')
404
+
405
+ response = @sg.client.asm.suppressions._(email).get(request_headers: headers)
406
+
407
+ assert_equal('200', response.status_code)
408
+ end
409
+
410
+ def test_browsers_stats_get
411
+ params = JSON.parse('{"end_date": "2016-04-01", "aggregated_by": "day", "browsers": "test_string", "limit": "test_string", "offset": "test_string", "start_date": "2016-01-01"}')
412
+ headers = JSON.parse('{"X-Mock": 200}')
413
+
414
+ response = @sg.client.browsers.stats.get(query_params: params, request_headers: headers)
415
+
416
+ assert_equal('200', response.status_code)
417
+ end
418
+
419
+ def test_campaigns_post
420
+ data = JSON.parse('{
421
+ "categories": [
422
+ "spring line"
423
+ ],
424
+ "custom_unsubscribe_url": "",
425
+ "html_content": "<html><head><title></title></head><body><p>Check out our spring line!</p></body></html>",
426
+ "ip_pool": "marketing",
427
+ "list_ids": [
428
+ 110,
429
+ 124
430
+ ],
431
+ "plain_content": "Check out our spring line!",
432
+ "segment_ids": [
433
+ 110
434
+ ],
435
+ "sender_id": 124451,
436
+ "subject": "New Products for Spring!",
437
+ "suppression_group_id": 42,
438
+ "title": "March Newsletter"
439
+ }')
440
+ headers = JSON.parse('{"X-Mock": 201}')
441
+
442
+ response = @sg.client.campaigns.post(request_body: data, request_headers: headers)
443
+
444
+ assert_equal('201', response.status_code)
445
+ end
446
+
447
+ def test_campaigns_get
448
+ params = JSON.parse('{"limit": 1, "offset": 1}')
449
+ headers = JSON.parse('{"X-Mock": 200}')
450
+
451
+ response = @sg.client.campaigns.get(query_params: params, request_headers: headers)
452
+
453
+ assert_equal('200', response.status_code)
454
+ end
455
+
456
+ def test_campaigns__campaign_id__patch
457
+ data = JSON.parse('{
458
+ "categories": [
459
+ "summer line"
460
+ ],
461
+ "html_content": "<html><head><title></title></head><body><p>Check out our summer line!</p></body></html>",
462
+ "plain_content": "Check out our summer line!",
463
+ "subject": "New Products for Summer!",
464
+ "title": "May Newsletter"
465
+ }')
466
+ campaign_id = 'test_url_param'
467
+ headers = JSON.parse('{"X-Mock": 200}')
468
+
469
+ response = @sg.client.campaigns._(campaign_id).patch(request_body: data, request_headers: headers)
470
+
471
+ assert_equal('200', response.status_code)
472
+ end
473
+
474
+ def test_campaigns__campaign_id__get
475
+ campaign_id = 'test_url_param'
476
+ headers = JSON.parse('{"X-Mock": 200}')
477
+
478
+ response = @sg.client.campaigns._(campaign_id).get(request_headers: headers)
479
+
480
+ assert_equal('200', response.status_code)
481
+ end
482
+
483
+ def test_campaigns__campaign_id__delete
484
+ campaign_id = 'test_url_param'
485
+ headers = JSON.parse('{"X-Mock": 204}')
486
+
487
+ response = @sg.client.campaigns._(campaign_id).delete(request_headers: headers)
488
+
489
+ assert_equal('204', response.status_code)
490
+ end
491
+
492
+ def test_campaigns__campaign_id__schedules_patch
493
+ data = JSON.parse('{
494
+ "send_at": 1489451436
495
+ }')
496
+ campaign_id = 'test_url_param'
497
+ headers = JSON.parse('{"X-Mock": 200}')
498
+
499
+ response = @sg.client.campaigns._(campaign_id).schedules.patch(request_body: data, request_headers: headers)
500
+
501
+ assert_equal('200', response.status_code)
502
+ end
503
+
504
+ def test_campaigns__campaign_id__schedules_post
505
+ data = JSON.parse('{
506
+ "send_at": 1489771528
507
+ }')
508
+ campaign_id = 'test_url_param'
509
+ headers = JSON.parse('{"X-Mock": 201}')
510
+
511
+ response = @sg.client.campaigns._(campaign_id).schedules.post(request_body: data, request_headers: headers)
512
+
513
+ assert_equal('201', response.status_code)
514
+ end
515
+
516
+ def test_campaigns__campaign_id__schedules_get
517
+ campaign_id = 'test_url_param'
518
+ headers = JSON.parse('{"X-Mock": 200}')
519
+
520
+ response = @sg.client.campaigns._(campaign_id).schedules.get(request_headers: headers)
521
+
522
+ assert_equal('200', response.status_code)
523
+ end
524
+
525
+ def test_campaigns__campaign_id__schedules_delete
526
+ campaign_id = 'test_url_param'
527
+ headers = JSON.parse('{"X-Mock": 204}')
528
+
529
+ response = @sg.client.campaigns._(campaign_id).schedules.delete(request_headers: headers)
530
+
531
+ assert_equal('204', response.status_code)
532
+ end
533
+
534
+ def test_campaigns__campaign_id__schedules_now_post
535
+ campaign_id = 'test_url_param'
536
+ headers = JSON.parse('{"X-Mock": 201}')
537
+
538
+ response = @sg.client.campaigns._(campaign_id).schedules.now.post(request_headers: headers)
539
+
540
+ assert_equal('201', response.status_code)
541
+ end
542
+
543
+ def test_campaigns__campaign_id__schedules_test_post
544
+ data = JSON.parse('{
545
+ "to": "your.email@example.com"
546
+ }')
547
+ campaign_id = 'test_url_param'
548
+ headers = JSON.parse('{"X-Mock": 204}')
549
+
550
+ response = @sg.client.campaigns._(campaign_id).schedules.test.post(request_body: data, request_headers: headers)
551
+
552
+ assert_equal('204', response.status_code)
553
+ end
554
+
555
+ def test_categories_get
556
+ params = JSON.parse('{"category": "test_string", "limit": 1, "offset": 1}')
557
+ headers = JSON.parse('{"X-Mock": 200}')
558
+
559
+ response = @sg.client.categories.get(query_params: params, request_headers: headers)
560
+
561
+ assert_equal('200', response.status_code)
562
+ end
563
+
564
+ def test_categories_stats_get
565
+ params = JSON.parse('{"end_date": "2016-04-01", "aggregated_by": "day", "limit": 1, "offset": 1, "start_date": "2016-01-01", "categories": "test_string"}')
566
+ headers = JSON.parse('{"X-Mock": 200}')
567
+
568
+ response = @sg.client.categories.stats.get(query_params: params, request_headers: headers)
569
+
570
+ assert_equal('200', response.status_code)
571
+ end
572
+
573
+ def test_categories_stats_sums_get
574
+ params = JSON.parse('{"end_date": "2016-04-01", "aggregated_by": "day", "limit": 1, "sort_by_metric": "test_string", "offset": 1, "start_date": "2016-01-01", "sort_by_direction": "asc"}')
575
+ headers = JSON.parse('{"X-Mock": 200}')
576
+
577
+ response = @sg.client.categories.stats.sums.get(query_params: params, request_headers: headers)
578
+
579
+ assert_equal('200', response.status_code)
580
+ end
581
+
582
+ def test_clients_stats_get
583
+ params = JSON.parse('{"aggregated_by": "day", "start_date": "2016-01-01", "end_date": "2016-04-01"}')
584
+ headers = JSON.parse('{"X-Mock": 200}')
585
+
586
+ response = @sg.client.clients.stats.get(query_params: params, request_headers: headers)
587
+
588
+ assert_equal('200', response.status_code)
589
+ end
590
+
591
+ def test_clients__client_type__stats_get
592
+ params = JSON.parse('{"aggregated_by": "day", "start_date": "2016-01-01", "end_date": "2016-04-01"}')
593
+ client_type = 'test_url_param'
594
+ headers = JSON.parse('{"X-Mock": 200}')
595
+
596
+ response = @sg.client.clients._(client_type).stats.get(query_params: params, request_headers: headers)
597
+
598
+ assert_equal('200', response.status_code)
599
+ end
600
+
601
+ def test_contactdb_custom_fields_post
602
+ data = JSON.parse('{
603
+ "name": "pet",
604
+ "type": "text"
605
+ }')
606
+ headers = JSON.parse('{"X-Mock": 201}')
607
+
608
+ response = @sg.client.contactdb.custom_fields.post(request_body: data, request_headers: headers)
609
+
610
+ assert_equal('201', response.status_code)
611
+ end
612
+
613
+ def test_contactdb_custom_fields_get
614
+ headers = JSON.parse('{"X-Mock": 200}')
615
+
616
+ response = @sg.client.contactdb.custom_fields.get(request_headers: headers)
617
+
618
+ assert_equal('200', response.status_code)
619
+ end
620
+
621
+ def test_contactdb_custom_fields__custom_field_id__get
622
+ custom_field_id = 'test_url_param'
623
+ headers = JSON.parse('{"X-Mock": 200}')
624
+
625
+ response = @sg.client.contactdb.custom_fields._(custom_field_id).get(request_headers: headers)
626
+
627
+ assert_equal('200', response.status_code)
628
+ end
629
+
630
+ def test_contactdb_custom_fields__custom_field_id__delete
631
+ custom_field_id = 'test_url_param'
632
+ headers = JSON.parse('{"X-Mock": 202}')
633
+
634
+ response = @sg.client.contactdb.custom_fields._(custom_field_id).delete(request_headers: headers)
635
+
636
+ assert_equal('202', response.status_code)
637
+ end
638
+
639
+ def test_contactdb_lists_post
640
+ data = JSON.parse('{
641
+ "name": "your list name"
642
+ }')
643
+ headers = JSON.parse('{"X-Mock": 201}')
644
+
645
+ response = @sg.client.contactdb.lists.post(request_body: data, request_headers: headers)
646
+
647
+ assert_equal('201', response.status_code)
648
+ end
649
+
650
+ def test_contactdb_lists_get
651
+ headers = JSON.parse('{"X-Mock": 200}')
652
+
653
+ response = @sg.client.contactdb.lists.get(request_headers: headers)
654
+
655
+ assert_equal('200', response.status_code)
656
+ end
657
+
658
+ def test_contactdb_lists_delete
659
+ data = JSON.parse('[
660
+ 1,
661
+ 2,
662
+ 3,
663
+ 4
664
+ ]')
665
+ headers = JSON.parse('{"X-Mock": 204}')
666
+
667
+ response = @sg.client.contactdb.lists.delete(request_body: data, request_headers: headers)
668
+
669
+ assert_equal('204', response.status_code)
670
+ end
671
+
672
+ def test_contactdb_lists__list_id__patch
673
+ data = JSON.parse('{
674
+ "name": "newlistname"
675
+ }')
676
+ params = JSON.parse('{"list_id": 1}')
677
+ list_id = 'test_url_param'
678
+ headers = JSON.parse('{"X-Mock": 200}')
679
+
680
+ response = @sg.client.contactdb.lists._(list_id).patch(request_body: data, query_params: params, request_headers: headers)
681
+
682
+ assert_equal('200', response.status_code)
683
+ end
684
+
685
+ def test_contactdb_lists__list_id__get
686
+ params = JSON.parse('{"list_id": 1}')
687
+ list_id = 'test_url_param'
688
+ headers = JSON.parse('{"X-Mock": 200}')
689
+
690
+ response = @sg.client.contactdb.lists._(list_id).get(query_params: params, request_headers: headers)
691
+
692
+ assert_equal('200', response.status_code)
693
+ end
694
+
695
+ def test_contactdb_lists__list_id__delete
696
+ params = JSON.parse('{"delete_contacts": "true"}')
697
+ list_id = 'test_url_param'
698
+ headers = JSON.parse('{"X-Mock": 202}')
699
+
700
+ response = @sg.client.contactdb.lists._(list_id).delete(query_params: params, request_headers: headers)
701
+
702
+ assert_equal('202', response.status_code)
703
+ end
704
+
705
+ def test_contactdb_lists__list_id__recipients_post
706
+ data = JSON.parse('[
707
+ "recipient_id1",
708
+ "recipient_id2"
709
+ ]')
710
+ list_id = 'test_url_param'
711
+ headers = JSON.parse('{"X-Mock": 201}')
712
+
713
+ response = @sg.client.contactdb.lists._(list_id).recipients.post(request_body: data, request_headers: headers)
714
+
715
+ assert_equal('201', response.status_code)
716
+ end
717
+
718
+ def test_contactdb_lists__list_id__recipients_get
719
+ params = JSON.parse('{"page": 1, "page_size": 1, "list_id": 1}')
720
+ list_id = 'test_url_param'
721
+ headers = JSON.parse('{"X-Mock": 200}')
722
+
723
+ response = @sg.client.contactdb.lists._(list_id).recipients.get(query_params: params, request_headers: headers)
724
+
725
+ assert_equal('200', response.status_code)
726
+ end
727
+
728
+ def test_contactdb_lists__list_id__recipients__recipient_id__post
729
+ list_id = 'test_url_param'
730
+ recipient_id = 'test_url_param'
731
+ headers = JSON.parse('{"X-Mock": 201}')
732
+
733
+ response = @sg.client.contactdb.lists._(list_id).recipients._(recipient_id).post(request_headers: headers)
734
+
735
+ assert_equal('201', response.status_code)
736
+ end
737
+
738
+ def test_contactdb_lists__list_id__recipients__recipient_id__delete
739
+ params = JSON.parse('{"recipient_id": 1, "list_id": 1}')
740
+ list_id = 'test_url_param'
741
+ recipient_id = 'test_url_param'
742
+ headers = JSON.parse('{"X-Mock": 204}')
743
+
744
+ response = @sg.client.contactdb.lists._(list_id).recipients._(recipient_id).delete(query_params: params, request_headers: headers)
745
+
746
+ assert_equal('204', response.status_code)
747
+ end
748
+
749
+ def test_contactdb_recipients_patch
750
+ data = JSON.parse('[
751
+ {
752
+ "email": "jones@example.com",
753
+ "first_name": "Guy",
754
+ "last_name": "Jones"
755
+ }
756
+ ]')
757
+ headers = JSON.parse('{"X-Mock": 201}')
758
+
759
+ response = @sg.client.contactdb.recipients.patch(request_body: data, request_headers: headers)
760
+
761
+ assert_equal('201', response.status_code)
762
+ end
763
+
764
+ def test_contactdb_recipients_post
765
+ data = JSON.parse('[
766
+ {
767
+ "age": 25,
768
+ "email": "example@example.com",
769
+ "first_name": "",
770
+ "last_name": "User"
771
+ },
772
+ {
773
+ "age": 25,
774
+ "email": "example2@example.com",
775
+ "first_name": "Example",
776
+ "last_name": "User"
777
+ }
778
+ ]')
779
+ headers = JSON.parse('{"X-Mock": 201}')
780
+
781
+ response = @sg.client.contactdb.recipients.post(request_body: data, request_headers: headers)
782
+
783
+ assert_equal('201', response.status_code)
784
+ end
785
+
786
+ def test_contactdb_recipients_get
787
+ params = JSON.parse('{"page": 1, "page_size": 1}')
788
+ headers = JSON.parse('{"X-Mock": 200}')
789
+
790
+ response = @sg.client.contactdb.recipients.get(query_params: params, request_headers: headers)
791
+
792
+ assert_equal('200', response.status_code)
793
+ end
794
+
795
+ def test_contactdb_recipients_delete
796
+ data = JSON.parse('[
797
+ "recipient_id1",
798
+ "recipient_id2"
799
+ ]')
800
+ headers = JSON.parse('{"X-Mock": 200}')
801
+
802
+ response = @sg.client.contactdb.recipients.delete(request_body: data, request_headers: headers)
803
+
804
+ assert_equal('200', response.status_code)
805
+ end
806
+
807
+ def test_contactdb_recipients_billable_count_get
808
+ headers = JSON.parse('{"X-Mock": 200}')
809
+
810
+ response = @sg.client.contactdb.recipients.billable_count.get(request_headers: headers)
811
+
812
+ assert_equal('200', response.status_code)
813
+ end
814
+
815
+ def test_contactdb_recipients_count_get
816
+ headers = JSON.parse('{"X-Mock": 200}')
817
+
818
+ response = @sg.client.contactdb.recipients.count.get(request_headers: headers)
819
+
820
+ assert_equal('200', response.status_code)
821
+ end
822
+
823
+ def test_contactdb_recipients_search_get
824
+ params = { field_name: 'test_string' }
825
+ headers = JSON.parse('{"X-Mock": 200}')
826
+
827
+ response = @sg.client.contactdb.recipients.search.get(query_params: params, request_headers: headers)
828
+
829
+ assert_equal('200', response.status_code)
830
+ end
831
+
832
+ def test_contactdb_recipients__recipient_id__get
833
+ recipient_id = 'test_url_param'
834
+ headers = JSON.parse('{"X-Mock": 200}')
835
+
836
+ response = @sg.client.contactdb.recipients._(recipient_id).get(request_headers: headers)
837
+
838
+ assert_equal('200', response.status_code)
839
+ end
840
+
841
+ def test_contactdb_recipients__recipient_id__delete
842
+ recipient_id = 'test_url_param'
843
+ headers = JSON.parse('{"X-Mock": 204}')
844
+
845
+ response = @sg.client.contactdb.recipients._(recipient_id).delete(request_headers: headers)
846
+
847
+ assert_equal('204', response.status_code)
848
+ end
849
+
850
+ def test_contactdb_recipients__recipient_id__lists_get
851
+ recipient_id = 'test_url_param'
852
+ headers = JSON.parse('{"X-Mock": 200}')
853
+
854
+ response = @sg.client.contactdb.recipients._(recipient_id).lists.get(request_headers: headers)
855
+
856
+ assert_equal('200', response.status_code)
857
+ end
858
+
859
+ def test_contactdb_reserved_fields_get
860
+ headers = JSON.parse('{"X-Mock": 200}')
861
+
862
+ response = @sg.client.contactdb.reserved_fields.get(request_headers: headers)
863
+
864
+ assert_equal('200', response.status_code)
865
+ end
866
+
867
+ def test_contactdb_segments_post
868
+ data = JSON.parse('{
869
+ "conditions": [
870
+ {
871
+ "and_or": "",
872
+ "field": "last_name",
873
+ "operator": "eq",
874
+ "value": "Miller"
875
+ },
876
+ {
877
+ "and_or": "and",
878
+ "field": "last_clicked",
879
+ "operator": "gt",
880
+ "value": "01/02/2015"
881
+ },
882
+ {
883
+ "and_or": "or",
884
+ "field": "clicks.campaign_identifier",
885
+ "operator": "eq",
886
+ "value": "513"
887
+ }
888
+ ],
889
+ "list_id": 4,
890
+ "name": "Last Name Miller"
891
+ }')
892
+ headers = JSON.parse('{"X-Mock": 200}')
893
+
894
+ response = @sg.client.contactdb.segments.post(request_body: data, request_headers: headers)
895
+
896
+ assert_equal('200', response.status_code)
897
+ end
898
+
899
+ def test_contactdb_segments_get
900
+ headers = JSON.parse('{"X-Mock": 200}')
901
+
902
+ response = @sg.client.contactdb.segments.get(request_headers: headers)
903
+
904
+ assert_equal('200', response.status_code)
905
+ end
906
+
907
+ def test_contactdb_segments__segment_id__patch
908
+ data = JSON.parse('{
909
+ "conditions": [
910
+ {
911
+ "and_or": "",
912
+ "field": "last_name",
913
+ "operator": "eq",
914
+ "value": "Miller"
915
+ }
916
+ ],
917
+ "list_id": 5,
918
+ "name": "The Millers"
919
+ }')
920
+ params = JSON.parse('{"segment_id": "test_string"}')
921
+ segment_id = 'test_url_param'
922
+ headers = JSON.parse('{"X-Mock": 200}')
923
+
924
+ response = @sg.client.contactdb.segments._(segment_id).patch(request_body: data, query_params: params, request_headers: headers)
925
+
926
+ assert_equal('200', response.status_code)
927
+ end
928
+
929
+ def test_contactdb_segments__segment_id__get
930
+ params = JSON.parse('{"segment_id": 1}')
931
+ segment_id = 'test_url_param'
932
+ headers = JSON.parse('{"X-Mock": 200}')
933
+
934
+ response = @sg.client.contactdb.segments._(segment_id).get(query_params: params, request_headers: headers)
935
+
936
+ assert_equal('200', response.status_code)
937
+ end
938
+
939
+ def test_contactdb_segments__segment_id__delete
940
+ params = JSON.parse('{"delete_contacts": "true"}')
941
+ segment_id = 'test_url_param'
942
+ headers = JSON.parse('{"X-Mock": 204}')
943
+
944
+ response = @sg.client.contactdb.segments._(segment_id).delete(query_params: params, request_headers: headers)
945
+
946
+ assert_equal('204', response.status_code)
947
+ end
948
+
949
+ def test_contactdb_segments__segment_id__recipients_get
950
+ params = JSON.parse('{"page": 1, "page_size": 1}')
951
+ segment_id = 'test_url_param'
952
+ headers = JSON.parse('{"X-Mock": 200}')
953
+
954
+ response = @sg.client.contactdb.segments._(segment_id).recipients.get(query_params: params, request_headers: headers)
955
+
956
+ assert_equal('200', response.status_code)
957
+ end
958
+
959
+ def test_devices_stats_get
960
+ params = JSON.parse('{"aggregated_by": "day", "limit": 1, "start_date": "2016-01-01", "end_date": "2016-04-01", "offset": 1}')
961
+ headers = JSON.parse('{"X-Mock": 200}')
962
+
963
+ response = @sg.client.devices.stats.get(query_params: params, request_headers: headers)
964
+
965
+ assert_equal('200', response.status_code)
966
+ end
967
+
968
+ def test_geo_stats_get
969
+ params = JSON.parse('{"end_date": "2016-04-01", "country": "US", "aggregated_by": "day", "limit": 1, "offset": 1, "start_date": "2016-01-01"}')
970
+ headers = JSON.parse('{"X-Mock": 200}')
971
+
972
+ response = @sg.client.geo.stats.get(query_params: params, request_headers: headers)
973
+
974
+ assert_equal('200', response.status_code)
975
+ end
976
+
977
+ def test_ips_get
978
+ params = JSON.parse('{"subuser": "test_string", "ip": "test_string", "limit": 1, "exclude_whitelabels": "true", "offset": 1}')
979
+ headers = JSON.parse('{"X-Mock": 200}')
980
+
981
+ response = @sg.client.ips.get(query_params: params, request_headers: headers)
982
+
983
+ assert_equal('200', response.status_code)
984
+ end
985
+
986
+ def test_ips_assigned_get
987
+ headers = JSON.parse('{"X-Mock": 200}')
988
+
989
+ response = @sg.client.ips.assigned.get(request_headers: headers)
990
+
991
+ assert_equal('200', response.status_code)
992
+ end
993
+
994
+ def test_ips_pools_post
995
+ data = JSON.parse('{
996
+ "name": "marketing"
997
+ }')
998
+ headers = JSON.parse('{"X-Mock": 200}')
999
+
1000
+ response = @sg.client.ips.pools.post(request_body: data, request_headers: headers)
1001
+
1002
+ assert_equal('200', response.status_code)
1003
+ end
1004
+
1005
+ def test_ips_pools_get
1006
+ headers = JSON.parse('{"X-Mock": 200}')
1007
+
1008
+ response = @sg.client.ips.pools.get(request_headers: headers)
1009
+
1010
+ assert_equal('200', response.status_code)
1011
+ end
1012
+
1013
+ def test_ips_pools__pool_name__put
1014
+ data = JSON.parse('{
1015
+ "name": "new_pool_name"
1016
+ }')
1017
+ pool_name = 'test_url_param'
1018
+ headers = JSON.parse('{"X-Mock": 200}')
1019
+
1020
+ response = @sg.client.ips.pools._(pool_name).put(request_body: data, request_headers: headers)
1021
+
1022
+ assert_equal('200', response.status_code)
1023
+ end
1024
+
1025
+ def test_ips_pools__pool_name__get
1026
+ pool_name = 'test_url_param'
1027
+ headers = JSON.parse('{"X-Mock": 200}')
1028
+
1029
+ response = @sg.client.ips.pools._(pool_name).get(request_headers: headers)
1030
+
1031
+ assert_equal('200', response.status_code)
1032
+ end
1033
+
1034
+ def test_ips_pools__pool_name__delete
1035
+ pool_name = 'test_url_param'
1036
+ headers = JSON.parse('{"X-Mock": 204}')
1037
+
1038
+ response = @sg.client.ips.pools._(pool_name).delete(request_headers: headers)
1039
+
1040
+ assert_equal('204', response.status_code)
1041
+ end
1042
+
1043
+ def test_ips_pools__pool_name__ips_post
1044
+ data = JSON.parse('{
1045
+ "ip": "0.0.0.0"
1046
+ }')
1047
+ pool_name = 'test_url_param'
1048
+ headers = JSON.parse('{"X-Mock": 201}')
1049
+
1050
+ response = @sg.client.ips.pools._(pool_name).ips.post(request_body: data, request_headers: headers)
1051
+
1052
+ assert_equal('201', response.status_code)
1053
+ end
1054
+
1055
+ def test_ips_pools__pool_name__ips__ip__delete
1056
+ pool_name = 'test_url_param'
1057
+ ip = 'test_url_param'
1058
+ headers = JSON.parse('{"X-Mock": 204}')
1059
+
1060
+ response = @sg.client.ips.pools._(pool_name).ips._(ip).delete(request_headers: headers)
1061
+
1062
+ assert_equal('204', response.status_code)
1063
+ end
1064
+
1065
+ def test_ips_warmup_post
1066
+ data = JSON.parse('{
1067
+ "ip": "0.0.0.0"
1068
+ }')
1069
+ headers = JSON.parse('{"X-Mock": 200}')
1070
+
1071
+ response = @sg.client.ips.warmup.post(request_body: data, request_headers: headers)
1072
+
1073
+ assert_equal('200', response.status_code)
1074
+ end
1075
+
1076
+ def test_ips_warmup_get
1077
+ headers = JSON.parse('{"X-Mock": 200}')
1078
+
1079
+ response = @sg.client.ips.warmup.get(request_headers: headers)
1080
+
1081
+ assert_equal('200', response.status_code)
1082
+ end
1083
+
1084
+ def test_ips_warmup__ip_address__get
1085
+ ip_address = 'test_url_param'
1086
+ headers = JSON.parse('{"X-Mock": 200}')
1087
+
1088
+ response = @sg.client.ips.warmup._(ip_address).get(request_headers: headers)
1089
+
1090
+ assert_equal('200', response.status_code)
1091
+ end
1092
+
1093
+ def test_ips_warmup__ip_address__delete
1094
+ ip_address = 'test_url_param'
1095
+ headers = JSON.parse('{"X-Mock": 204}')
1096
+
1097
+ response = @sg.client.ips.warmup._(ip_address).delete(request_headers: headers)
1098
+
1099
+ assert_equal('204', response.status_code)
1100
+ end
1101
+
1102
+ def test_ips__ip_address__get
1103
+ ip_address = 'test_url_param'
1104
+ headers = JSON.parse('{"X-Mock": 200}')
1105
+
1106
+ response = @sg.client.ips._(ip_address).get(request_headers: headers)
1107
+
1108
+ assert_equal('200', response.status_code)
1109
+ end
1110
+
1111
+ def test_mail_batch_post
1112
+ headers = JSON.parse('{"X-Mock": 201}')
1113
+
1114
+ response = @sg.client.mail.batch.post(request_headers: headers)
1115
+
1116
+ assert_equal('201', response.status_code)
1117
+ end
1118
+
1119
+ def test_mail_batch__batch_id__get
1120
+ batch_id = 'test_url_param'
1121
+ headers = JSON.parse('{"X-Mock": 200}')
1122
+
1123
+ response = @sg.client.mail.batch._(batch_id).get(request_headers: headers)
1124
+
1125
+ assert_equal('200', response.status_code)
1126
+ end
1127
+
1128
+ def test_mail_send_post
1129
+ data = JSON.parse('{
1130
+ "asm": {
1131
+ "group_id": 1,
1132
+ "groups_to_display": [
1133
+ 1,
1134
+ 2,
1135
+ 3
1136
+ ]
1137
+ },
1138
+ "attachments": [
1139
+ {
1140
+ "content": "[BASE64 encoded content block here]",
1141
+ "content_id": "ii_139db99fdb5c3704",
1142
+ "disposition": "inline",
1143
+ "filename": "file1.jpg",
1144
+ "name": "file1",
1145
+ "type": "jpg"
1146
+ }
1147
+ ],
1148
+ "batch_id": "[YOUR BATCH ID GOES HERE]",
1149
+ "categories": [
1150
+ "category1",
1151
+ "category2"
1152
+ ],
1153
+ "content": [
1154
+ {
1155
+ "type": "text/html",
1156
+ "value": "<html><p>Hello, world!</p><img src=[CID GOES HERE]></img></html>"
1157
+ }
1158
+ ],
1159
+ "custom_args": {
1160
+ "New Argument 1": "New Value 1",
1161
+ "activationAttempt": "1",
1162
+ "customerAccountNumber": "[CUSTOMER ACCOUNT NUMBER GOES HERE]"
1163
+ },
1164
+ "from": {
1165
+ "email": "sam.smith@example.com",
1166
+ "name": "Sam Smith"
1167
+ },
1168
+ "headers": {},
1169
+ "ip_pool_name": "[YOUR POOL NAME GOES HERE]",
1170
+ "mail_settings": {
1171
+ "bcc": {
1172
+ "email": "ben.doe@example.com",
1173
+ "enable": true
1174
+ },
1175
+ "bypass_list_management": {
1176
+ "enable": true
1177
+ },
1178
+ "footer": {
1179
+ "enable": true,
1180
+ "html": "<p>Thanks</br>The SendGrid Team</p>",
1181
+ "text": "Thanks,/n The SendGrid Team"
1182
+ },
1183
+ "sandbox_mode": {
1184
+ "enable": false
1185
+ },
1186
+ "spam_check": {
1187
+ "enable": true,
1188
+ "post_to_url": "http://example.com/compliance",
1189
+ "threshold": 3
1190
+ }
1191
+ },
1192
+ "personalizations": [
1193
+ {
1194
+ "bcc": [
1195
+ {
1196
+ "email": "sam.doe@example.com",
1197
+ "name": "Sam Doe"
1198
+ }
1199
+ ],
1200
+ "cc": [
1201
+ {
1202
+ "email": "jane.doe@example.com",
1203
+ "name": "Jane Doe"
1204
+ }
1205
+ ],
1206
+ "custom_args": {
1207
+ "New Argument 1": "New Value 1",
1208
+ "activationAttempt": "1",
1209
+ "customerAccountNumber": "[CUSTOMER ACCOUNT NUMBER GOES HERE]"
1210
+ },
1211
+ "headers": {
1212
+ "X-Accept-Language": "en",
1213
+ "X-Mailer": "MyApp"
1214
+ },
1215
+ "send_at": 1409348513,
1216
+ "subject": "Hello, World!",
1217
+ "substitutions": {
1218
+ "id": "substitutions",
1219
+ "type": "object"
1220
+ },
1221
+ "to": [
1222
+ {
1223
+ "email": "john.doe@example.com",
1224
+ "name": "John Doe"
1225
+ }
1226
+ ]
1227
+ }
1228
+ ],
1229
+ "reply_to": {
1230
+ "email": "sam.smith@example.com",
1231
+ "name": "Sam Smith"
1232
+ },
1233
+ "sections": {
1234
+ "section": {
1235
+ ":sectionName1": "section 1 text",
1236
+ ":sectionName2": "section 2 text"
1237
+ }
1238
+ },
1239
+ "send_at": 1409348513,
1240
+ "subject": "Hello, World!",
1241
+ "template_id": "[YOUR TEMPLATE ID GOES HERE]",
1242
+ "tracking_settings": {
1243
+ "click_tracking": {
1244
+ "enable": true,
1245
+ "enable_text": true
1246
+ },
1247
+ "ganalytics": {
1248
+ "enable": true,
1249
+ "utm_campaign": "[NAME OF YOUR REFERRER SOURCE]",
1250
+ "utm_content": "[USE THIS SPACE TO DIFFERENTIATE YOUR EMAIL FROM ADS]",
1251
+ "utm_medium": "[NAME OF YOUR MARKETING MEDIUM e.g. email]",
1252
+ "utm_name": "[NAME OF YOUR CAMPAIGN]",
1253
+ "utm_term": "[IDENTIFY PAID KEYWORDS HERE]"
1254
+ },
1255
+ "open_tracking": {
1256
+ "enable": true,
1257
+ "substitution_tag": "%opentrack"
1258
+ },
1259
+ "subscription_tracking": {
1260
+ "enable": true,
1261
+ "html": "If you would like to unsubscribe and stop receiving these emails <% clickhere %>.",
1262
+ "substitution_tag": "<%click here%>",
1263
+ "text": "If you would like to unsubscribe and stop receiveing these emails <% click here %>."
1264
+ }
1265
+ }
1266
+ }')
1267
+ headers = JSON.parse('{"X-Mock": 202}')
1268
+
1269
+ response = @sg.client.mail._('send').post(request_body: data, request_headers: headers)
1270
+
1271
+ assert_equal('202', response.status_code)
1272
+ end
1273
+
1274
+ def test_mail_settings_get
1275
+ params = JSON.parse('{"limit": 1, "offset": 1}')
1276
+ headers = JSON.parse('{"X-Mock": 200}')
1277
+
1278
+ response = @sg.client.mail_settings.get(query_params: params, request_headers: headers)
1279
+
1280
+ assert_equal('200', response.status_code)
1281
+ end
1282
+
1283
+ def test_mail_settings_address_whitelist_patch
1284
+ data = JSON.parse('{
1285
+ "enabled": true,
1286
+ "list": [
1287
+ "email1@example.com",
1288
+ "example.com"
1289
+ ]
1290
+ }')
1291
+ headers = JSON.parse('{"X-Mock": 200}')
1292
+
1293
+ response = @sg.client.mail_settings.address_whitelist.patch(request_body: data, request_headers: headers)
1294
+
1295
+ assert_equal('200', response.status_code)
1296
+ end
1297
+
1298
+ def test_mail_settings_address_whitelist_get
1299
+ headers = JSON.parse('{"X-Mock": 200}')
1300
+
1301
+ response = @sg.client.mail_settings.address_whitelist.get(request_headers: headers)
1302
+
1303
+ assert_equal('200', response.status_code)
1304
+ end
1305
+
1306
+ def test_mail_settings_bcc_patch
1307
+ data = JSON.parse('{
1308
+ "email": "email@example.com",
1309
+ "enabled": false
1310
+ }')
1311
+ headers = JSON.parse('{"X-Mock": 200}')
1312
+
1313
+ response = @sg.client.mail_settings.bcc.patch(request_body: data, request_headers: headers)
1314
+
1315
+ assert_equal('200', response.status_code)
1316
+ end
1317
+
1318
+ def test_mail_settings_bcc_get
1319
+ headers = JSON.parse('{"X-Mock": 200}')
1320
+
1321
+ response = @sg.client.mail_settings.bcc.get(request_headers: headers)
1322
+
1323
+ assert_equal('200', response.status_code)
1324
+ end
1325
+
1326
+ def test_mail_settings_bounce_purge_patch
1327
+ data = JSON.parse('{
1328
+ "enabled": true,
1329
+ "hard_bounces": 5,
1330
+ "soft_bounces": 5
1331
+ }')
1332
+ headers = JSON.parse('{"X-Mock": 200}')
1333
+
1334
+ response = @sg.client.mail_settings.bounce_purge.patch(request_body: data, request_headers: headers)
1335
+
1336
+ assert_equal('200', response.status_code)
1337
+ end
1338
+
1339
+ def test_mail_settings_bounce_purge_get
1340
+ headers = JSON.parse('{"X-Mock": 200}')
1341
+
1342
+ response = @sg.client.mail_settings.bounce_purge.get(request_headers: headers)
1343
+
1344
+ assert_equal('200', response.status_code)
1345
+ end
1346
+
1347
+ def test_mail_settings_footer_patch
1348
+ data = JSON.parse('{
1349
+ "enabled": true,
1350
+ "html_content": "...",
1351
+ "plain_content": "..."
1352
+ }')
1353
+ headers = JSON.parse('{"X-Mock": 200}')
1354
+
1355
+ response = @sg.client.mail_settings.footer.patch(request_body: data, request_headers: headers)
1356
+
1357
+ assert_equal('200', response.status_code)
1358
+ end
1359
+
1360
+ def test_mail_settings_footer_get
1361
+ headers = JSON.parse('{"X-Mock": 200}')
1362
+
1363
+ response = @sg.client.mail_settings.footer.get(request_headers: headers)
1364
+
1365
+ assert_equal('200', response.status_code)
1366
+ end
1367
+
1368
+ def test_mail_settings_forward_bounce_patch
1369
+ data = JSON.parse('{
1370
+ "email": "example@example.com",
1371
+ "enabled": true
1372
+ }')
1373
+ headers = JSON.parse('{"X-Mock": 200}')
1374
+
1375
+ response = @sg.client.mail_settings.forward_bounce.patch(request_body: data, request_headers: headers)
1376
+
1377
+ assert_equal('200', response.status_code)
1378
+ end
1379
+
1380
+ def test_mail_settings_forward_bounce_get
1381
+ headers = JSON.parse('{"X-Mock": 200}')
1382
+
1383
+ response = @sg.client.mail_settings.forward_bounce.get(request_headers: headers)
1384
+
1385
+ assert_equal('200', response.status_code)
1386
+ end
1387
+
1388
+ def test_mail_settings_forward_spam_patch
1389
+ data = JSON.parse('{
1390
+ "email": "",
1391
+ "enabled": false
1392
+ }')
1393
+ headers = JSON.parse('{"X-Mock": 200}')
1394
+
1395
+ response = @sg.client.mail_settings.forward_spam.patch(request_body: data, request_headers: headers)
1396
+
1397
+ assert_equal('200', response.status_code)
1398
+ end
1399
+
1400
+ def test_mail_settings_forward_spam_get
1401
+ headers = JSON.parse('{"X-Mock": 200}')
1402
+
1403
+ response = @sg.client.mail_settings.forward_spam.get(request_headers: headers)
1404
+
1405
+ assert_equal('200', response.status_code)
1406
+ end
1407
+
1408
+ def test_mail_settings_plain_content_patch
1409
+ data = JSON.parse('{
1410
+ "enabled": false
1411
+ }')
1412
+ headers = JSON.parse('{"X-Mock": 200}')
1413
+
1414
+ response = @sg.client.mail_settings.plain_content.patch(request_body: data, request_headers: headers)
1415
+
1416
+ assert_equal('200', response.status_code)
1417
+ end
1418
+
1419
+ def test_mail_settings_plain_content_get
1420
+ headers = JSON.parse('{"X-Mock": 200}')
1421
+
1422
+ response = @sg.client.mail_settings.plain_content.get(request_headers: headers)
1423
+
1424
+ assert_equal('200', response.status_code)
1425
+ end
1426
+
1427
+ def test_mail_settings_spam_check_patch
1428
+ data = JSON.parse('{
1429
+ "enabled": true,
1430
+ "max_score": 5,
1431
+ "url": "url"
1432
+ }')
1433
+ headers = JSON.parse('{"X-Mock": 200}')
1434
+
1435
+ response = @sg.client.mail_settings.spam_check.patch(request_body: data, request_headers: headers)
1436
+
1437
+ assert_equal('200', response.status_code)
1438
+ end
1439
+
1440
+ def test_mail_settings_spam_check_get
1441
+ headers = JSON.parse('{"X-Mock": 200}')
1442
+
1443
+ response = @sg.client.mail_settings.spam_check.get(request_headers: headers)
1444
+
1445
+ assert_equal('200', response.status_code)
1446
+ end
1447
+
1448
+ def test_mail_settings_template_patch
1449
+ data = JSON.parse('{
1450
+ "enabled": true,
1451
+ "html_content": "<% body %>"
1452
+ }')
1453
+ headers = JSON.parse('{"X-Mock": 200}')
1454
+
1455
+ response = @sg.client.mail_settings.template.patch(request_body: data, request_headers: headers)
1456
+
1457
+ assert_equal('200', response.status_code)
1458
+ end
1459
+
1460
+ def test_mail_settings_template_get
1461
+ headers = JSON.parse('{"X-Mock": 200}')
1462
+
1463
+ response = @sg.client.mail_settings.template.get(request_headers: headers)
1464
+
1465
+ assert_equal('200', response.status_code)
1466
+ end
1467
+
1468
+ def test_mailbox_providers_stats_get
1469
+ params = JSON.parse('{"end_date": "2016-04-01", "mailbox_providers": "test_string", "aggregated_by": "day", "limit": 1, "offset": 1, "start_date": "2016-01-01"}')
1470
+ headers = JSON.parse('{"X-Mock": 200}')
1471
+
1472
+ response = @sg.client.mailbox_providers.stats.get(query_params: params, request_headers: headers)
1473
+
1474
+ assert_equal('200', response.status_code)
1475
+ end
1476
+
1477
+ def test_partner_settings_get
1478
+ params = JSON.parse('{"limit": 1, "offset": 1}')
1479
+ headers = JSON.parse('{"X-Mock": 200}')
1480
+
1481
+ response = @sg.client.partner_settings.get(query_params: params, request_headers: headers)
1482
+
1483
+ assert_equal('200', response.status_code)
1484
+ end
1485
+
1486
+ def test_partner_settings_new_relic_patch
1487
+ data = JSON.parse('{
1488
+ "enable_subuser_statistics": true,
1489
+ "enabled": true,
1490
+ "license_key": ""
1491
+ }')
1492
+ headers = JSON.parse('{"X-Mock": 200}')
1493
+
1494
+ response = @sg.client.partner_settings.new_relic.patch(request_body: data, request_headers: headers)
1495
+
1496
+ assert_equal('200', response.status_code)
1497
+ end
1498
+
1499
+ def test_partner_settings_new_relic_get
1500
+ headers = JSON.parse('{"X-Mock": 200}')
1501
+
1502
+ response = @sg.client.partner_settings.new_relic.get(request_headers: headers)
1503
+
1504
+ assert_equal('200', response.status_code)
1505
+ end
1506
+
1507
+ def test_scopes_get
1508
+ headers = JSON.parse('{"X-Mock": 200}')
1509
+
1510
+ response = @sg.client.scopes.get(request_headers: headers)
1511
+
1512
+ assert_equal('200', response.status_code)
1513
+ end
1514
+
1515
+ def test_senders_post
1516
+ data = JSON.parse('{
1517
+ "address": "123 Elm St.",
1518
+ "address_2": "Apt. 456",
1519
+ "city": "Denver",
1520
+ "country": "United States",
1521
+ "from": {
1522
+ "email": "from@example.com",
1523
+ "name": "Example INC"
1524
+ },
1525
+ "nickname": "My Sender ID",
1526
+ "reply_to": {
1527
+ "email": "replyto@example.com",
1528
+ "name": "Example INC"
1529
+ },
1530
+ "state": "Colorado",
1531
+ "zip": "80202"
1532
+ }')
1533
+ headers = JSON.parse('{"X-Mock": 201}')
1534
+ response = @sg.client.senders.post(request_body: data, request_headers: headers)
1535
+ assert_equal(response.status_code, '201')
1536
+ end
1537
+
1538
+ def test_senders_get
1539
+ headers = JSON.parse('{"X-Mock": 200}')
1540
+ response = @sg.client.senders.get(request_headers: headers)
1541
+ assert_equal(response.status_code, '200')
1542
+ end
1543
+
1544
+ def test_senders__sender_id__patch
1545
+ data = JSON.parse('{
1546
+ "address": "123 Elm St.",
1547
+ "address_2": "Apt. 456",
1548
+ "city": "Denver",
1549
+ "country": "United States",
1550
+ "from": {
1551
+ "email": "from@example.com",
1552
+ "name": "Example INC"
1553
+ },
1554
+ "nickname": "My Sender ID",
1555
+ "reply_to": {
1556
+ "email": "replyto@example.com",
1557
+ "name": "Example INC"
1558
+ },
1559
+ "state": "Colorado",
1560
+ "zip": "80202"
1561
+ }')
1562
+ sender_id = 'test_url_param'
1563
+ headers = JSON.parse('{"X-Mock": 200}')
1564
+ response = @sg.client.senders._(sender_id).patch(request_body: data, request_headers: headers)
1565
+ assert_equal(response.status_code, '200')
1566
+ end
1567
+
1568
+ def test_senders__sender_id__get
1569
+ sender_id = 'test_url_param'
1570
+ headers = JSON.parse('{"X-Mock": 200}')
1571
+ response = @sg.client.senders._(sender_id).get(request_headers: headers)
1572
+ assert_equal(response.status_code, '200')
1573
+ end
1574
+
1575
+ def test_senders__sender_id__delete
1576
+ sender_id = 'test_url_param'
1577
+ headers = JSON.parse('{"X-Mock": 204}')
1578
+ response = @sg.client.senders._(sender_id).delete(request_headers: headers)
1579
+ assert_equal(response.status_code, '204')
1580
+ end
1581
+
1582
+ def test_senders__sender_id__resend_verification_post
1583
+ sender_id = 'test_url_param'
1584
+ headers = JSON.parse('{"X-Mock": 204}')
1585
+ response = @sg.client.senders._(sender_id).resend_verification.post(request_headers: headers)
1586
+ assert_equal(response.status_code, '204')
1587
+ end
1588
+
1589
+ def test_stats_get
1590
+ params = JSON.parse('{"aggregated_by": "day", "limit": 1, "start_date": "2016-01-01", "end_date": "2016-04-01", "offset": 1}')
1591
+ headers = JSON.parse('{"X-Mock": 200}')
1592
+
1593
+ response = @sg.client.stats.get(query_params: params, request_headers: headers)
1594
+
1595
+ assert_equal('200', response.status_code)
1596
+ end
1597
+
1598
+ def test_subusers_post
1599
+ data = JSON.parse('{
1600
+ "email": "John@example.com",
1601
+ "ips": [
1602
+ "1.1.1.1",
1603
+ "2.2.2.2"
1604
+ ],
1605
+ "password": "johns_password",
1606
+ "username": "John@example.com"
1607
+ }')
1608
+ headers = JSON.parse('{"X-Mock": 200}')
1609
+
1610
+ response = @sg.client.subusers.post(request_body: data, request_headers: headers)
1611
+
1612
+ assert_equal('200', response.status_code)
1613
+ end
1614
+
1615
+ def test_subusers_get
1616
+ params = JSON.parse('{"username": "test_string", "limit": 1, "offset": 1}')
1617
+ headers = JSON.parse('{"X-Mock": 200}')
1618
+
1619
+ response = @sg.client.subusers.get(query_params: params, request_headers: headers)
1620
+
1621
+ assert_equal('200', response.status_code)
1622
+ end
1623
+
1624
+ def test_subusers_reputations_get
1625
+ params = JSON.parse('{"usernames": "test_string"}')
1626
+ headers = JSON.parse('{"X-Mock": 200}')
1627
+
1628
+ response = @sg.client.subusers.reputations.get(query_params: params, request_headers: headers)
1629
+
1630
+ assert_equal('200', response.status_code)
1631
+ end
1632
+
1633
+ def test_subusers_stats_get
1634
+ params = JSON.parse('{"end_date": "2016-04-01", "aggregated_by": "day", "limit": 1, "offset": 1, "start_date": "2016-01-01", "subusers": "test_string"}')
1635
+ headers = JSON.parse('{"X-Mock": 200}')
1636
+
1637
+ response = @sg.client.subusers.stats.get(query_params: params, request_headers: headers)
1638
+
1639
+ assert_equal('200', response.status_code)
1640
+ end
1641
+
1642
+ def test_subusers_stats_monthly_get
1643
+ params = JSON.parse('{"subuser": "test_string", "limit": 1, "sort_by_metric": "test_string", "offset": 1, "date": "test_string", "sort_by_direction": "asc"}')
1644
+ headers = JSON.parse('{"X-Mock": 200}')
1645
+
1646
+ response = @sg.client.subusers.stats.monthly.get(query_params: params, request_headers: headers)
1647
+
1648
+ assert_equal('200', response.status_code)
1649
+ end
1650
+
1651
+ def test_subusers_stats_sums_get
1652
+ params = JSON.parse('{"end_date": "2016-04-01", "aggregated_by": "day", "limit": 1, "sort_by_metric": "test_string", "offset": 1, "start_date": "2016-01-01", "sort_by_direction": "asc"}')
1653
+ headers = JSON.parse('{"X-Mock": 200}')
1654
+
1655
+ response = @sg.client.subusers.stats.sums.get(query_params: params, request_headers: headers)
1656
+
1657
+ assert_equal('200', response.status_code)
1658
+ end
1659
+
1660
+ def test_subusers__subuser_name__patch
1661
+ data = JSON.parse('{
1662
+ "disabled": false
1663
+ }')
1664
+ subuser_name = 'test_url_param'
1665
+ headers = JSON.parse('{"X-Mock": 204}')
1666
+
1667
+ response = @sg.client.subusers._(subuser_name).patch(request_body: data, request_headers: headers)
1668
+
1669
+ assert_equal('204', response.status_code)
1670
+ end
1671
+
1672
+ def test_subusers__subuser_name__delete
1673
+ subuser_name = 'test_url_param'
1674
+ headers = JSON.parse('{"X-Mock": 204}')
1675
+
1676
+ response = @sg.client.subusers._(subuser_name).delete(request_headers: headers)
1677
+
1678
+ assert_equal('204', response.status_code)
1679
+ end
1680
+
1681
+ def test_subusers__subuser_name__ips_put
1682
+ data = JSON.parse('[
1683
+ "127.0.0.1"
1684
+ ]')
1685
+ subuser_name = 'test_url_param'
1686
+ headers = JSON.parse('{"X-Mock": 200}')
1687
+
1688
+ response = @sg.client.subusers._(subuser_name).ips.put(request_body: data, request_headers: headers)
1689
+
1690
+ assert_equal('200', response.status_code)
1691
+ end
1692
+
1693
+ def test_subusers__subuser_name__monitor_put
1694
+ data = JSON.parse('{
1695
+ "email": "example@example.com",
1696
+ "frequency": 500
1697
+ }')
1698
+ subuser_name = 'test_url_param'
1699
+ headers = JSON.parse('{"X-Mock": 200}')
1700
+
1701
+ response = @sg.client.subusers._(subuser_name).monitor.put(request_body: data, request_headers: headers)
1702
+
1703
+ assert_equal('200', response.status_code)
1704
+ end
1705
+
1706
+ def test_subusers__subuser_name__monitor_post
1707
+ data = JSON.parse('{
1708
+ "email": "example@example.com",
1709
+ "frequency": 50000
1710
+ }')
1711
+ subuser_name = 'test_url_param'
1712
+ headers = JSON.parse('{"X-Mock": 200}')
1713
+
1714
+ response = @sg.client.subusers._(subuser_name).monitor.post(request_body: data, request_headers: headers)
1715
+
1716
+ assert_equal('200', response.status_code)
1717
+ end
1718
+
1719
+ def test_subusers__subuser_name__monitor_get
1720
+ subuser_name = 'test_url_param'
1721
+ headers = JSON.parse('{"X-Mock": 200}')
1722
+
1723
+ response = @sg.client.subusers._(subuser_name).monitor.get(request_headers: headers)
1724
+
1725
+ assert_equal('200', response.status_code)
1726
+ end
1727
+
1728
+ def test_subusers__subuser_name__monitor_delete
1729
+ subuser_name = 'test_url_param'
1730
+ headers = JSON.parse('{"X-Mock": 204}')
1731
+
1732
+ response = @sg.client.subusers._(subuser_name).monitor.delete(request_headers: headers)
1733
+
1734
+ assert_equal('204', response.status_code)
1735
+ end
1736
+
1737
+ def test_subusers__subuser_name__stats_monthly_get
1738
+ params = JSON.parse('{"date": "test_string", "sort_by_direction": "asc", "limit": 1, "sort_by_metric": "test_string", "offset": 1}')
1739
+ subuser_name = 'test_url_param'
1740
+ headers = JSON.parse('{"X-Mock": 200}')
1741
+
1742
+ response = @sg.client.subusers._(subuser_name).stats.monthly.get(query_params: params, request_headers: headers)
1743
+
1744
+ assert_equal('200', response.status_code)
1745
+ end
1746
+
1747
+ def test_suppression_blocks_get
1748
+ params = JSON.parse('{"start_time": 1, "limit": 1, "end_time": 1, "offset": 1}')
1749
+ headers = JSON.parse('{"X-Mock": 200}')
1750
+
1751
+ response = @sg.client.suppression.blocks.get(query_params: params, request_headers: headers)
1752
+
1753
+ assert_equal('200', response.status_code)
1754
+ end
1755
+
1756
+ def test_suppression_blocks_delete
1757
+ data = JSON.parse('{
1758
+ "delete_all": false,
1759
+ "emails": [
1760
+ "example1@example.com",
1761
+ "example2@example.com"
1762
+ ]
1763
+ }')
1764
+ headers = JSON.parse('{"X-Mock": 204}')
1765
+
1766
+ response = @sg.client.suppression.blocks.delete(request_body: data, request_headers: headers)
1767
+
1768
+ assert_equal('204', response.status_code)
1769
+ end
1770
+
1771
+ def test_suppression_blocks__email__get
1772
+ email = 'test_url_param'
1773
+ headers = JSON.parse('{"X-Mock": 200}')
1774
+
1775
+ response = @sg.client.suppression.blocks._(email).get(request_headers: headers)
1776
+
1777
+ assert_equal('200', response.status_code)
1778
+ end
1779
+
1780
+ def test_suppression_blocks__email__delete
1781
+ email = 'test_url_param'
1782
+ headers = JSON.parse('{"X-Mock": 204}')
1783
+
1784
+ response = @sg.client.suppression.blocks._(email).delete(request_headers: headers)
1785
+
1786
+ assert_equal('204', response.status_code)
1787
+ end
1788
+
1789
+ def test_suppression_bounces_get
1790
+ params = JSON.parse('{"start_time": 1, "end_time": 1}')
1791
+ headers = JSON.parse('{"X-Mock": 200}')
1792
+
1793
+ response = @sg.client.suppression.bounces.get(query_params: params, request_headers: headers)
1794
+
1795
+ assert_equal('200', response.status_code)
1796
+ end
1797
+
1798
+ def test_suppression_bounces_delete
1799
+ data = JSON.parse('{
1800
+ "delete_all": true,
1801
+ "emails": [
1802
+ "example@example.com",
1803
+ "example2@example.com"
1804
+ ]
1805
+ }')
1806
+ headers = JSON.parse('{"X-Mock": 204}')
1807
+
1808
+ response = @sg.client.suppression.bounces.delete(request_body: data, request_headers: headers)
1809
+
1810
+ assert_equal('204', response.status_code)
1811
+ end
1812
+
1813
+ def test_suppression_bounces__email__get
1814
+ email = 'test_url_param'
1815
+ headers = JSON.parse('{"X-Mock": 200}')
1816
+
1817
+ response = @sg.client.suppression.bounces._(email).get(request_headers: headers)
1818
+
1819
+ assert_equal('200', response.status_code)
1820
+ end
1821
+
1822
+ def test_suppression_bounces__email__delete
1823
+ params = JSON.parse('{"email_address": "example@example.com"}')
1824
+ email = 'test_url_param'
1825
+ headers = JSON.parse('{"X-Mock": 204}')
1826
+
1827
+ response = @sg.client.suppression.bounces._(email).delete(query_params: params, request_headers: headers)
1828
+
1829
+ assert_equal('204', response.status_code)
1830
+ end
1831
+
1832
+ def test_suppression_invalid_emails_get
1833
+ params = JSON.parse('{"start_time": 1, "limit": 1, "end_time": 1, "offset": 1}')
1834
+ headers = JSON.parse('{"X-Mock": 200}')
1835
+
1836
+ response = @sg.client.suppression.invalid_emails.get(query_params: params, request_headers: headers)
1837
+
1838
+ assert_equal('200', response.status_code)
1839
+ end
1840
+
1841
+ def test_suppression_invalid_emails_delete
1842
+ data = JSON.parse('{
1843
+ "delete_all": false,
1844
+ "emails": [
1845
+ "example1@example.com",
1846
+ "example2@example.com"
1847
+ ]
1848
+ }')
1849
+ headers = JSON.parse('{"X-Mock": 204}')
1850
+
1851
+ response = @sg.client.suppression.invalid_emails.delete(request_body: data, request_headers: headers)
1852
+
1853
+ assert_equal('204', response.status_code)
1854
+ end
1855
+
1856
+ def test_suppression_invalid_emails__email__get
1857
+ email = 'test_url_param'
1858
+ headers = JSON.parse('{"X-Mock": 200}')
1859
+
1860
+ response = @sg.client.suppression.invalid_emails._(email).get(request_headers: headers)
1861
+
1862
+ assert_equal('200', response.status_code)
1863
+ end
1864
+
1865
+ def test_suppression_invalid_emails__email__delete
1866
+ email = 'test_url_param'
1867
+ headers = JSON.parse('{"X-Mock": 204}')
1868
+
1869
+ response = @sg.client.suppression.invalid_emails._(email).delete(request_headers: headers)
1870
+
1871
+ assert_equal('204', response.status_code)
1872
+ end
1873
+
1874
+ def test_suppression_spam_report__email__get
1875
+ email = 'test_url_param'
1876
+ headers = JSON.parse('{"X-Mock": 200}')
1877
+
1878
+ response = @sg.client.suppression.spam_reports._(email).get(request_headers: headers)
1879
+
1880
+ assert_equal('200', response.status_code)
1881
+ end
1882
+
1883
+ def test_suppression_spam_report__email__delete
1884
+ email = 'test_url_param'
1885
+ headers = JSON.parse('{"X-Mock": 204}')
1886
+
1887
+ response = @sg.client.suppression.spam_reports._(email).delete(request_headers: headers)
1888
+
1889
+ assert_equal('204', response.status_code)
1890
+ end
1891
+
1892
+ def test_suppression_spam_reports_get
1893
+ params = JSON.parse('{"start_time": 1, "limit": 1, "end_time": 1, "offset": 1}')
1894
+ headers = JSON.parse('{"X-Mock": 200}')
1895
+
1896
+ response = @sg.client.suppression.spam_reports.get(query_params: params, request_headers: headers)
1897
+
1898
+ assert_equal('200', response.status_code)
1899
+ end
1900
+
1901
+ def test_suppression_spam_reports_delete
1902
+ data = JSON.parse('{
1903
+ "delete_all": false,
1904
+ "emails": [
1905
+ "example1@example.com",
1906
+ "example2@example.com"
1907
+ ]
1908
+ }')
1909
+ headers = JSON.parse('{"X-Mock": 204}')
1910
+
1911
+ response = @sg.client.suppression.spam_reports.delete(request_body: data, request_headers: headers)
1912
+
1913
+ assert_equal('204', response.status_code)
1914
+ end
1915
+
1916
+ def test_suppression_unsubscribes_get
1917
+ params = JSON.parse('{"start_time": 1, "limit": 1, "end_time": 1, "offset": 1}')
1918
+ headers = JSON.parse('{"X-Mock": 200}')
1919
+
1920
+ response = @sg.client.suppression.unsubscribes.get(query_params: params, request_headers: headers)
1921
+
1922
+ assert_equal('200', response.status_code)
1923
+ end
1924
+
1925
+ def test_templates_post
1926
+ data = JSON.parse('{
1927
+ "name": "example_name"
1928
+ }')
1929
+ headers = JSON.parse('{"X-Mock": 201}')
1930
+
1931
+ response = @sg.client.templates.post(request_body: data, request_headers: headers)
1932
+
1933
+ assert_equal('201', response.status_code)
1934
+ end
1935
+
1936
+ def test_templates_get
1937
+ headers = JSON.parse('{"X-Mock": 200}')
1938
+
1939
+ response = @sg.client.templates.get(request_headers: headers)
1940
+
1941
+ assert_equal('200', response.status_code)
1942
+ end
1943
+
1944
+ def test_templates__template_id__patch
1945
+ data = JSON.parse('{
1946
+ "name": "new_example_name"
1947
+ }')
1948
+ template_id = 'test_url_param'
1949
+ headers = JSON.parse('{"X-Mock": 200}')
1950
+
1951
+ response = @sg.client.templates._(template_id).patch(request_body: data, request_headers: headers)
1952
+
1953
+ assert_equal('200', response.status_code)
1954
+ end
1955
+
1956
+ def test_templates__template_id__get
1957
+ template_id = 'test_url_param'
1958
+ headers = JSON.parse('{"X-Mock": 200}')
1959
+
1960
+ response = @sg.client.templates._(template_id).get(request_headers: headers)
1961
+
1962
+ assert_equal('200', response.status_code)
1963
+ end
1964
+
1965
+ def test_templates__template_id__delete
1966
+ template_id = 'test_url_param'
1967
+ headers = JSON.parse('{"X-Mock": 204}')
1968
+
1969
+ response = @sg.client.templates._(template_id).delete(request_headers: headers)
1970
+
1971
+ assert_equal('204', response.status_code)
1972
+ end
1973
+
1974
+ def test_templates__template_id__versions_post
1975
+ data = JSON.parse('{
1976
+ "active": 1,
1977
+ "html_content": "<%body%>",
1978
+ "name": "example_version_name",
1979
+ "plain_content": "<%body%>",
1980
+ "subject": "<%subject%>",
1981
+ "template_id": "ddb96bbc-9b92-425e-8979-99464621b543"
1982
+ }')
1983
+ template_id = 'test_url_param'
1984
+ headers = JSON.parse('{"X-Mock": 201}')
1985
+
1986
+ response = @sg.client.templates._(template_id).versions.post(request_body: data, request_headers: headers)
1987
+
1988
+ assert_equal('201', response.status_code)
1989
+ end
1990
+
1991
+ def test_templates__template_id__versions__version_id__patch
1992
+ data = JSON.parse('{
1993
+ "active": 1,
1994
+ "html_content": "<%body%>",
1995
+ "name": "updated_example_name",
1996
+ "plain_content": "<%body%>",
1997
+ "subject": "<%subject%>"
1998
+ }')
1999
+ template_id = 'test_url_param'
2000
+ version_id = 'test_url_param'
2001
+ headers = JSON.parse('{"X-Mock": 200}')
2002
+
2003
+ response = @sg.client.templates._(template_id).versions._(version_id).patch(request_body: data, request_headers: headers)
2004
+
2005
+ assert_equal('200', response.status_code)
2006
+ end
2007
+
2008
+ def test_templates__template_id__versions__version_id__get
2009
+ template_id = 'test_url_param'
2010
+ version_id = 'test_url_param'
2011
+ headers = JSON.parse('{"X-Mock": 200}')
2012
+
2013
+ response = @sg.client.templates._(template_id).versions._(version_id).get(request_headers: headers)
2014
+
2015
+ assert_equal('200', response.status_code)
2016
+ end
2017
+
2018
+ def test_templates__template_id__versions__version_id__delete
2019
+ template_id = 'test_url_param'
2020
+ version_id = 'test_url_param'
2021
+ headers = JSON.parse('{"X-Mock": 204}')
2022
+
2023
+ response = @sg.client.templates._(template_id).versions._(version_id).delete(request_headers: headers)
2024
+
2025
+ assert_equal('204', response.status_code)
2026
+ end
2027
+
2028
+ def test_templates__template_id__versions__version_id__activate_post
2029
+ template_id = 'test_url_param'
2030
+ version_id = 'test_url_param'
2031
+ headers = JSON.parse('{"X-Mock": 200}')
2032
+
2033
+ response = @sg.client.templates._(template_id).versions._(version_id).activate.post(request_headers: headers)
2034
+
2035
+ assert_equal('200', response.status_code)
2036
+ end
2037
+
2038
+ def test_tracking_settings_get
2039
+ params = JSON.parse('{"limit": 1, "offset": 1}')
2040
+ headers = JSON.parse('{"X-Mock": 200}')
2041
+
2042
+ response = @sg.client.tracking_settings.get(query_params: params, request_headers: headers)
2043
+
2044
+ assert_equal('200', response.status_code)
2045
+ end
2046
+
2047
+ def test_tracking_settings_click_patch
2048
+ data = JSON.parse('{
2049
+ "enabled": true
2050
+ }')
2051
+ headers = JSON.parse('{"X-Mock": 200}')
2052
+
2053
+ response = @sg.client.tracking_settings.click.patch(request_body: data, request_headers: headers)
2054
+
2055
+ assert_equal('200', response.status_code)
2056
+ end
2057
+
2058
+ def test_tracking_settings_click_get
2059
+ headers = JSON.parse('{"X-Mock": 200}')
2060
+
2061
+ response = @sg.client.tracking_settings.click.get(request_headers: headers)
2062
+
2063
+ assert_equal('200', response.status_code)
2064
+ end
2065
+
2066
+ def test_tracking_settings_google_analytics_patch
2067
+ data = JSON.parse('{
2068
+ "enabled": true,
2069
+ "utm_campaign": "website",
2070
+ "utm_content": "",
2071
+ "utm_medium": "email",
2072
+ "utm_source": "sendgrid.com",
2073
+ "utm_term": ""
2074
+ }')
2075
+ headers = JSON.parse('{"X-Mock": 200}')
2076
+
2077
+ response = @sg.client.tracking_settings.google_analytics.patch(request_body: data, request_headers: headers)
2078
+
2079
+ assert_equal('200', response.status_code)
2080
+ end
2081
+
2082
+ def test_tracking_settings_google_analytics_get
2083
+ headers = JSON.parse('{"X-Mock": 200}')
2084
+
2085
+ response = @sg.client.tracking_settings.google_analytics.get(request_headers: headers)
2086
+
2087
+ assert_equal('200', response.status_code)
2088
+ end
2089
+
2090
+ def test_tracking_settings_open_patch
2091
+ data = JSON.parse('{
2092
+ "enabled": true
2093
+ }')
2094
+ headers = JSON.parse('{"X-Mock": 200}')
2095
+
2096
+ response = @sg.client.tracking_settings.open.patch(request_body: data, request_headers: headers)
2097
+
2098
+ assert_equal('200', response.status_code)
2099
+ end
2100
+
2101
+ def test_tracking_settings_open_get
2102
+ headers = JSON.parse('{"X-Mock": 200}')
2103
+
2104
+ response = @sg.client.tracking_settings.open.get(request_headers: headers)
2105
+
2106
+ assert_equal('200', response.status_code)
2107
+ end
2108
+
2109
+ def test_tracking_settings_subscription_patch
2110
+ data = JSON.parse('{
2111
+ "enabled": true,
2112
+ "html_content": "html content",
2113
+ "landing": "landing page html",
2114
+ "plain_content": "text content",
2115
+ "replace": "replacement tag",
2116
+ "url": "url"
2117
+ }')
2118
+ headers = JSON.parse('{"X-Mock": 200}')
2119
+
2120
+ response = @sg.client.tracking_settings.subscription.patch(request_body: data, request_headers: headers)
2121
+
2122
+ assert_equal('200', response.status_code)
2123
+ end
2124
+
2125
+ def test_tracking_settings_subscription_get
2126
+ headers = JSON.parse('{"X-Mock": 200}')
2127
+
2128
+ response = @sg.client.tracking_settings.subscription.get(request_headers: headers)
2129
+
2130
+ assert_equal('200', response.status_code)
2131
+ end
2132
+
2133
+ def test_user_account_get
2134
+ headers = JSON.parse('{"X-Mock": 200}')
2135
+
2136
+ response = @sg.client.user.account.get(request_headers: headers)
2137
+
2138
+ assert_equal('200', response.status_code)
2139
+ end
2140
+
2141
+ def test_user_credits_get
2142
+ headers = JSON.parse('{"X-Mock": 200}')
2143
+
2144
+ response = @sg.client.user.credits.get(request_headers: headers)
2145
+
2146
+ assert_equal('200', response.status_code)
2147
+ end
2148
+
2149
+ def test_user_email_put
2150
+ data = JSON.parse('{
2151
+ "email": "example@example.com"
2152
+ }')
2153
+ headers = JSON.parse('{"X-Mock": 200}')
2154
+
2155
+ response = @sg.client.user.email.put(request_body: data, request_headers: headers)
2156
+
2157
+ assert_equal('200', response.status_code)
2158
+ end
2159
+
2160
+ def test_user_email_get
2161
+ headers = JSON.parse('{"X-Mock": 200}')
2162
+
2163
+ response = @sg.client.user.email.get(request_headers: headers)
2164
+
2165
+ assert_equal('200', response.status_code)
2166
+ end
2167
+
2168
+ def test_user_password_put
2169
+ data = JSON.parse('{
2170
+ "new_password": "new_password",
2171
+ "old_password": "old_password"
2172
+ }')
2173
+ headers = JSON.parse('{"X-Mock": 200}')
2174
+
2175
+ response = @sg.client.user.password.put(request_body: data, request_headers: headers)
2176
+
2177
+ assert_equal('200', response.status_code)
2178
+ end
2179
+
2180
+ def test_user_profile_patch
2181
+ data = JSON.parse('{
2182
+ "city": "Orange",
2183
+ "first_name": "Example",
2184
+ "last_name": "User"
2185
+ }')
2186
+ headers = JSON.parse('{"X-Mock": 200}')
2187
+
2188
+ response = @sg.client.user.profile.patch(request_body: data, request_headers: headers)
2189
+
2190
+ assert_equal('200', response.status_code)
2191
+ end
2192
+
2193
+ def test_user_profile_get
2194
+ headers = JSON.parse('{"X-Mock": 200}')
2195
+
2196
+ response = @sg.client.user.profile.get(request_headers: headers)
2197
+
2198
+ assert_equal('200', response.status_code)
2199
+ end
2200
+
2201
+ def test_user_scheduled_sends_post
2202
+ data = JSON.parse('{
2203
+ "batch_id": "YOUR_BATCH_ID",
2204
+ "status": "pause"
2205
+ }')
2206
+ headers = JSON.parse('{"X-Mock": 201}')
2207
+
2208
+ response = @sg.client.user.scheduled_sends.post(request_body: data, request_headers: headers)
2209
+
2210
+ assert_equal('201', response.status_code)
2211
+ end
2212
+
2213
+ def test_user_scheduled_sends_get
2214
+ headers = JSON.parse('{"X-Mock": 200}')
2215
+
2216
+ response = @sg.client.user.scheduled_sends.get(request_headers: headers)
2217
+
2218
+ assert_equal('200', response.status_code)
2219
+ end
2220
+
2221
+ def test_user_scheduled_sends__batch_id__patch
2222
+ data = JSON.parse('{
2223
+ "status": "pause"
2224
+ }')
2225
+ batch_id = 'test_url_param'
2226
+ headers = JSON.parse('{"X-Mock": 204}')
2227
+
2228
+ response = @sg.client.user.scheduled_sends._(batch_id).patch(request_body: data, request_headers: headers)
2229
+
2230
+ assert_equal('204', response.status_code)
2231
+ end
2232
+
2233
+ def test_user_scheduled_sends__batch_id__get
2234
+ batch_id = 'test_url_param'
2235
+ headers = JSON.parse('{"X-Mock": 200}')
2236
+
2237
+ response = @sg.client.user.scheduled_sends._(batch_id).get(request_headers: headers)
2238
+
2239
+ assert_equal('200', response.status_code)
2240
+ end
2241
+
2242
+ def test_user_scheduled_sends__batch_id__delete
2243
+ batch_id = 'test_url_param'
2244
+ headers = JSON.parse('{"X-Mock": 204}')
2245
+
2246
+ response = @sg.client.user.scheduled_sends._(batch_id).delete(request_headers: headers)
2247
+
2248
+ assert_equal('204', response.status_code)
2249
+ end
2250
+
2251
+ def test_user_settings_enforced_tls_patch
2252
+ data = JSON.parse('{
2253
+ "require_tls": true,
2254
+ "require_valid_cert": false
2255
+ }')
2256
+ headers = JSON.parse('{"X-Mock": 200}')
2257
+
2258
+ response = @sg.client.user.settings.enforced_tls.patch(request_body: data, request_headers: headers)
2259
+
2260
+ assert_equal('200', response.status_code)
2261
+ end
2262
+
2263
+ def test_user_settings_enforced_tls_get
2264
+ headers = JSON.parse('{"X-Mock": 200}')
2265
+
2266
+ response = @sg.client.user.settings.enforced_tls.get(request_headers: headers)
2267
+
2268
+ assert_equal('200', response.status_code)
2269
+ end
2270
+
2271
+ def test_user_username_put
2272
+ data = JSON.parse('{
2273
+ "username": "test_username"
2274
+ }')
2275
+ headers = JSON.parse('{"X-Mock": 200}')
2276
+
2277
+ response = @sg.client.user.username.put(request_body: data, request_headers: headers)
2278
+
2279
+ assert_equal('200', response.status_code)
2280
+ end
2281
+
2282
+ def test_user_username_get
2283
+ headers = JSON.parse('{"X-Mock": 200}')
2284
+
2285
+ response = @sg.client.user.username.get(request_headers: headers)
2286
+
2287
+ assert_equal('200', response.status_code)
2288
+ end
2289
+
2290
+ def test_user_webhooks_event_settings_patch
2291
+ data = JSON.parse('{
2292
+ "bounce": true,
2293
+ "click": true,
2294
+ "deferred": true,
2295
+ "delivered": true,
2296
+ "dropped": true,
2297
+ "enabled": true,
2298
+ "group_resubscribe": true,
2299
+ "group_unsubscribe": true,
2300
+ "open": true,
2301
+ "processed": true,
2302
+ "spam_report": true,
2303
+ "unsubscribe": true,
2304
+ "url": "url"
2305
+ }')
2306
+ headers = JSON.parse('{"X-Mock": 200}')
2307
+
2308
+ response = @sg.client.user.webhooks.event.settings.patch(request_body: data, request_headers: headers)
2309
+
2310
+ assert_equal('200', response.status_code)
2311
+ end
2312
+
2313
+ def test_user_webhooks_event_settings_get
2314
+ headers = JSON.parse('{"X-Mock": 200}')
2315
+
2316
+ response = @sg.client.user.webhooks.event.settings.get(request_headers: headers)
2317
+
2318
+ assert_equal('200', response.status_code)
2319
+ end
2320
+
2321
+ def test_user_webhooks_event_test_post
2322
+ data = JSON.parse('{
2323
+ "url": "url"
2324
+ }')
2325
+ headers = JSON.parse('{"X-Mock": 204}')
2326
+
2327
+ response = @sg.client.user.webhooks.event.test.post(request_body: data, request_headers: headers)
2328
+
2329
+ assert_equal('204', response.status_code)
2330
+ end
2331
+
2332
+ def test_user_webhooks_parse_settings_post
2333
+ data = JSON.parse('{
2334
+ "hostname": "myhostname.com",
2335
+ "send_raw": false,
2336
+ "spam_check": true,
2337
+ "url": "http://email.myhosthame.com"
2338
+ }')
2339
+ headers = JSON.parse('{"X-Mock": 201}')
2340
+
2341
+ response = @sg.client.user.webhooks.parse.settings.post(request_body: data, request_headers: headers)
2342
+
2343
+ assert_equal('201', response.status_code)
2344
+ end
2345
+
2346
+ def test_user_webhooks_parse_settings_get
2347
+ headers = JSON.parse('{"X-Mock": 200}')
2348
+
2349
+ response = @sg.client.user.webhooks.parse.settings.get(request_headers: headers)
2350
+
2351
+ assert_equal('200', response.status_code)
2352
+ end
2353
+
2354
+ def test_user_webhooks_parse_settings__hostname__patch
2355
+ data = JSON.parse('{
2356
+ "send_raw": true,
2357
+ "spam_check": false,
2358
+ "url": "http://newdomain.com/parse"
2359
+ }')
2360
+ hostname = 'test_url_param'
2361
+ headers = JSON.parse('{"X-Mock": 200}')
2362
+
2363
+ response = @sg.client.user.webhooks.parse.settings._(hostname).patch(request_body: data, request_headers: headers)
2364
+
2365
+ assert_equal('200', response.status_code)
2366
+ end
2367
+
2368
+ def test_user_webhooks_parse_settings__hostname__get
2369
+ hostname = 'test_url_param'
2370
+ headers = JSON.parse('{"X-Mock": 200}')
2371
+
2372
+ response = @sg.client.user.webhooks.parse.settings._(hostname).get(request_headers: headers)
2373
+
2374
+ assert_equal('200', response.status_code)
2375
+ end
2376
+
2377
+ def test_user_webhooks_parse_settings__hostname__delete
2378
+ hostname = 'test_url_param'
2379
+ headers = JSON.parse('{"X-Mock": 204}')
2380
+
2381
+ response = @sg.client.user.webhooks.parse.settings._(hostname).delete(request_headers: headers)
2382
+
2383
+ assert_equal('204', response.status_code)
2384
+ end
2385
+
2386
+ def test_user_webhooks_parse_stats_get
2387
+ params = JSON.parse('{"aggregated_by": "day", "limit": "test_string", "start_date": "2016-01-01", "end_date": "2016-04-01", "offset": "test_string"}')
2388
+ headers = JSON.parse('{"X-Mock": 200}')
2389
+
2390
+ response = @sg.client.user.webhooks.parse.stats.get(query_params: params, request_headers: headers)
2391
+
2392
+ assert_equal('200', response.status_code)
2393
+ end
2394
+
2395
+ def test_whitelabel_domains_post
2396
+ data = JSON.parse('{
2397
+ "automatic_security": false,
2398
+ "custom_spf": true,
2399
+ "default": true,
2400
+ "domain": "example.com",
2401
+ "ips": [
2402
+ "192.168.1.1",
2403
+ "192.168.1.2"
2404
+ ],
2405
+ "subdomain": "news",
2406
+ "username": "john@example.com"
2407
+ }')
2408
+ headers = JSON.parse('{"X-Mock": 201}')
2409
+
2410
+ response = @sg.client.whitelabel.domains.post(request_body: data, request_headers: headers)
2411
+
2412
+ assert_equal('201', response.status_code)
2413
+ end
2414
+
2415
+ def test_whitelabel_domains_get
2416
+ params = JSON.parse('{"username": "test_string", "domain": "test_string", "exclude_subusers": "true", "limit": 1, "offset": 1}')
2417
+ headers = JSON.parse('{"X-Mock": 200}')
2418
+
2419
+ response = @sg.client.whitelabel.domains.get(query_params: params, request_headers: headers)
2420
+
2421
+ assert_equal('200', response.status_code)
2422
+ end
2423
+
2424
+ def test_whitelabel_domains_default_get
2425
+ headers = JSON.parse('{"X-Mock": 200}')
2426
+
2427
+ response = @sg.client.whitelabel.domains.default.get(request_headers: headers)
2428
+
2429
+ assert_equal('200', response.status_code)
2430
+ end
2431
+
2432
+ def test_whitelabel_domains_subuser_get
2433
+ headers = JSON.parse('{"X-Mock": 200}')
2434
+
2435
+ response = @sg.client.whitelabel.domains.subuser.get(request_headers: headers)
2436
+
2437
+ assert_equal('200', response.status_code)
2438
+ end
2439
+
2440
+ def test_whitelabel_domains_subuser_delete
2441
+ headers = JSON.parse('{"X-Mock": 204}')
2442
+
2443
+ response = @sg.client.whitelabel.domains.subuser.delete(request_headers: headers)
2444
+
2445
+ assert_equal('204', response.status_code)
2446
+ end
2447
+
2448
+ def test_whitelabel_domains__domain_id__patch
2449
+ data = JSON.parse('{
2450
+ "custom_spf": true,
2451
+ "default": false
2452
+ }')
2453
+ domain_id = 'test_url_param'
2454
+ headers = JSON.parse('{"X-Mock": 200}')
2455
+
2456
+ response = @sg.client.whitelabel.domains._(domain_id).patch(request_body: data, request_headers: headers)
2457
+
2458
+ assert_equal('200', response.status_code)
2459
+ end
2460
+
2461
+ def test_whitelabel_domains__domain_id__get
2462
+ domain_id = 'test_url_param'
2463
+ headers = JSON.parse('{"X-Mock": 200}')
2464
+
2465
+ response = @sg.client.whitelabel.domains._(domain_id).get(request_headers: headers)
2466
+
2467
+ assert_equal('200', response.status_code)
2468
+ end
2469
+
2470
+ def test_whitelabel_domains__domain_id__delete
2471
+ domain_id = 'test_url_param'
2472
+ headers = JSON.parse('{"X-Mock": 204}')
2473
+
2474
+ response = @sg.client.whitelabel.domains._(domain_id).delete(request_headers: headers)
2475
+
2476
+ assert_equal('204', response.status_code)
2477
+ end
2478
+
2479
+ def test_whitelabel_domains__domain_id__subuser_post
2480
+ data = JSON.parse('{
2481
+ "username": "jane@example.com"
2482
+ }')
2483
+ domain_id = 'test_url_param'
2484
+ headers = JSON.parse('{"X-Mock": 201}')
2485
+
2486
+ response = @sg.client.whitelabel.domains._(domain_id).subuser.post(request_body: data, request_headers: headers)
2487
+
2488
+ assert_equal('201', response.status_code)
2489
+ end
2490
+
2491
+ def test_whitelabel_domains__id__ips_post
2492
+ data = JSON.parse('{
2493
+ "ip": "192.168.0.1"
2494
+ }')
2495
+ id = 'test_url_param'
2496
+ headers = JSON.parse('{"X-Mock": 200}')
2497
+
2498
+ response = @sg.client.whitelabel.domains._(id).ips.post(request_body: data, request_headers: headers)
2499
+
2500
+ assert_equal('200', response.status_code)
2501
+ end
2502
+
2503
+ def test_whitelabel_domains__id__ips__ip__delete
2504
+ id = 'test_url_param'
2505
+ ip = 'test_url_param'
2506
+ headers = JSON.parse('{"X-Mock": 200}')
2507
+
2508
+ response = @sg.client.whitelabel.domains._(id).ips._(ip).delete(request_headers: headers)
2509
+
2510
+ assert_equal('200', response.status_code)
2511
+ end
2512
+
2513
+ def test_whitelabel_domains__id__validate_post
2514
+ id = 'test_url_param'
2515
+ headers = JSON.parse('{"X-Mock": 200}')
2516
+
2517
+ response = @sg.client.whitelabel.domains._(id).validate.post(request_headers: headers)
2518
+
2519
+ assert_equal('200', response.status_code)
2520
+ end
2521
+
2522
+ def test_whitelabel_ips_post
2523
+ data = JSON.parse('{
2524
+ "domain": "example.com",
2525
+ "ip": "192.168.1.1",
2526
+ "subdomain": "email"
2527
+ }')
2528
+ headers = JSON.parse('{"X-Mock": 201}')
2529
+
2530
+ response = @sg.client.whitelabel.ips.post(request_body: data, request_headers: headers)
2531
+
2532
+ assert_equal('201', response.status_code)
2533
+ end
2534
+
2535
+ def test_whitelabel_ips_get
2536
+ params = JSON.parse('{"ip": "test_string", "limit": 1, "offset": 1}')
2537
+ headers = JSON.parse('{"X-Mock": 200}')
2538
+
2539
+ response = @sg.client.whitelabel.ips.get(query_params: params, request_headers: headers)
2540
+
2541
+ assert_equal('200', response.status_code)
2542
+ end
2543
+
2544
+ def test_whitelabel_ips__id__get
2545
+ id = 'test_url_param'
2546
+ headers = JSON.parse('{"X-Mock": 200}')
2547
+
2548
+ response = @sg.client.whitelabel.ips._(id).get(request_headers: headers)
2549
+
2550
+ assert_equal('200', response.status_code)
2551
+ end
2552
+
2553
+ def test_whitelabel_ips__id__delete
2554
+ id = 'test_url_param'
2555
+ headers = JSON.parse('{"X-Mock": 204}')
2556
+
2557
+ response = @sg.client.whitelabel.ips._(id).delete(request_headers: headers)
2558
+
2559
+ assert_equal('204', response.status_code)
2560
+ end
2561
+
2562
+ def test_whitelabel_ips__id__validate_post
2563
+ id = 'test_url_param'
2564
+ headers = JSON.parse('{"X-Mock": 200}')
2565
+
2566
+ response = @sg.client.whitelabel.ips._(id).validate.post(request_headers: headers)
2567
+
2568
+ assert_equal('200', response.status_code)
2569
+ end
2570
+
2571
+ def test_whitelabel_links_post
2572
+ data = JSON.parse('{
2573
+ "default": true,
2574
+ "domain": "example.com",
2575
+ "subdomain": "mail"
2576
+ }')
2577
+ params = JSON.parse('{"limit": 1, "offset": 1}')
2578
+ headers = JSON.parse('{"X-Mock": 201}')
2579
+
2580
+ response = @sg.client.whitelabel.links.post(request_body: data, query_params: params, request_headers: headers)
2581
+
2582
+ assert_equal('201', response.status_code)
2583
+ end
2584
+
2585
+ def test_whitelabel_links_get
2586
+ params = JSON.parse('{"limit": 1}')
2587
+ headers = JSON.parse('{"X-Mock": 200}')
2588
+
2589
+ response = @sg.client.whitelabel.links.get(query_params: params, request_headers: headers)
2590
+
2591
+ assert_equal('200', response.status_code)
2592
+ end
2593
+
2594
+ def test_whitelabel_links_default_get
2595
+ params = JSON.parse('{"domain": "test_string"}')
2596
+ headers = JSON.parse('{"X-Mock": 200}')
2597
+
2598
+ response = @sg.client.whitelabel.links.default.get(query_params: params, request_headers: headers)
2599
+
2600
+ assert_equal('200', response.status_code)
2601
+ end
2602
+
2603
+ def test_whitelabel_links_subuser_get
2604
+ params = JSON.parse('{"username": "test_string"}')
2605
+ headers = JSON.parse('{"X-Mock": 200}')
2606
+
2607
+ response = @sg.client.whitelabel.links.subuser.get(query_params: params, request_headers: headers)
2608
+
2609
+ assert_equal('200', response.status_code)
2610
+ end
2611
+
2612
+ def test_whitelabel_links_subuser_delete
2613
+ params = JSON.parse('{"username": "test_string"}')
2614
+ headers = JSON.parse('{"X-Mock": 204}')
2615
+
2616
+ response = @sg.client.whitelabel.links.subuser.delete(query_params: params, request_headers: headers)
2617
+
2618
+ assert_equal('204', response.status_code)
2619
+ end
2620
+
2621
+ def test_whitelabel_links__id__patch
2622
+ data = JSON.parse('{
2623
+ "default": true
2624
+ }')
2625
+ id = 'test_url_param'
2626
+ headers = JSON.parse('{"X-Mock": 200}')
2627
+
2628
+ response = @sg.client.whitelabel.links._(id).patch(request_body: data, request_headers: headers)
2629
+
2630
+ assert_equal('200', response.status_code)
2631
+ end
2632
+
2633
+ def test_whitelabel_links__id__get
2634
+ id = 'test_url_param'
2635
+ headers = JSON.parse('{"X-Mock": 200}')
2636
+
2637
+ response = @sg.client.whitelabel.links._(id).get(request_headers: headers)
2638
+
2639
+ assert_equal('200', response.status_code)
2640
+ end
2641
+
2642
+ def test_whitelabel_links__id__delete
2643
+ id = 'test_url_param'
2644
+ headers = JSON.parse('{"X-Mock": 204}')
2645
+
2646
+ response = @sg.client.whitelabel.links._(id).delete(request_headers: headers)
2647
+
2648
+ assert_equal('204', response.status_code)
2649
+ end
2650
+
2651
+ def test_whitelabel_links__id__validate_post
2652
+ id = 'test_url_param'
2653
+ headers = JSON.parse('{"X-Mock": 200}')
2654
+
2655
+ response = @sg.client.whitelabel.links._(id).validate.post(request_headers: headers)
2656
+
2657
+ assert_equal('200', response.status_code)
2658
+ end
2659
+
2660
+ def test_whitelabel_links__link_id__subuser_post
2661
+ data = JSON.parse('{
2662
+ "username": "jane@example.com"
2663
+ }')
2664
+ link_id = 'test_url_param'
2665
+ headers = JSON.parse('{"X-Mock": 200}')
2666
+
2667
+ response = @sg.client.whitelabel.links._(link_id).subuser.post(request_body: data, request_headers: headers)
2668
+
2669
+ assert_equal('200', response.status_code)
2670
+ end
2671
+
2672
+ def test_license_file_year
2673
+ # Read the third line from the license file
2674
+ year = IO.readlines('./LICENSE')[2].gsub(/[^\d]/, '')
2675
+ assert_equal(Time.now.year.to_s, year)
2676
+ end
2677
+
2678
+ def test_env_sample_exists
2679
+ assert(File.file?('./.env_sample'))
2680
+ end
2681
+
2682
+ def test_gitignore_exists
2683
+ assert(File.file?('./.gitignore'))
2684
+ end
2685
+
2686
+ def test_gh_actions_exists
2687
+ assert(File.file?('./.github/workflows/test-and-deploy.yml'))
2688
+ end
2689
+
2690
+ def test_changelog_exists
2691
+ assert(File.file?('./CHANGELOG.md'))
2692
+ end
2693
+
2694
+ def test_code_of_conduct_exists
2695
+ assert(File.file?('./CODE_OF_CONDUCT.md'))
2696
+ end
2697
+
2698
+ def test_contributing_exists
2699
+ assert(File.file?('./CONTRIBUTING.md'))
2700
+ end
2701
+
2702
+ def test_issue_template_exists
2703
+ assert(File.file?('./ISSUE_TEMPLATE.md'))
2704
+ end
2705
+
2706
+ def test_license_exists
2707
+ assert(File.file?('./LICENSE'))
2708
+ end
2709
+
2710
+ def test_pull_request_template_exists
2711
+ assert(File.file?('./PULL_REQUEST_TEMPLATE.md'))
2712
+ end
2713
+
2714
+ def test_readme_exists
2715
+ assert(File.file?('./README.md'))
2716
+ end
2717
+
2718
+ def test_troubleshooting_exists
2719
+ assert(File.file?('./TROUBLESHOOTING.md'))
2720
+ end
2721
+
2722
+ def test_usage_exists
2723
+ assert(File.file?('./USAGE.md'))
2724
+ end
2725
+
2726
+ def test_use_cases_exists
2727
+ assert(File.file?('./use-cases/README.md'))
2728
+ end
2729
+ end