sendgrid4r 1.8.1 → 1.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +6 -2
  3. data/README.md +1 -0
  4. data/lib/sendgrid4r/factory/campaign_factory.rb +18 -5
  5. data/lib/sendgrid4r/factory/condition_factory.rb +1 -1
  6. data/lib/sendgrid4r/factory/mail_factory.rb +57 -0
  7. data/lib/sendgrid4r/factory/segment_factory.rb +2 -5
  8. data/lib/sendgrid4r/factory/version_factory.rb +1 -1
  9. data/lib/sendgrid4r/rest/api.rb +48 -49
  10. data/lib/sendgrid4r/rest/api_keys_management/api_keys.rb +75 -0
  11. data/lib/sendgrid4r/rest/api_keys_management/permissions.rb +31 -0
  12. data/lib/sendgrid4r/rest/blocks.rb +49 -68
  13. data/lib/sendgrid4r/rest/bounces.rb +45 -64
  14. data/lib/sendgrid4r/rest/cancel_scheduled_sends.rb +53 -72
  15. data/lib/sendgrid4r/rest/categories.rb +31 -0
  16. data/lib/sendgrid4r/rest/email_activity.rb +72 -0
  17. data/lib/sendgrid4r/rest/invalid_emails.rb +50 -68
  18. data/lib/sendgrid4r/rest/ip_access_management.rb +86 -111
  19. data/lib/sendgrid4r/rest/ips/addresses.rb +50 -59
  20. data/lib/sendgrid4r/rest/ips/pools.rb +42 -53
  21. data/lib/sendgrid4r/rest/ips/warmup.rb +46 -55
  22. data/lib/sendgrid4r/rest/mail/address.rb +14 -0
  23. data/lib/sendgrid4r/rest/mail/attachment.rb +22 -0
  24. data/lib/sendgrid4r/rest/mail/content.rb +10 -0
  25. data/lib/sendgrid4r/rest/mail/mail.rb +28 -0
  26. data/lib/sendgrid4r/rest/mail/mail_settings.rb +62 -0
  27. data/lib/sendgrid4r/rest/mail/params.rb +64 -0
  28. data/lib/sendgrid4r/rest/mail/personalization.rb +33 -0
  29. data/lib/sendgrid4r/rest/mail/tracking_settings.rb +74 -0
  30. data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/custom_fields.rb +12 -27
  31. data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/lists.rb +20 -34
  32. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/recipients.rb +134 -0
  33. data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/reserved_fields.rb +6 -9
  34. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/segments.rb +86 -0
  35. data/lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb +119 -0
  36. data/lib/sendgrid4r/rest/marketing_campaigns/senders.rb +101 -0
  37. data/lib/sendgrid4r/rest/request.rb +61 -63
  38. data/lib/sendgrid4r/rest/settings/enforced_tls.rb +23 -26
  39. data/lib/sendgrid4r/rest/settings/mail.rb +167 -183
  40. data/lib/sendgrid4r/rest/settings/partner.rb +33 -36
  41. data/lib/sendgrid4r/rest/settings/settings.rb +17 -22
  42. data/lib/sendgrid4r/rest/settings/tracking.rb +97 -107
  43. data/lib/sendgrid4r/rest/sm/global_unsubscribes.rb +52 -60
  44. data/lib/sendgrid4r/rest/sm/groups.rb +52 -58
  45. data/lib/sendgrid4r/rest/sm/sm.rb +15 -17
  46. data/lib/sendgrid4r/rest/sm/suppressions.rb +50 -67
  47. data/lib/sendgrid4r/rest/spam_reports.rb +49 -69
  48. data/lib/sendgrid4r/rest/stats/advanced.rb +100 -102
  49. data/lib/sendgrid4r/rest/stats/category.rb +31 -33
  50. data/lib/sendgrid4r/rest/stats/global.rb +17 -19
  51. data/lib/sendgrid4r/rest/stats/parse.rb +18 -20
  52. data/lib/sendgrid4r/rest/stats/stats.rb +59 -69
  53. data/lib/sendgrid4r/rest/stats/subuser.rb +70 -32
  54. data/lib/sendgrid4r/rest/subusers.rb +106 -134
  55. data/lib/sendgrid4r/rest/transactional_templates/templates.rb +63 -0
  56. data/lib/sendgrid4r/rest/transactional_templates/versions.rb +90 -0
  57. data/lib/sendgrid4r/rest/users.rb +125 -57
  58. data/lib/sendgrid4r/rest/webhooks/event.rb +36 -42
  59. data/lib/sendgrid4r/rest/webhooks/parse.rb +28 -37
  60. data/lib/sendgrid4r/rest/whitelabel/domains.rb +176 -222
  61. data/lib/sendgrid4r/rest/whitelabel/ips.rb +107 -128
  62. data/lib/sendgrid4r/rest/whitelabel/links.rb +131 -167
  63. data/lib/sendgrid4r/version.rb +1 -1
  64. data/lib/sendgrid4r.rb +23 -13
  65. data/sendgrid4r.gemspec +1 -1
  66. data/spec/client_spec.rb +12 -1
  67. data/spec/factory/campaign_factory_spec.rb +75 -35
  68. data/spec/factory/condition_factory_spec.rb +19 -18
  69. data/spec/factory/segment_factory_spec.rb +28 -21
  70. data/spec/factory/version_factory_spec.rb +28 -27
  71. data/spec/photo.jpg +0 -0
  72. data/spec/rest/api_keys_management/api_keys_spec.rb +174 -0
  73. data/spec/rest/api_keys_management/permissions_spec.rb +54 -0
  74. data/spec/rest/blocks_spec.rb +78 -106
  75. data/spec/rest/bounces_spec.rb +91 -118
  76. data/spec/rest/cancel_scheduled_sends_spec.rb +94 -149
  77. data/spec/rest/categories_spec.rb +77 -0
  78. data/spec/rest/email_activity_spec.rb +151 -0
  79. data/spec/rest/invalid_emails_spec.rb +85 -119
  80. data/spec/rest/ip_access_management_spec.rb +157 -195
  81. data/spec/rest/ips/addresses_spec.rb +94 -122
  82. data/spec/rest/ips/pools_spec.rb +84 -112
  83. data/spec/rest/ips/warmup_spec.rb +63 -71
  84. data/spec/rest/mail/address_spec.rb +28 -0
  85. data/spec/rest/mail/attachment_spec.rb +48 -0
  86. data/spec/rest/mail/content_spec.rb +32 -0
  87. data/spec/rest/mail/mail_settings_spec.rb +51 -0
  88. data/spec/rest/mail/mail_spec.rb +136 -0
  89. data/spec/rest/mail/params_spec.rb +152 -0
  90. data/spec/rest/mail/personalization_spec.rb +66 -0
  91. data/spec/rest/mail/tracking_settings_spec.rb +63 -0
  92. data/spec/rest/marketing_campaigns/contacts/custom_fields_spec.rb +146 -0
  93. data/spec/rest/marketing_campaigns/contacts/lists_spec.rb +307 -0
  94. data/spec/rest/marketing_campaigns/contacts/recipients_spec.rb +331 -0
  95. data/spec/rest/marketing_campaigns/contacts/reserved_fields_spec.rb +119 -0
  96. data/spec/rest/marketing_campaigns/contacts/segments_spec.rb +268 -0
  97. data/spec/rest/marketing_campaigns/marketing_campaigns_spec.rb +427 -0
  98. data/spec/rest/marketing_campaigns/senders_spec.rb +230 -0
  99. data/spec/rest/settings/enforced_tls_spec.rb +38 -54
  100. data/spec/rest/settings/mail_spec.rb +227 -330
  101. data/spec/rest/settings/partner_spec.rb +40 -59
  102. data/spec/rest/settings/settings_spec.rb +44 -42
  103. data/spec/rest/settings/tracking_spec.rb +130 -189
  104. data/spec/rest/sm/global_unsubscribes_spec.rb +47 -72
  105. data/spec/rest/sm/groups_spec.rb +88 -123
  106. data/spec/rest/sm/sm_spec.rb +32 -30
  107. data/spec/rest/sm/suppressions_spec.rb +105 -140
  108. data/spec/rest/spam_reports_spec.rb +81 -109
  109. data/spec/rest/stats/advanced_spec.rb +67 -125
  110. data/spec/rest/stats/category_spec.rb +27 -45
  111. data/spec/rest/stats/global_spec.rb +34 -42
  112. data/spec/rest/stats/parse_spec.rb +32 -30
  113. data/spec/rest/stats/stats_spec.rb +174 -172
  114. data/spec/rest/stats/subuser_spec.rb +97 -57
  115. data/spec/rest/subusers_spec.rb +156 -209
  116. data/spec/rest/transactional_templates/templates_spec.rb +199 -0
  117. data/spec/rest/transactional_templates/versions_spec.rb +228 -0
  118. data/spec/rest/users_spec.rb +176 -91
  119. data/spec/rest/webhooks/event_spec.rb +59 -85
  120. data/spec/rest/webhooks/parse_spec.rb +51 -71
  121. data/spec/rest/whitelabel/domains_spec.rb +333 -513
  122. data/spec/rest/whitelabel/ips_spec.rb +109 -147
  123. data/spec/rest/whitelabel/links_spec.rb +181 -265
  124. metadata +70 -40
  125. data/lib/sendgrid4r/rest/api_keys/api_keys.rb +0 -80
  126. data/lib/sendgrid4r/rest/api_keys/permissions.rb +0 -33
  127. data/lib/sendgrid4r/rest/campaigns/campaigns.rb +0 -126
  128. data/lib/sendgrid4r/rest/categories/categories.rb +0 -43
  129. data/lib/sendgrid4r/rest/contacts/recipients.rb +0 -150
  130. data/lib/sendgrid4r/rest/contacts/segments.rb +0 -97
  131. data/lib/sendgrid4r/rest/email_activity/email_activity.rb +0 -81
  132. data/lib/sendgrid4r/rest/templates/templates.rb +0 -69
  133. data/lib/sendgrid4r/rest/templates/versions.rb +0 -95
  134. data/spec/rest/api_keys/api_keys_spec.rb +0 -210
  135. data/spec/rest/api_keys/permissions_spec.rb +0 -65
  136. data/spec/rest/campaigns/campaigns_spec.rb +0 -492
  137. data/spec/rest/categories/categories_spec.rb +0 -96
  138. data/spec/rest/contacts/custom_fields_spec.rb +0 -174
  139. data/spec/rest/contacts/lists_spec.rb +0 -372
  140. data/spec/rest/contacts/recipients_spec.rb +0 -343
  141. data/spec/rest/contacts/reserved_fields_spec.rb +0 -146
  142. data/spec/rest/contacts/segments_spec.rb +0 -307
  143. data/spec/rest/email_activity/email_activity_spec.rb +0 -179
  144. data/spec/rest/templates/templates_spec.rb +0 -222
  145. data/spec/rest/templates/versions_spec.rb +0 -252
