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
@@ -1,10 +1,10 @@
1
1
  # encoding: utf-8
2
2
  require File.dirname(__FILE__) + '/../spec_helper'
3
3
 
4
- describe SendGrid4r::REST::Subusers do
5
- describe 'integration test', :it do
6
- before do
7
- begin
4
+ module SendGrid4r::REST
5
+ describe Subusers 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
10
  @username1 = ENV['SUBUSER1']
@@ -28,124 +28,74 @@ describe SendGrid4r::REST::Subusers do
28
28
  password: @password1,
29
29
  ips: [@ip]
30
30
  )
31
- rescue RestClient::ExceptionWithResponse => e
32
- puts e.inspect
33
- raise e
34
31
  end
35
- end
36
32
 
37
- context 'without block call' do
38
- it '#get_subusers' do
39
- begin
33
+ context 'without block call' do
34
+ it '#get_subusers' do
40
35
  subusers = @client.get_subusers(limit: 100, offset: 0)
41
36
  expect(subusers).to be_a(Array)
42
37
  subusers.each do |subuser|
43
- expect(subuser).to be_a(SendGrid4r::REST::Subusers::Subuser)
38
+ expect(subuser).to be_a(Subusers::Subuser)
44
39
  end
45
- rescue RestClient::ExceptionWithResponse => e
46
- puts e.inspect
47
- raise e
48
40
  end
49
- end
50
41
 
51
- it '#post_subuser' do
52
- begin
53
- expect(@subuser3).to be_a(SendGrid4r::REST::Subusers::Subuser)
42
+ it '#post_subuser' do
43
+ expect(@subuser3).to be_a(Subusers::Subuser)
54
44
  expect(@subuser3.username).to eq(@username3)
55
45
  expect(@subuser3.email).to eq(@email1)
56
- rescue RestClient::ExceptionWithResponse => e
57
- puts e.inspect
58
- raise e
59
46
  end
60
- end
61
47
 
62
- it '#patch_subuser' do
63
- begin
48
+ it '#patch_subuser' do
64
49
  @client.patch_subuser(username: @username3, disabled: true)
65
50
  @client.patch_subuser(username: @username3, disabled: false)
66
- rescue RestClient::ExceptionWithResponse => e
67
- puts e.inspect
68
- raise e
69
51
  end
70
- end
71
52
 
72
- it '#delete_subuser' do
73
- begin
53
+ it '#delete_subuser' do
74
54
  @client.delete_subuser(username: @username3)
75
- rescue RestClient::ExceptionWithResponse => e
76
- puts e.inspect
77
- raise e
78
55
  end
79
- end
80
56
 
81
- it '#get_subuser_monitor' do
82
- begin
57
+ it '#get_subuser_monitor' do
83
58
  monitor = @client.get_subuser_monitor(
84
59
  username: @username3, email: @email1, frequency: 10
85
60
  )
86
- expect(monitor).to be_a(SendGrid4r::REST::Subusers::Monitor)
87
- rescue RestClient::ExceptionWithResponse => e
88
- puts e.inspect
89
- raise e
61
+ expect(monitor).to be_a(Subusers::Monitor)
90
62
  end
91
- end
92
63
 
93
- it '#post_subuser_monitor' do
94
- begin
64
+ it '#post_subuser_monitor' do
95
65
  monitor = @client.post_subuser_monitor(
96
66
  username: @username3, email: @email1, frequency: 10
97
67
  )
98
- expect(monitor).to be_a(SendGrid4r::REST::Subusers::Monitor)
99
- rescue RestClient::ExceptionWithResponse => e
100
- puts e.inspect
101
- raise e
68
+ expect(monitor).to be_a(Subusers::Monitor)
102
69
  end
103
- end
104
70
 
105
- it '#put_subuser_monitor' do
106
- begin
71
+ it '#put_subuser_monitor' do
107
72
  @client.post_subuser_monitor(
108
73
  username: @username3, email: @email1, frequency: 10
109
74
  )
110
75
  monitor = @client.put_subuser_monitor(
111
76
  username: @username3, email: @email1, frequency: 10
112
77
  )
