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