@@ -0,0 +1,228 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/../../spec_helper'
3
+
4
+ module SendGrid4r::REST::TransactionalTemplates
5
+ describe Versions do
6
+ describe 'integration test', :it do
7
+ before do
8
+ Dotenv.load
9
+ @client = SendGrid4r::Client.new(api_key: ENV['SILVER_API_KEY'])
10
+ @template_name = 'version_test'
11
+ @version1_name = 'version_name1'
12
+ @version2_name = 'version_name2'
13
+ @factory = SendGrid4r::Factory::VersionFactory.new
14
+
15
+ # celan up test env
16
+ tmps = @client.get_templates
17
+ tmps.templates.each do |tmp|
18
+ next if tmp.name != @template_name
19
+ tmp.versions.each do |ver|
20
+ @client.delete_version(template_id: tmp.id, version_id: ver.id)
21
+ end
22
+ @client.delete_template(template_id: tmp.id)
23
+ end
24
+ # post a template
25
+ @template = @client.post_template(name: @template_name)
26
+ # post a version
27
+ ver1 = @factory.create(name: @version1_name)
28
+ @version1 = @client.post_version(
29
+ template_id: @template.id, version: ver1
30
+ )
31
+ end
32
+
33
+ context 'without block call' do
34
+ it '#post_version' do
35
+ ver2 = @factory.create(name: @version2_name)
36
+ version2 = @client.post_version(
37
+ template_id: @template.id, version: ver2
38
+ )
39
+ expect(version2.name).to eq(@version2_name)
40
+ end
41
+
42
+ it '#activate_version' do
43
+ actual = @client.activate_version(
44
+ template_id: @template.id, version_id: @version1.id
45
+ )
46
+ expect(actual.active).to eq(1)
47
+ end
48
+
49
+ it '#get_version' do
50
+ actual = @client.get_version(
51
+ template_id: @template.id, version_id: @version1.id
52
+ )
53
+ expect(actual.template_id).to eq(@version1.template_id)
54
+ expect(actual.active).to be_a(Fixnum)
55
+ expect(actual.name).to eq(@version1.name)
56
+ expect(actual.html_content).to eq(@version1.html_content)
57
+ expect(actual.plain_content).to eq(@version1.plain_content)
58
+ expect(actual.subject).to eq(@version1.subject)
59
+ end
60
+
61
+ it '#patch_version' do
62
+ edit_ver1 = @version1.dup
63
+ edit_ver1.name = 'edit_version'
64
+ edit_ver1.subject = 'edit<%subject%>edit'
65
+ edit_ver1.html_content = 'edit<%body%>edit'
66
+ edit_ver1.plain_content = 'edit<%body%>edit'
67
+ edit_ver1.active = 0
68
+ @client.patch_version(
69
+ template_id: @template.id, version_id: @version1.id,
70
+ version: edit_ver1
71
+ )
72
+ end
73
+
74
+ it '#delete_version' do
75
+ @client.delete_version(
76
+ template_id: @template.id, version_id: @version1.id
77
+ )
78
+ end
79
+ end
80
+
81
+ context 'with block call' do
82
+ it '#post_version' do
83
+ ver2 = @factory.create(name: @version2_name)
84
+ @client.post_version(
85
+ template_id: @template.id, version: ver2
86
+ ) do |resp, req, res|
87
+ resp = Versions.create_version(JSON.parse(resp))
88
+ expect(resp).to be_a(Versions::Version)
89
+ expect(req).to be_a(RestClient::Request)
90
+ expect(res).to be_a(Net::HTTPCreated)
91
+ end
92
+ end
93
+
94
+ it '#post_version without body and subject tag' do
95
+ ver2 = @factory.create(
96
+ name: @version2_name, subject: 'Hello',
97
+ html_content: 'This is the body.',
98
+ plain_content: 'This is the body.'
99
+ )
100
+ @client.post_version(
101
+ template_id: @template.id, version: ver2
102
+ ) do |resp, req, res|
103
+ resp = Versions.create_version(JSON.parse(resp))
104
+ expect(resp).to be_a(Versions::Version)
105
+ expect(req).to be_a(RestClient::Request)
106
+ expect(res).to be_a(Net::HTTPCreated)
107
+ end
108
+ end
109
+
110
+ it '#activate_version' do
111
+ @client.activate_version(
112
+ template_id: @template.id, version_id: @version1.id
113
+ ) do |resp, req, res|
114
+ resp = Versions.create_version(JSON.parse(resp))
115
+ expect(resp).to be_a(Versions::Version)
116
+ expect(req).to be_a(RestClient::Request)
117
+ expect(res).to be_a(Net::HTTPOK)
118
+ end
119
+ end
120
+
121
+ it '#get_version' do
122
+ @client.get_version(
123
+ template_id: @template.id, version_id: @version1.id
124
+ ) do |resp, req, res|
125
+ resp = Versions.create_version(JSON.parse(resp))
126
+ expect(resp).to be_a(Versions::Version)
127
+ expect(req).to be_a(RestClient::Request)
128
+ expect(res).to be_a(Net::HTTPOK)
129
+ end
130
+ end
131
+
132
+ it '#patch_version' do
133
+ edit_ver1 = @version1.dup
134
+ edit_ver1.name = 'edit_version'
135
+ edit_ver1.subject = 'edit<%subject%>edit'
136
+ edit_ver1.html_content = 'edit<%body%>edit'
137
+ edit_ver1.plain_content = 'edit<%body%>edit'
138
+ edit_ver1.active = 0
139
+ @client.patch_version(
140
+ template_id: @template.id, version_id: @version1.id,
141
+ version: edit_ver1
142
+ ) do |resp, req, res|
143
+ resp = Versions.create_version(JSON.parse(resp))
144
+ expect(resp).to be_a(Versions::Version)
145
+ expect(req).to be_a(RestClient::Request)
146
+ expect(res).to be_a(Net::HTTPOK)
147
+ end
148
+ end
149
+
150
+ it '#delete_version' do
151
+ @client.delete_version(
152
+ template_id: @template.id, version_id: @version1.id
153
+ ) do |resp, req, res|
154
+ expect(resp).to eq('')
155
+ expect(req).to be_a(RestClient::Request)
156
+ expect(res).to be_a(Net::HTTPNoContent)
157
+ end
158
+ end
159
+ end
160
+ end
161
+
162
+ describe 'unit test', :ut do
163
+ let(:client) do
164
+ SendGrid4r::Client.new(api_key: '')
165
+ end
166
+
167
+ let(:version) do
168
+ JSON.parse(
169
+ '{'\
170
+ '"id": "8aefe0ee-f12b-4575-b5b7-c97e21cb36f3",'\
171
+ '"template_id": "ddb96bbc-9b92-425e-8979-99464621b543",'\
172
+ '"active": 1,'\
173
+ '"name": "example_version_name",'\
174
+ '"html_content": "<%body%>",'\
175
+ '"plain_content": "<%body%>",'\
176
+ '"subject": "<%subject%>",'\
177
+ '"updated_at": "2014-03-19 18:56:33"'\
178
+ '}'
179
+ )
180
+ end
181
+
182
+ it '#post_version' do
183
+ allow(client).to receive(:execute).and_return(version)
184
+ actual = client.post_version(template_id: '', version: nil)
185
+ expect(actual).to be_a(Versions::Version)
186
+ end
187
+
188
+ it '#activate_version' do
189
+ allow(client).to receive(:execute).and_return(version)
190
+ actual = client.activate_version(template_id: '', version_id: '')
191
+ expect(actual).to be_a(Versions::Version)
192
+ end
193
+
194
+ it '#get_version' do
195
+ allow(client).to receive(:execute).and_return(version)
196
+ actual = client.get_version(template_id: '', version_id: '')
197
+ expect(actual).to be_a(Versions::Version)
198
+ end
199
+
200
+ it '#patch_version' do
201
+ allow(client).to receive(:execute).and_return(version)
202
+ actual = client.patch_version(
203
+ template_id: '', version_id: '', version: nil
204
+ )
205
+ expect(actual).to be_a(Versions::Version)
206
+ end
207
+
208
+ it '#delete_version' do
209
+ allow(client).to receive(:execute).and_return('')
210
+ actual = client.delete_version(template_id: '', version_id: '')
211
+ expect(actual).to eq('')
212
+ end
213
+
214
+ it 'creates version instance' do
215
+ actual = Versions.create_version(version)
216
+ expect(actual).to be_a(Versions::Version)
217
+ expect(actual.id).to eq('8aefe0ee-f12b-4575-b5b7-c97e21cb36f3')
218
+ expect(actual.template_id).to eq('ddb96bbc-9b92-425e-8979-99464621b543')
219
+ expect(actual.active).to eq(1)
220
+ expect(actual.name).to eq('example_version_name')
221
+ expect(actual.html_content).to eq('<%body%>')
222
+ expect(actual.plain_content).to eq('<%body%>')
223
+ expect(actual.subject).to eq('<%subject%>')
224
+ expect(actual.updated_at).to eq('2014-03-19 18:56:33')
225
+ end
226
+ end
227
+ end
228
+ end
@@ -1,121 +1,206 @@
1
1
  # encoding: utf-8