113
- expect(monitor).to be_a(SendGrid4r::REST::Subusers::Monitor)
114
- rescue RestClient::ExceptionWithResponse => e
115
- puts e.inspect
116
- raise e
78
+ expect(monitor).to be_a(Subusers::Monitor)
117
79
  end
118
- end
119
80
 
120
- it '#delete_subuser_monitor' do
121
- begin
81
+ it '#delete_subuser_monitor' do
122
82
  @client.post_subuser_monitor(
123
83
  username: @username3, email: @email1, frequency: 10
124
84
  )
125
85
  @client.delete_subuser_monitor(username: @username3)
126
- rescue RestClient::ExceptionWithResponse => e
127
- puts e.inspect
128
- raise e
129
86
  end
130
- end
131
87
 
132
- it '#get_subuser_reputation' do
133
- begin
88
+ it '#get_subuser_reputation' do
134
89
  params = []
135
90
  params.push(@username3)
136
91
  subusers = @client.get_subuser_reputation(usernames: params)
137
92
  expect(subusers).to be_a(Array)
138
93
  subusers.each do |subuser|
139
- expect(subuser).to be_a(SendGrid4r::REST::Subusers::Subuser)
94
+ expect(subuser).to be_a(Subusers::Subuser)
140
95
  end
141
- rescue RestClient::ExceptionWithResponse => e
142
- puts e.inspect
143
- raise e
144
96
  end
145
- end
146
97
 
147
- it '#put_subuser_assigned_ips' do
148
- begin
98
+ it '#put_subuser_assigned_ips' do
149
99
  subuser = @client.put_subuser_assigned_ips(
150
100
  username: @username3, ips: [@ip]
151
101
  )
@@ -153,170 +103,167 @@ describe SendGrid4r::REST::Subusers do
153
103
  subuser.ips.each do |ip|
154
104
  expect(ip).to be_a(String)
155
105
  end
156
- rescue RestClient::ExceptionWithResponse => e
157
- puts e.inspect
158
- raise e
159
106
  end
160
107
  end
161
108
  end
162
- end
163
109
 
164
- describe 'unit test', :ut do
165
- let(:client) do
166
- SendGrid4r::Client.new(api_key: '')
167
- end
110
+ describe 'unit test', :ut do
111
+ let(:client) do
112
+ SendGrid4r::Client.new(api_key: '')
113
+ end
168
114
 
169
- let(:subusers) do
170
- JSON.parse(
171
- '['\
172
- '{'\
173
- '"id": 1,'\
174
- '"username": "Test@example.com",'\
175
- '"email": "Test@example.com"'\
176
- '},'\
115
+ let(:subusers) do
116
+ JSON.parse(
117
+ '['\
118
+ '{'\
119
+ '"id": 1,'\
120
+ '"username": "Test@example.com",'\
121
+ '"email": "Test@example.com"'\
122
+ '},'\
123
+ '{'\
124
+ '"id": 2,'\
125
+ '"username": "John@example.com",'\
126
+ '"email": "John@example.com"'\
127
+ '}'\
128
+ ']'
129
+ )
130
+ end
131
+
132
+ let(:subuser) do
133
+ JSON.parse(
177
134
  '{'\
178
- '"id": 2,'\
179
135
  '"username": "John@example.com",'\
180
- '"email": "John@example.com"'\
181
- '}'\
182
- ']'
183
- )
184
- end
185
-
186
- let(:subuser) do
187
- JSON.parse(
188
- '{'\
189
- '"username": "John@example.com",'\
190
- '"email": "John@example.com",'\
191
- '"password": "johns_password",'\
192
- '"ips": ['\
193
- '"1.1.1.1",'\
194
- '"2.2.2.2"'\
195
- '],'\
196
- '"disabled": false'\
197
- '}'
198
- )
199
- end
136
+ '"email": "John@example.com",'\
137
+ '"password": "johns_password",'\
138
+ '"ips": ['\
139
+ '"1.1.1.1",'\
140
+ '"2.2.2.2"'\
141
+ '],'\
142
+ '"disabled": false'\
143
+ '}'
144
+ )
145
+ end
200
146
 
