sendgrid-ruby 1.1.6 → 6.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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