2
2
  require File.dirname(__FILE__) + '/../spec_helper'
3
3
 
4
- describe SendGrid4r::REST::Users do
5
- describe 'integration test', :it do
6
- before do
7
- begin
4
+ module SendGrid4r::REST
5
+ describe Users do
6
+ describe 'integration test', :it do
7
+ before do
8
8
  Dotenv.load
9
9
  @client = SendGrid4r::Client.new(api_key: ENV['SILVER_API_KEY'])
10
- rescue RestClient::ExceptionWithResponse => e
11
- puts e.inspect
12
- raise e
13
10
  end
14
- end
15
11
 
16
- context 'without block call' do
17
- it '#get_user_profile' do
18
- begin
12
+ context 'without block call' do
13
+ it '#get_user_profile' do
19
14
  profile = @client.get_user_profile
20
- expect(profile).to be_a(SendGrid4r::REST::Users::Profile)
21
- rescue RestClient::ExceptionWithResponse => e
22
- puts e.inspect
23
- raise e
15
+ expect(profile).to be_a(Users::Profile)
24
16
  end
25
- end
26
17
 
27
- it '#patch_user_profile' do
28
- begin
18
+ it '#patch_user_profile' do
29
19
  params = {}
30
20
  params['city'] = 'nakano'
31
21
  profile = @client.patch_user_profile(params: params)