201
- let(:ips) do
202
- JSON.parse(
203
- '{'\
204
- '"ips": ['\
205
- '"127.0.0.1",'\
206
- '"127.0.0.2"'\
207
- ']'\
208
- '}'
209
- )
210
- end
147
+ let(:ips) do
148
+ JSON.parse(
149
+ '{'\
150
+ '"ips": ['\
151
+ '"127.0.0.1",'\
152
+ '"127.0.0.2"'\
153
+ ']'\
154
+ '}'
155
+ )
156
+ end
211
157
 
212
- let(:monitor) do
213
- JSON.parse(
214
- '{'\
215
- '"email": "test@example.com",'\
216
- '"frequency": 500'\
217
- '}'
218
- )
219
- end
158
+ let(:monitor) do
159
+ JSON.parse(
160
+ '{'\
161
+ '"email": "test@example.com",'\
162
+ '"frequency": 500'\
163
+ '}'
164
+ )
165
+ end
220
166
 
221
- it '#get_subusers' do
222
- allow(client).to receive(:execute).and_return(subusers)
223
- actual = client.get_subusers(limit: 0, offset: 0, username: 'aaa')
224
- expect(actual).to be_a(Array)
225
- actual.each do |subuser|
226
- expect(subuser).to be_a(SendGrid4r::REST::Subusers::Subuser)
167
+ it '#get_subusers' do
168
+ allow(client).to receive(:execute).and_return(subusers)
169
+ actual = client.get_subusers(limit: 0, offset: 0, username: 'aaa')
170
+ expect(actual).to be_a(Array)
171
+ actual.each do |subuser|
172
+ expect(subuser).to be_a(Subusers::Subuser)
173
+ end
227
174
  end
228
- end
229
175
 
230
- it '#post_subuser' do
231
- allow(client).to receive(:execute).and_return(subuser)
232
- actual = client.post_subuser(
233
- username: '', email: '', password: '', ips: []
234
- )
235
- expect(actual).to be_a(SendGrid4r::REST::Subusers::Subuser)
236
- end
176
+ it '#post_subuser' do
177
+ allow(client).to receive(:execute).and_return(subuser)
178
+ actual = client.post_subuser(
179
+ username: '', email: '', password: '', ips: []
180
+ )
181
+ expect(actual).to be_a(Subusers::Subuser)
182
+ end
237
183
 
238
- it '#patch_subuser' do
239
- allow(client).to receive(:execute).and_return(subuser)
240
- actual = client.patch_subuser(username: '', disabled: true)
241
- expect(actual).to be_a(SendGrid4r::REST::Subusers::Subuser)
242
- end
184
+ it '#patch_subuser' do
185
+ allow(client).to receive(:execute).and_return(subuser)
186
+ actual = client.patch_subuser(username: '', disabled: true)
187
+ expect(actual).to be_a(Subusers::Subuser)
188
+ end
243
189
 
244
- it '#delete_subuser' do
245
- allow(client).to receive(:execute).and_return('')
246
- actual = client.delete_subuser(username: '')
247
- expect(actual).to eq('')
248
- end
190
+ it '#delete_subuser' do
191
+ allow(client).to receive(:execute).and_return('')
192
+ actual = client.delete_subuser(username: '')
193
+ expect(actual).to eq('')
194
+ end
249
195
 
250
- it '#get_subuser_monitor' do
251
- allow(client).to receive(:execute).and_return(monitor)
252
- actual = client.get_subuser_monitor(
253
- username: '', email: '', frequency: 1
254
- )
255
- expect(actual).to be_a(SendGrid4r::REST::Subusers::Monitor)
256
- end
196
+ it '#get_subuser_monitor' do
197
+ allow(client).to receive(:execute).and_return(monitor)
198
+ actual = client.get_subuser_monitor(
199
+ username: '', email: '', frequency: 1
200
+ )
201
+ expect(actual).to be_a(Subusers::Monitor)
202
+ end
257
203
 
258
- it '#post_subuser_monitor' do
259
- allow(client).to receive(:execute).and_return(monitor)
260
- actual = client.post_subuser_monitor(
261
- username: '', email: '', frequency: 1
262
- )
263
- expect(actual).to be_a(SendGrid4r::REST::Subusers::Monitor)
264
- end
204
+ it '#post_subuser_monitor' do
205
+ allow(client).to receive(:execute).and_return(monitor)
206
+ actual = client.post_subuser_monitor(
207
+ username: '', email: '', frequency: 1
208
+ )
209
+ expect(actual).to be_a(Subusers::Monitor)
210
+ end
265
211
 
