emma-ruby 0.0.1
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 +7 -0
- data/.gitignore +4 -0
- data/.travis.yml +21 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +51 -0
- data/LICENSE +19 -0
- data/LICENSE.txt +22 -0
- data/README.md +96 -0
- data/Rakefile +8 -0
- data/emma.gemspec +26 -0
- data/lib/emma.rb +40 -0
- data/lib/emma/api/fields.rb +37 -0
- data/lib/emma/api/groups.rb +62 -0
- data/lib/emma/api/mailings.rb +77 -0
- data/lib/emma/api/members.rb +135 -0
- data/lib/emma/api/response.rb +36 -0
- data/lib/emma/api/searches.rb +38 -0
- data/lib/emma/api/triggers.rb +37 -0
- data/lib/emma/api/webhooks.rb +42 -0
- data/lib/emma/client.rb +92 -0
- data/lib/emma/configurable.rb +21 -0
- data/lib/emma/version.rb +3 -0
- data/test/helper.rb +14 -0
- data/test/test_emma_interface.rb +88 -0
- data/test/test_emma_methods.rb +598 -0
- metadata +151 -0
@@ -0,0 +1,598 @@
|
|
1
|
+
require_relative 'helper'
|
2
|
+
|
3
|
+
class TestEmmaMethods < Test::Unit::TestCase
|
4
|
+
|
5
|
+
context "testing of methods" do
|
6
|
+
setup do
|
7
|
+
@em = Emma::Setup.new(nil, nil, nil, true)
|
8
|
+
@member_id = '111'
|
9
|
+
@member_email = 'dennismonsewicz@gmail.com'
|
10
|
+
end
|
11
|
+
|
12
|
+
teardown do
|
13
|
+
@em = nil
|
14
|
+
@member_id = nil
|
15
|
+
@member_email = nil
|
16
|
+
end
|
17
|
+
|
18
|
+
context "testing of methods involving calls to the members endpoints" do
|
19
|
+
should "return member array list" do
|
20
|
+
VCR.use_cassette('members/list_of_members') do
|
21
|
+
response = @em.my_members
|
22
|
+
assert_instance_of Array, response
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
should "lookup member by id" do
|
27
|
+
VCR.use_cassette('members/single_member') do
|
28
|
+
response = @em.get_member_by_id(@member_id)
|
29
|
+
assert response.has_key?('error')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
should "lookup member by email" do
|
34
|
+
VCR.use_cassette('members/single_member_by_email') do
|
35
|
+
response = @em.get_member_by_email(@member_email)
|
36
|
+
assert response.has_key?('error')
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
should "lookup return opted out member" do
|
41
|
+
VCR.use_cassette('members/single_member_optout_info') do
|
42
|
+
response = @em.get_optout_member(@member_id)
|
43
|
+
assert_instance_of Array, response
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
should "optout member" do
|
48
|
+
VCR.use_cassette('members/optout_member') do
|
49
|
+
response = @em.optout(@member_email)
|
50
|
+
assert response.has_key?('error')
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
should "add new members" do
|
55
|
+
VCR.use_cassette('members/add_new_members') do
|
56
|
+
response = @em.add_members(:members => [ {:email => "dennismonsewicz+22211@gmail.com"}, {:email => "dennismonsewicz+kliwuu11@gmail.com"} ])
|
57
|
+
assert response.has_key?('import_id')
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
should "add new member" do
|
62
|
+
VCR.use_cassette('members/add_single_member') do
|
63
|
+
response = @em.add_member(:email => 'dennismonsewicz+ldflwj@gmail.com', :fields => { :first_name => "dennis", :last_name => "the test" })
|
64
|
+
assert response.has_key?('member_id')
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
should "remove an array of members" do
|
69
|
+
VCR.use_cassette('members/remove_array_of_members') do
|
70
|
+
response = @em.remove_members(:member_ids => [123, 111])
|
71
|
+
assert_equal true, response
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
should "change the status of an array of members" do
|
76
|
+
VCR.use_cassette('members/change_status_for_array_of_members') do
|
77
|
+
response = @em.change_members_status(:member_ids => [123, 111], :status_to => "a")
|
78
|
+
assert_equal true, response
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
should "update a single member" do
|
83
|
+
VCR.use_cassette('members/update_member') do
|
84
|
+
response = @em.update_member(111, :status_to => "e")
|
85
|
+
assert response.has_key?('error')
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
should "remove a member" do
|
90
|
+
VCR.use_cassette('members/remove_member') do
|
91
|
+
response = @em.remove_member(111)
|
92
|
+
assert response.has_key?('error')
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
should "get a member's groups" do
|
97
|
+
VCR.use_cassette('members/members_groups') do
|
98
|
+
response = @em.get_members_groups(111)
|
99
|
+
assert response.has_key?('error')
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
should "add single member to a list of groups" do
|
104
|
+
VCR.use_cassette('members/add_member_to_groups') do
|
105
|
+
response = @em.add_member_to_groups(111, :group_ids => [150, 151])
|
106
|
+
assert response.has_key?('error')
|
107
|
+
end
|
108
|
+
end
|
109
|
+
|
110
|
+
should "remove a member from groups" do
|
111
|
+
VCR.use_cassette('members/remove_member_from_groups') do
|
112
|
+
response = @em.remove_member_from_groups(111, :group_ids => [150, 151])
|
113
|
+
assert response.has_key?('error')
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
should "remove all members tied to account" do
|
118
|
+
VCR.use_cassette('members/remove_all_members') do
|
119
|
+
response = @em.remove_all_members
|
120
|
+
assert_equal true, response
|
121
|
+
end
|
122
|
+
end
|
123
|
+
|
124
|
+
should "remove member from all groups" do
|
125
|
+
VCR.use_cassette('members/remove_member_from_groups') do
|
126
|
+
response = @em.remove_member_from_all_groups(111)
|
127
|
+
assert response.has_key?('error')
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
should "remove multiple members from groups" do
|
132
|
+
VCR.use_cassette('members/remove_multiple_members_from_groups') do
|
133
|
+
response = @em.remove_multiple_members_from_groups(:group_ids => [151], :member_ids => [202])
|
134
|
+
assert_equal true, response
|
135
|
+
end
|
136
|
+
end
|
137
|
+
|
138
|
+
should "get mailing history for member" do
|
139
|
+
VCR.use_cassette('members/imported_members') do
|
140
|
+
response = @em.get_mailing_history_for_member(111)
|
141
|
+
assert_instance_of Array, response
|
142
|
+
end
|
143
|
+
end
|
144
|
+
|
145
|
+
should "get list of members by import id" do
|
146
|
+
VCR.use_cassette('members/import_stats') do
|
147
|
+
response = @em.import_stats(111)
|
148
|
+
assert response.has_key?('error')
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
should "get information on all imports" do
|
153
|
+
VCR.use_cassette('members/my_imports') do
|
154
|
+
response = @em.my_imports
|
155
|
+
assert_instance_of Array, response
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
should "delete an import" do
|
160
|
+
VCR.use_cassette('members/delete_import') do
|
161
|
+
response = @em.delete_import
|
162
|
+
assert response.has_key?('error')
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
166
|
+
should "copy members to group" do
|
167
|
+
VCR.use_cassette('members/copy_members_to_group') do
|
168
|
+
response = @em.copy_members_to_group(111, :member_status_id => ["a"])
|
169
|
+
assert response.has_key?('error')
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
should "update group members' status" do
|
174
|
+
VCR.use_cassette('members/update_group_members_status') do
|
175
|
+
response = @em.update_group_members_status('e', 'a', 111)
|
176
|
+
assert response
|
177
|
+
end
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
context "testing of methods involving calls to field endpoints" do
|
182
|
+
should "return field array list" do
|
183
|
+
VCR.use_cassette('fields/list_of_fields') do
|
184
|
+
response = @em.my_fields
|
185
|
+
assert_instance_of Array, response
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
should "lookup field by id" do
|
190
|
+
VCR.use_cassette('fields/single_field') do
|
191
|
+
response = @em.get_field_by_id(111)
|
192
|
+
assert response.has_key?('error')
|
193
|
+
end
|
194
|
+
end
|
195
|
+
|
196
|
+
should "add new field" do
|
197
|
+
VCR.use_cassette('fields/add_field') do
|
198
|
+
response = @em.add_field :shortcut_name => "my_new_field_#{random_string}", :column_order => 1, :display_name => "My New Field (#{random_string})", :field_type => "text"
|
199
|
+
assert_instance_of Fixnum, response
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
should "remove field" do
|
204
|
+
VCR.use_cassette('fields/remove_field') do
|
205
|
+
response = @em.remove_field 111
|
206
|
+
assert response.has_key?('error')
|
207
|
+
end
|
208
|
+
end
|
209
|
+
|
210
|
+
should "clear member data for field" do
|
211
|
+
VCR.use_cassette('fields/remove_member_data_for_field') do
|
212
|
+
response = @em.remove_member_data_for_field 111
|
213
|
+
assert response
|
214
|
+
end
|
215
|
+
end
|
216
|
+
|
217
|
+
should "update field" do
|
218
|
+
VCR.use_cassette('fields/update_field') do
|
219
|
+
response = @em.update_field 111, :display_name => "Hello World"
|
220
|
+
assert response.has_key?("error")
|
221
|
+
end
|
222
|
+
end
|
223
|
+
|
224
|
+
end
|
225
|
+
|
226
|
+
context "testing of methods involving calls to groups endpoints" do
|
227
|
+
should "return group array list" do
|
228
|
+
VCR.use_cassette('groups/my_groups') do
|
229
|
+
response = @em.my_groups
|
230
|
+
assert_instance_of Array, response
|
231
|
+
end
|
232
|
+
end
|
233
|
+
|
234
|
+
should "create new groups" do
|
235
|
+
VCR.use_cassette('groups/add_new_groups') do
|
236
|
+
response = @em.add_new_groups :groups => [ {:group_name => "My New Group"} ]
|
237
|
+
assert_instance_of Array, response
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
should "get group by id" do
|
242
|
+
VCR.use_cassette('groups/get_group_by_id') do
|
243
|
+
response = @em.get_group_by_id 111
|
244
|
+
assert response.has_key?("error")
|
245
|
+
end
|
246
|
+
end
|
247
|
+
|
248
|
+
should "update group" do
|
249
|
+
VCR.use_cassette('groups/update_group') do
|
250
|
+
response = @em.update_group 111, :group_name => "New Group Name Here"
|
251
|
+
assert response.has_key?("error")
|
252
|
+
end
|
253
|
+
end
|
254
|
+
|
255
|
+
should "remove group" do
|
256
|
+
VCR.use_cassette('groups/remove_group') do
|
257
|
+
response = @em.remove_group 111
|
258
|
+
assert response.has_key?("error")
|
259
|
+
end
|
260
|
+
end
|
261
|
+
|
262
|
+
should "get members in a single active group" do
|
263
|
+
VCR.use_cassette('groups/group_members') do
|
264
|
+
response = @em.group_members 111
|
265
|
+
assert response.has_key?("error")
|
266
|
+
end
|
267
|
+
end
|
268
|
+
|
269
|
+
should "add a list of members to a group" do
|
270
|
+
VCR.use_cassette('groups/add_members_to_group') do
|
271
|
+
response = @em.add_members_to_group 111, :member_ids => [100, 102]
|
272
|
+
assert response.has_key?("error")
|
273
|
+
end
|
274
|
+
end
|
275
|
+
|
276
|
+
should "remove a list of members fomr a group" do
|
277
|
+
VCR.use_cassette('groups/remove_members_from_group') do
|
278
|
+
response = @em.remove_members_from_group 111, :member_ids => [100, 102]
|
279
|
+
assert response.has_key?("error")
|
280
|
+
end
|
281
|
+
end
|
282
|
+
|
283
|
+
should "remove all members from a group" do
|
284
|
+
VCR.use_cassette('groups/remove_all_members_from_group') do
|
285
|
+
response = @em.remove_all_members_from_group 111
|
286
|
+
assert response.has_key?("error")
|
287
|
+
end
|
288
|
+
end
|
289
|
+
|
290
|
+
should "remove all members from a groups" do
|
291
|
+
VCR.use_cassette('groups/remove_all_members_from_groups') do
|
292
|
+
response = @em.remove_all_members_from_groups 111, :member_status_id => 'a', :delete_members => true
|
293
|
+
assert response == true
|
294
|
+
end
|
295
|
+
end
|
296
|
+
|
297
|
+
should "copy members from one group to another" do
|
298
|
+
VCR.use_cassette('groups/copy_members_to_different_group') do
|
299
|
+
response = @em.copy_members_to_different_group(111, 121, :member_status_id => ["a"])
|
300
|
+
assert response == true
|
301
|
+
end
|
302
|
+
end
|
303
|
+
|
304
|
+
end
|
305
|
+
|
306
|
+
context "testing of methods involving calls to the mailings endpoints" do
|
307
|
+
should "return mailings array list" do
|
308
|
+
VCR.use_cassette('mailings/my_mailings') do
|
309
|
+
response = @em.my_mailings
|
310
|
+
assert_instance_of Array, response
|
311
|
+
end
|
312
|
+
end
|
313
|
+
|
314
|
+
should "return mailing by id" do
|
315
|
+
VCR.use_cassette('mailings/get_mailing_by_id') do
|
316
|
+
response = @em.get_mailing_by_id 111
|
317
|
+
assert response.has_key? "error"
|
318
|
+
end
|
319
|
+
end
|
320
|
+
|
321
|
+
should "return list of mailing members by id" do
|
322
|
+
VCR.use_cassette('mailings/get_mailing_members') do
|
323
|
+
response = @em.get_mailing_members 111
|
324
|
+
assert response.has_key? "error"
|
325
|
+
end
|
326
|
+
end
|
327
|
+
|
328
|
+
should "return personalized message content as sent to a specific member as part of the specified mailing." do
|
329
|
+
VCR.use_cassette('mailings/get_personalized_member_mailing') do
|
330
|
+
response = @em.get_personalized_member_mailing 111, 102
|
331
|
+
assert response.has_key? "error"
|
332
|
+
end
|
333
|
+
end
|
334
|
+
|
335
|
+
should "return list of groups a mailing was sent to" do
|
336
|
+
VCR.use_cassette('mailings/get_groups_by_mailing') do
|
337
|
+
response = @em.get_groups_by_mailing 111
|
338
|
+
assert response.has_key? "error"
|
339
|
+
end
|
340
|
+
end
|
341
|
+
|
342
|
+
should "return list of searches associated to the sent mailing" do
|
343
|
+
VCR.use_cassette('mailings/mailing_searches') do
|
344
|
+
response = @em.mailing_searches 111
|
345
|
+
assert response.has_key? "error"
|
346
|
+
end
|
347
|
+
end
|
348
|
+
|
349
|
+
should "update mailing" do
|
350
|
+
VCR.use_cassette('mailings/update_mailing') do
|
351
|
+
response = @em.update_mailing 111, :status => 'canceled'
|
352
|
+
assert response.has_key? "error"
|
353
|
+
end
|
354
|
+
end
|
355
|
+
|
356
|
+
should "remove a mailing" do
|
357
|
+
VCR.use_cassette('mailings/remove_mailing') do
|
358
|
+
response = @em.remove_mailing 111
|
359
|
+
assert response.has_key? "error"
|
360
|
+
end
|
361
|
+
end
|
362
|
+
|
363
|
+
should "cancel queued mailing" do
|
364
|
+
VCR.use_cassette('mailings/cancel_queued_mailing') do
|
365
|
+
response = @em.cancel_queued_mailing 111
|
366
|
+
assert response.has_key? "error"
|
367
|
+
end
|
368
|
+
end
|
369
|
+
|
370
|
+
should "forward mailing to additional recipients" do
|
371
|
+
VCR.use_cassette('mailings/forward_mailing_to_additional_recipients') do
|
372
|
+
response = @em.forward_mailing_to_additional_recipients 111, 102, :recipient_emails => ["testme123@gmail.com"]
|
373
|
+
assert response.has_key? "error"
|
374
|
+
end
|
375
|
+
end
|
376
|
+
|
377
|
+
should "send prior mailing to additional recipients" do
|
378
|
+
VCR.use_cassette('mailings/send_existing_mailing') do
|
379
|
+
response = @em.send_existing_mailing 111, :recipient_emails => ["testme123@gmail.com"]
|
380
|
+
assert response.has_key? "error"
|
381
|
+
end
|
382
|
+
end
|
383
|
+
|
384
|
+
should "return headsup email addresses" do
|
385
|
+
VCR.use_cassette('mailings/mailing_headsup') do
|
386
|
+
response = @em.mailing_headsup 111
|
387
|
+
assert response.has_key? "error"
|
388
|
+
end
|
389
|
+
end
|
390
|
+
|
391
|
+
should "validate mailing has valid personalization-tag syntax" do
|
392
|
+
VCR.use_cassette('mailings/validate_mailing') do
|
393
|
+
response = @em.validate_mailing :subject => "Another Test"
|
394
|
+
assert response == true
|
395
|
+
end
|
396
|
+
end
|
397
|
+
|
398
|
+
should "declares winner of split test" do
|
399
|
+
VCR.use_cassette('mailings/declare_winner_of_split_test') do
|
400
|
+
response = @em.declare_winner_of_split_test 111, 112
|
401
|
+
assert response.has_key? "error"
|
402
|
+
end
|
403
|
+
end
|
404
|
+
|
405
|
+
end
|
406
|
+
|
407
|
+
context "testing of methods involving calls to the response endpoints" do
|
408
|
+
should "return mailing by id" do
|
409
|
+
VCR.use_cassette('response/my_account_summary') do
|
410
|
+
response = @em.my_account_summary
|
411
|
+
assert_instance_of Array, response
|
412
|
+
end
|
413
|
+
end
|
414
|
+
|
415
|
+
should "method will return the counts of each type of response activity for a particular mailing." do
|
416
|
+
VCR.use_cassette('response/single_response_summary') do
|
417
|
+
response = @em.single_response_summary 111
|
418
|
+
assert response.has_key? "error"
|
419
|
+
end
|
420
|
+
end
|
421
|
+
|
422
|
+
should "Get the list of messages by id by a particular action actions include (sends, in_progress, deliveries, opens, links, clicks, forwards, optouts, signups, shares, customer_shares, customer_share_clicks)" do
|
423
|
+
%w(sends in_progress deliveries opens links clicks forwards optouts signups shares customer_shares customer_share_clicks).each do |action|
|
424
|
+
VCR.use_cassette('response/response_mailing_information_' + action) do
|
425
|
+
response = @em.response_mailing_information 111, action
|
426
|
+
assert response.has_key? "error"
|
427
|
+
end
|
428
|
+
end
|
429
|
+
end
|
430
|
+
|
431
|
+
should "Get the customer share associated with the share id." do
|
432
|
+
VCR.use_cassette('response/customer_share_information') do
|
433
|
+
response = @em.customer_share_information 111
|
434
|
+
assert response.has_key? "error"
|
435
|
+
end
|
436
|
+
end
|
437
|
+
|
438
|
+
should "Get overview of shares pertaining to this mailing_id." do
|
439
|
+
VCR.use_cassette('response/mailing_shares_overview') do
|
440
|
+
response = @em.mailing_shares_overview 111
|
441
|
+
assert response.has_key? "error"
|
442
|
+
end
|
443
|
+
end
|
444
|
+
|
445
|
+
end
|
446
|
+
|
447
|
+
context "testing of methods involving calls to the searches endpoints" do
|
448
|
+
|
449
|
+
should "Retrieve a list of saved searches." do
|
450
|
+
VCR.use_cassette('searches/my_searches') do
|
451
|
+
response = @em.my_searches
|
452
|
+
assert_instance_of Array, response
|
453
|
+
end
|
454
|
+
end
|
455
|
+
|
456
|
+
should "Retrieve a single search." do
|
457
|
+
VCR.use_cassette('searches/single_search') do
|
458
|
+
response = @em.single_search 111
|
459
|
+
assert response.has_key? "error"
|
460
|
+
end
|
461
|
+
end
|
462
|
+
|
463
|
+
should "create a single search." do
|
464
|
+
VCR.use_cassette('searches/create_search') do
|
465
|
+
response = @em.create_search :name => "New Search", :criteria => [ "or", ["group", "eq", "Monthly Newsletter"] ]
|
466
|
+
assert_instance_of Fixnum, response
|
467
|
+
end
|
468
|
+
end
|
469
|
+
|
470
|
+
should "update a single search." do
|
471
|
+
VCR.use_cassette('searches/update_search') do
|
472
|
+
response = @em.update_search 111, :name => "New Search", :criteria => [ "or", ["group", "eq", "Monthly Newsletter"] ]
|
473
|
+
assert response.has_key? "error"
|
474
|
+
end
|
475
|
+
end
|
476
|
+
|
477
|
+
should "remove a single search." do
|
478
|
+
VCR.use_cassette('searches/remove_search') do
|
479
|
+
response = @em.remove_search 111
|
480
|
+
assert response.has_key? "error"
|
481
|
+
end
|
482
|
+
end
|
483
|
+
|
484
|
+
should "return list of members of search id." do
|
485
|
+
VCR.use_cassette('searches/get_members_of_search') do
|
486
|
+
response = @em.get_members_of_search 111
|
487
|
+
assert response.has_key? "error"
|
488
|
+
end
|
489
|
+
end
|
490
|
+
|
491
|
+
end
|
492
|
+
|
493
|
+
context "testing of methods involving calls to the webhooks endpoints" do
|
494
|
+
should "Retrieve a list of webhooks." do
|
495
|
+
VCR.use_cassette('webhooks/my_webhooks') do
|
496
|
+
response = @em.my_webhooks
|
497
|
+
assert_instance_of Array, response
|
498
|
+
end
|
499
|
+
end
|
500
|
+
|
501
|
+
should "Retrieve single webhook." do
|
502
|
+
VCR.use_cassette('webhooks/get_webhook') do
|
503
|
+
response = @em.get_webhook 111
|
504
|
+
assert response.has_key? "error"
|
505
|
+
end
|
506
|
+
end
|
507
|
+
|
508
|
+
should "Retrieve webhook events list." do
|
509
|
+
VCR.use_cassette('webhooks/webhook_events') do
|
510
|
+
response = @em.webhook_events 111
|
511
|
+
assert response.has_key? "error"
|
512
|
+
end
|
513
|
+
end
|
514
|
+
|
515
|
+
should "Add webhook" do
|
516
|
+
VCR.use_cassette('webhooks/add_webhook') do
|
517
|
+
response = @em.add_webhook :url => "http://www.google.com", :event => "mailing_finish"
|
518
|
+
assert_instance_of Fixnum, response
|
519
|
+
end
|
520
|
+
end
|
521
|
+
|
522
|
+
should "update webhook" do
|
523
|
+
VCR.use_cassette('webhooks/update_webhook') do
|
524
|
+
response = @em.update_webhook 111, :url => "http://www.yahoo.com"
|
525
|
+
assert response.has_key? "error"
|
526
|
+
end
|
527
|
+
end
|
528
|
+
|
529
|
+
should "delete webhook" do
|
530
|
+
VCR.use_cassette('webhooks/remove_webhook') do
|
531
|
+
response = @em.remove_webhook 111
|
532
|
+
assert response.has_key? "error"
|
533
|
+
end
|
534
|
+
end
|
535
|
+
|
536
|
+
should "remove all webhooks" do
|
537
|
+
VCR.use_cassette('webhooks/remove_all_webhooks') do
|
538
|
+
response = @em.remove_all_webhooks
|
539
|
+
assert response == true
|
540
|
+
end
|
541
|
+
end
|
542
|
+
|
543
|
+
end
|
544
|
+
|
545
|
+
context "testing of methods involving calls to the triggers endpoints" do
|
546
|
+
|
547
|
+
should "Retrieve a list of triggers." do
|
548
|
+
VCR.use_cassette('triggers/my_triggers') do
|
549
|
+
response = @em.my_triggers
|
550
|
+
assert_instance_of Array, response
|
551
|
+
end
|
552
|
+
end
|
553
|
+
|
554
|
+
should "Add a trigger." do
|
555
|
+
VCR.use_cassette('triggers/add_trigger') do
|
556
|
+
response = @em.add_trigger :parent_mailing_id => 111, :name => "test", :event_type => "c", :object_ids => [100, 102]
|
557
|
+
assert response.has_key? "error"
|
558
|
+
end
|
559
|
+
end
|
560
|
+
|
561
|
+
should "Look up a trigger by trigger id.." do
|
562
|
+
VCR.use_cassette('triggers/get_trigger_by_id') do
|
563
|
+
response = @em.get_trigger_by_id 111
|
564
|
+
assert response.has_key? "error"
|
565
|
+
end
|
566
|
+
end
|
567
|
+
|
568
|
+
should "Update trigger." do
|
569
|
+
VCR.use_cassette('triggers/update_trigger') do
|
570
|
+
response = @em.update_trigger 111, :name => "Another test mailing update"
|
571
|
+
assert response.has_key? "error"
|
572
|
+
end
|
573
|
+
end
|
574
|
+
|
575
|
+
should "Remove a trigger." do
|
576
|
+
VCR.use_cassette('triggers/remove_trigger') do
|
577
|
+
response = @em.remove_trigger 111
|
578
|
+
assert response.has_key? "error"
|
579
|
+
end
|
580
|
+
end
|
581
|
+
|
582
|
+
should "return array of mailings sent by trigger." do
|
583
|
+
VCR.use_cassette('triggers/get_trigger_mailings') do
|
584
|
+
response = @em.get_trigger_mailings 111
|
585
|
+
assert response.has_key? "error"
|
586
|
+
end
|
587
|
+
end
|
588
|
+
|
589
|
+
end
|
590
|
+
|
591
|
+
end
|
592
|
+
|
593
|
+
def random_string(size = 6)
|
594
|
+
charset = %w{ 2 3 4 6 7 9 A C D E F G H J K M N P Q R T V W X Y Z}
|
595
|
+
(0...size).map{ charset.to_a[rand(charset.size)] }.join
|
596
|
+
end
|
597
|
+
|
598
|
+
end
|