32
- expect(profile).to be_a(SendGrid4r::REST::Users::Profile)
33
- rescue RestClient::ExceptionWithResponse => e
34
- puts e.inspect
35
- raise e
22
+ expect(profile).to be_a(Users::Profile)
36
23
  end
37
- end
38
24
 
39
- it '#get_user_account' do
40
- begin
25
+ it '#get_user_account' do
41
26
  account = @client.get_user_account
42
- expect(account).to be_a(SendGrid4r::REST::Users::Account)
43
- rescue RestClient::ExceptionWithResponse => e
44
- puts e.inspect
45
- raise e
27
+ expect(account).to be_a(Users::Account)
28
+ end
29
+
30
+ it '#get_user_email' do
31
+ email = @client.get_user_email
32
+ expect(email).to be_a(Users::Email)
33
+ end
34
+
35
+ it '#put_user_email' do
36
+ pending('Access Forbidden')
37
+ email = @client.put_user_email(email: 'test..example.com')
38
+ expect(email).to be_a(Users::Email)
39
+ end
40
+
41
+ it '#get_user_username' do
42
+ username = @client.get_user_username
43
+ expect(username).to be_a(Users::Username)
44
+ end
45
+
46
+ it '#put_user_username' do
47
+ pending('Access Forbidden')
48
+ username = @client.put_user_username(username: 'abc')
49
+ expect(username).to be_a(Users::Username)
50
+ end
51
+
52
+ it '#get_user_credits' do
53
+ credits = @client.get_user_credits
54
+ expect(credits).to be_a(Users::Credits)
55
+ end
56
+
57
+ it '#put_user_password' do
58
+ pending('Access Forbidden')
59
+ password = @client.put_user_password(
60
+ new_password: '', old_password: ''
61
+ )
62
+ expect(password).to be_a(Users::Password)
46
63
  end
