sendgrid4r 1.8.1 → 1.10.0

Sign up to get free protection for your applications and to get access to all the features.
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