266
- it '#put_subuser_monitor' do
267
- allow(client).to receive(:execute).and_return(monitor)
268
- actual = client.put_subuser_monitor(
269
- username: '', email: '', frequency: 1
270
- )
271
- expect(actual).to be_a(SendGrid4r::REST::Subusers::Monitor)
272
- end
212
+ it '#put_subuser_monitor' do
213
+ allow(client).to receive(:execute).and_return(monitor)
214
+ actual = client.put_subuser_monitor(
215
+ username: '', email: '', frequency: 1
216
+ )
217
+ expect(actual).to be_a(Subusers::Monitor)
218
+ end
273
219
 
274
- it '#delete_subuser_monitor' do
275
- allow(client).to receive(:execute).and_return('')
276
- actual = client.delete_subuser_monitor(username: '')
277
- expect(actual).to eq('')
278
- end
220
+ it '#delete_subuser_monitor' do
221
+ allow(client).to receive(:execute).and_return('')
222
+ actual = client.delete_subuser_monitor(username: '')
223
+ expect(actual).to eq('')
224
+ end
279
225
 
280
- it '#get_subuser_reputation' do
281
- allow(client).to receive(:execute).and_return(subusers)
282
- actual = client.get_subuser_reputation(usernames: [])
283
- expect(actual).to be_a(Array)
284
- actual.each do |subuser|
285
- expect(subuser).to be_a(SendGrid4r::REST::Subusers::Subuser)
226
+ it '#get_subuser_reputation' do
227
+ allow(client).to receive(:execute).and_return(subusers)
228
+ actual = client.get_subuser_reputation(usernames: [])
229
+ expect(actual).to be_a(Array)
230
+ actual.each do |subuser|
231
+ expect(subuser).to be_a(Subusers::Subuser)
232
+ end
286
233
  end
287
- end
288
234
 
289
- it '#put_subuser_assigned_ips' do
290
- allow(client).to receive(:execute).and_return(subuser)
291
- actual = client.put_subuser_assigned_ips(username: '', ips: [])
292
- expect(actual).to be_a(SendGrid4r::REST::Subusers::Subuser)
293
- end
235
+ it '#put_subuser_assigned_ips' do
236
+ allow(client).to receive(:execute).and_return(subuser)
237
+ actual = client.put_subuser_assigned_ips(username: '', ips: [])
238
+ expect(actual).to be_a(Subusers::Subuser)
239
+ end
294
240
 
295
- it 'creates subusers instance' do
296
- actual = SendGrid4r::REST::Subusers.create_subusers(subusers)
297
- expect(actual).to be_a(Array)
298
- actual.each do |subuser|
299
- expect(subuser).to be_a(SendGrid4r::REST::Subusers::Subuser)
241
+ it 'creates subusers instance' do
242
+ actual = Subusers.create_subusers(subusers)
243
+ expect(actual).to be_a(Array)
244
+ actual.each do |subuser|
245
+ expect(subuser).to be_a(Subusers::Subuser)
246
+ end
300
247
  end
301
- end
302
248
 
303
- it 'creates subuser instance' do
304
- actual = SendGrid4r::REST::Subusers.create_subuser(subuser)
305
- expect(actual).to be_a(SendGrid4r::REST::Subusers::Subuser)
306
- expect(actual.username).to eq('John@example.com')
307
- expect(actual.email).to eq('John@example.com')
308
- expect(actual.password).to eq('johns_password')
309
- actual.ips do |ip|
310
- expect(ip).to be_a(String)
249
+ it 'creates subuser instance' do
250
+ actual = Subusers.create_subuser(subuser)
251
+ expect(actual).to be_a(Subusers::Subuser)
252
+ expect(actual.username).to eq('John@example.com')
253
+ expect(actual.email).to eq('John@example.com')
254
+ expect(actual.password).to eq('johns_password')
255
+ actual.ips do |ip|
256
+ expect(ip).to be_a(String)
257
+ end
258
+ expect(actual.disabled).to eq(false)
311
259
  end
312
- expect(actual.disabled).to eq(false)
313
- end
314
260
 