47
64
  end
48
65
  end
49
- end
50
66
 
51
- describe 'unit test', :ut do
52
- let(:client) do
53
- SendGrid4r::Client.new(api_key: '')
54
- end
67
+ describe 'unit test', :ut do
68
+ let(:client) do
69
+ SendGrid4r::Client.new(api_key: '')
70
+ end
55
71
 
56
- let(:profile) do
57
- JSON.parse(
58
- '{'\
59
- '"address":"814 West Chapman Avenue",'\
60
- '"city":"Orange",'\
61
- '"company":"SendGrid",'\
62
- '"country":"US",'\
63
- '"first_name":"Test",'\
64
- '"last_name":"User",'\
65
- '"phone":"555-555-5555",'\
66
- '"state":"CA",'\
67
- '"website":"http://www.sendgrid.com",'\
68
- '"zip":"92868"'\
69
- '}'
70
- )
71
- end
72
+ let(:profile) do
73
+ JSON.parse(
74
+ '{'\
75
+ '"address":"814 West Chapman Avenue",'\
76
+ '"city":"Orange",'\
77
+ '"company":"SendGrid",'\
78
+ '"country":"US",'\
79
+ '"first_name":"Test",'\
80
+ '"last_name":"User",'\
81
+ '"phone":"555-555-5555",'\
82
+ '"state":"CA",'\
83
+ '"website":"http://www.sendgrid.com",'\
84
+ '"zip":"92868"'\
85
+ '}'
86
+ )
87
+ end
72
88
 
73
- let(:account) do
74
- JSON.parse(
75
- '{'\
76
- '"type": "free",'\
77
- '"reputation": 99.7'\
78
- '}'
79
- )
80
- end
89
+ let(:account) do
90
+ JSON.parse(
91
+ '{'\
92
+ '"type": "free",'\
93
+ '"reputation": 99.7'\
94
+ '}'
95
+ )
96
+ end
81
97
 
82
- it '#get_user_profile' do
83
- allow(client).to receive(:execute).and_return(profile)
84
- actual = client.get_user_profile
85
- expect(actual).to be_a(SendGrid4r::REST::Users::Profile)
86
- end
98
+ let(:email) do
99
+ JSON.parse(
100
+ '{'\
101
+ '"email": "test@example.com"'\
102
+ '}'
103
+ )
104
+ end
87
105
 
88
- it '#patch_user_profile' do
89
- allow(client).to receive(:execute).and_return(profile)
90
- params = {}
91
- params['city'] = 'nakano'
92
- actual = client.patch_user_profile(params: params)
93
- expect(actual).to be_a(SendGrid4r::REST::Users::Profile)
94
- end
106
+ let(:username) do
107
+ JSON.parse(
108
+ '{'\
109
+ '"username": "test_username",'\
110
+ '"user_id": 1'\
111
+ '}'
112
+ )
113
+ end
95
114
 