315
- it 'creates monitor instance' do
316
- actual = SendGrid4r::REST::Subusers.create_monitor(monitor)
317
- expect(actual).to be_a(SendGrid4r::REST::Subusers::Monitor)
318
- expect(actual.email).to eq('test@example.com')
319
- expect(actual.frequency).to eq(500)
261
+ it 'creates monitor instance' do
262
+ actual = Subusers.create_monitor(monitor)
263
+ expect(actual).to be_a(Subusers::Monitor)
264
+ expect(actual.email).to eq('test@example.com')
265
+ expect(actual.frequency).to eq(500)
266
+ end
320
267
  end
321
268
  end
322
269
  end
@@ -0,0 +1,199 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/../../spec_helper'
3
+
4
+ module SendGrid4r::REST::TransactionalTemplates
5
+ describe SendGrid4r::REST::TransactionalTemplates 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_name1 = 'template_test1'
11
+ @template_name2 = 'template_test2'
12
+ @template_edit1 = 'template_edit1'
13
+ @version_name1 = 'version_test1'
14
+ @factory = SendGrid4r::Factory::VersionFactory.new
15
+
16
+ # celan up test env
17
+ tmps = @client.get_templates
18
+ tmps.templates.each do |tmp|
19
+ delete_template(tmp) if tmp.name == @template_name1
20
+ delete_template(tmp) if tmp.name == @template_name2
21
+ delete_template(tmp) if tmp.name == @template_edit1
22
+ end
23
+ # post a template
24
+ @template1 = @client.post_template(name: @template_name1)
25
+ end
26
+
27
+ def delete_template(tmp)
28
+ tmp.versions.each do |ver|
29
+ @client.delete_version(template_id: tmp.id, version_id: ver.id)
30
+ end
31
+ @client.delete_template(template_id: tmp.id)
32
+ end
33
+
34
+ context 'without block call' do
35
+ it '#post_template' do
36
+ new_template = @client.post_template(name: @template_name2)
37
+ expect(new_template.id).to be_a(String)
38
+ expect(new_template.name).to eq(@template_name2)
39
+ expect(new_template.versions).to be_a(Array)
40
+ end
41
+
42
+ it '#get_templates' do
43
+ tmps = @client.get_templates
44
+ tmps.templates.each do |tmp|
45
+ expect(tmp.id).to be_a(String)
46
+ expect(tmp.name).to be_a(String)
47
+ expect(tmp.versions).to be_a(Array)
48
+ tmp.versions.each do |ver|
49
+ expect(ver.id).to be_a(String)
50
+ expect(ver.template_id).to be_a(String)
51
+ expect(ver.active).to be_a(Fixnum)
52
+ expect(ver.name).to be_a(String)
53
+ expect(ver.updated_at).to be_a(String)
54
+ end
55
+ end
56
+ end
57
+
58
+ it '#patch_template' do
59
+ version = @factory.create(name: @version_name1)
60
+ @client.post_version(template_id: @template1.id, version: version)
61
+ tmp = @client.patch_template(
62
+ template_id: @template1.id, name: @template_edit1
63
+ )
64
+ expect(tmp.id).to be_a(String)
65
+ expect(tmp.name).to be_a(String)
66
+ expect(tmp.versions).to be_a(Array)
67
+ tmp.versions.each do |ver|
68
+ expect(ver.id).to be_a(String)
69
+ expect(ver.template_id).to be_a(String)
70
+ expect(ver.active).to be_a(Fixnum)
71
+ expect(ver.name).to be_a(String)
72
+ expect(ver.updated_at).to be_a(String)
73
+ end
74
+ end
75
+
76
+ it '#get_template' do
77
+ tmp = @client.get_template(template_id: @template1.id)
78
+ expect(tmp.id).to eq(@template1.id)
79
+ expect(tmp.versions).to eq(@template1.versions)
80
+ end
81
+
82
+ it '#delete_template' do
83
+ @client.delete_template(template_id: @template1.id)
84
+ end
85
+ end
86
+ end
87
+
88
+ describe 'unit test', :ut do
89
+ let(:client) do
90
+ SendGrid4r::Client.new(api_key: '')
91
+ end
92
+
93
+ let(:template) do
94
+ JSON.parse(
95
+ '{'\
96
+ '"id": "733ba07f-ead1-41fc-933a-3976baa23716",'\
97
+ '"name": "example_name",'\
98
+ '"versions": []'\
99
+ '}'
100
+ )
101
+ end
102
+
103
+ let(:templates) do
104
+ JSON.parse(
105
+ '{'\
106
+ '"templates": ['\
107
+ '{'\
108
+ '"id": "e8ac01d5-a07a-4a71-b14c-4721136fe6aa",'\
109
+ '"name": "example template name",'\
110
+ '"versions": ['\
111
+ '{'\
112
+ '"id": "de37d11b-082a-42c0-9884-c0c143015a47",'\
113
+ '"user_id": 1234,'\
114
+ '"template_id": "d51480ba-ca3f-465c-bc3e-ceb71d73c38d",'\
115
+ '"active": 1,'\
116
+ '"name": "example version",'\
117
+ '"html_content": "<%body%><strong>Click '\
118
+ 'to Reset</strong>",'\
119
+ '"plain_content": "Click to Reset<%body%>",'\
120
+ '"subject": "<%subject%>",'\
121
+ '"updated_at": "2014-05-22 20:05:21"'\
122
+ '}'\
123
+ ']'\
124
+ '}'\
125
+ ']'\
126
+ '}'
127
+ )
128
+ end
129
+
130
+ it '#post_template' do
131
+ allow(client).to receive(:execute).and_return(template)
132
+ actual = client.post_template(name: '')
133
+ expect(actual).to be_a(Template)
134
+ end
135
+
136
+ it '#get_templates' do
137
+ allow(client).to receive(:execute).and_return(templates)
138
+ actual = client.get_templates
139
+ expect(actual).to be_a(Templates)
140
+ end
141
+
142
+ it '#patch_template' do
143
+ allow(client).to receive(:execute).and_return(template)
144
+ actual = client.patch_template(template_id: '', name: '')
145
+ expect(actual).to be_a(Template)
146
+ end
147
+
148
+ it '#get_template' do
149
+ allow(client).to receive(:execute).and_return(template)
150
+ actual = client.get_template(template_id: '')
151
+ expect(actual).to be_a(Template)
152
+ end
153
+
154
+ it '#delete_template' do
155
+ allow(client).to receive(:execute).and_return('')
156
+ actual = client.delete_template(template_id: '')
157
+ expect(actual).to eq('')
158
+ end
159
+
160
+ it 'creates template instance' do
161
+ actual = SendGrid4r::REST::TransactionalTemplates.create_template(
162
+ template
163
+ )
164
+ expect(actual).to be_a(Template)
165
+ expect(actual.id).to eq('733ba07f-ead1-41fc-933a-3976baa23716')
166
+ expect(actual.name).to eq('example_name')
167
+ expect(actual.versions).to be_a(Array)
168
+ end
169
+
170
+ it 'creates templates instance' do
171
+ actual = SendGrid4r::REST::TransactionalTemplates.create_templates(
172
+ templates
173
+ )
174
+ expect(actual).to be_a(Templates)
175
+ expect(actual.templates).to be_a(Array)
176
+ actual.templates.each do |template|
177
+ expect(template.id).to eq('e8ac01d5-a07a-4a71-b14c-4721136fe6aa')
178
+ expect(template.name).to eq('example template name')
179
+ expect(template.versions).to be_a(Array)
180
+ template.versions do |version|
181
+ expect(version.id).to eq('de37d11b-082a-42c0-9884-c0c143015a47')
182
+ expect(version.user_id).to eq(1234)
183
+ expect(version.template_id).to eq(
184
+ 'd51480ba-ca3f-465c-bc3e-ceb71d73c38d'
185
+ )
186
+ expect(version.active).to eq(1)
187
+ expect(version.name).to eq('example version')
188
+ expect(version.html_content).to eq(
189
+ '<%body%><strong>Click to Reset</strong>'
190
+ )
191
+ expect(version.plain_content).to eq('Click to Reset<%body%>')
192
+ expect(version.subject).to eq('<%subject%>')
193
+ expect(version.updated_at).to eq('2014-05-22 20:05:21')
194
+ end
195
+ end
196
+ end
197
+ end
198
+ end
199
+ end