96
- it '#get_user_account' do
97
- allow(client).to receive(:execute).and_return(account)
98
- actual = client.get_user_account
99
- expect(actual).to be_a(SendGrid4r::REST::Users::Account)
100
- end
115
+ let(:credits) do
116
+ JSON.parse(
117
+ '{'\
118
+ '"remain": 200,'\
119
+ '"total": 200,'\
120
+ '"overage": 0,'\
121
+ '"used": 0,'\
122
+ '"last_reset": "2013-01-01",'\
123
+ '"next_reset": "2013-02-01",'\
124
+ '"reset_frequency": "monthly"'\
125
+ '}'
126
+ )
127
+ end
101
128
 
102
- it 'creates profile instance' do
103
- actual = SendGrid4r::REST::Users.create_profile(profile)
104
- expect(actual.address).to eq('814 West Chapman Avenue')
105
- expect(actual.city).to eq('Orange')
106
- expect(actual.company).to eq('SendGrid')
107
- expect(actual.first_name).to eq('Test')
108
- expect(actual.last_name).to eq('User')
109
- expect(actual.phone).to eq('555-555-5555')
110
- expect(actual.state).to eq('CA')
111
- expect(actual.website).to eq('http://www.sendgrid.com')
112
- expect(actual.zip).to eq('92868')
113
- end
129
+ let(:password) do
130
+ JSON.parse(
131
+ '{'\
132
+ '"new_password": "new_password",'\
133
+ '"old_password": "old_password"'\
134
+ '}'
135
+ )
136
+ end
137
+
138
+ it '#get_user_profile' do
139
+ allow(client).to receive(:execute).and_return(profile)
140
+ actual = client.get_user_profile
141
+ expect(actual).to be_a(Users::Profile)
142
+ end
143
+
144
+ it '#patch_user_profile' do
145
+ allow(client).to receive(:execute).and_return(profile)
146
+ params = {}
147
+ params['city'] = 'nakano'
148
+ actual = client.patch_user_profile(params: params)
149
+ expect(actual).to be_a(Users::Profile)
150
+ end
151
+
152
+ it '#get_user_account' do
153
+ allow(client).to receive(:execute).and_return(account)
154
+ actual = client.get_user_account
155
+ expect(actual).to be_a(Users::Account)
156
+ end
157
+
158
+ it 'creates profile instance' do
159
+ actual = Users.create_profile(profile)
160
+ expect(actual.address).to eq('814 West Chapman Avenue')
161
+ expect(actual.city).to eq('Orange')
162
+ expect(actual.company).to eq('SendGrid')
163
+ expect(actual.first_name).to eq('Test')
164
+ expect(actual.last_name).to eq('User')
165
+ expect(actual.phone).to eq('555-555-5555')
166
+ expect(actual.state).to eq('CA')
167
+ expect(actual.website).to eq('http://www.sendgrid.com')
168
+ expect(actual.zip).to eq('92868')
169
+ end
114
170
 
115
- it 'creates account instance' do
116
- actual = SendGrid4r::REST::Users.create_account(account)
117
- expect(actual.type).to eq('free')
118
- expect(actual.reputation).to eq(99.7)
171
+ it 'creates account instance' do
172
+ actual = Users.create_account(account)
173
+ expect(actual.type).to eq('free')
174
+ expect(actual.reputation).to eq(99.7)
175
+ end
176
+
177
+ it 'creates email instance' do
178
+ actual = Users.create_email(email)
179
+ expect(actual.email).to eq('test@example.com')
180
+ end
181
+
182
+ it 'creates username instance' do
183
+ actual = Users.create_username(username)
184
+ expect(actual.username).to eq('test_username')
185
+ expect(actual.user_id).to eq(1)
186
+ end
187
+
188
+ it 'creates credits instance' do
189
+ actual = Users.create_credits(credits)
190
+ expect(actual.remain).to eq(200)
191
+ expect(actual.total).to eq(200)
192
+ expect(actual.overage).to eq(0)
193
+ expect(actual.used).to eq(0)
194
+ expect(actual.last_reset).to eq('2013-01-01')
195
+ expect(actual.next_reset).to eq('2013-02-01')
196
+ expect(actual.reset_frequency).to eq('monthly')
197
+ end
198
+
199
+ it 'creates password instance' do
200
+ actual = Users.create_password(password)
201
+ expect(actual.new_password).to eq('new_password')
202
+ expect(actual.old_password).to eq('old_password')
203
+ end
119
204
  end
120
205
  end
121
206
  end