createsend 5.1.1 → 6.1.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 (43) hide show
  1. checksums.yaml +4 -4
  2. data/HISTORY.md +30 -0
  3. data/README.md +2 -2
  4. data/createsend.gemspec +1 -1
  5. data/lib/createsend/client.rb +19 -3
  6. data/lib/createsend/createsend.rb +1 -1
  7. data/lib/createsend/list.rb +13 -12
  8. data/lib/createsend/subscriber.rb +8 -4
  9. data/lib/createsend/version.rb +1 -1
  10. data/samples/authentication_sample.rb +64 -0
  11. data/samples/clients_sample.rb +79 -0
  12. data/samples/journey_sample.rb +3 -2
  13. data/samples/lists_sample.rb +51 -0
  14. data/samples/segments_sample.rb +21 -0
  15. data/samples/subscribers_sample.rb +51 -0
  16. data/test/administrator_test.rb +5 -5
  17. data/test/campaign_test.rb +114 -113
  18. data/test/client_test.rb +121 -98
  19. data/test/createsend_test.rb +47 -47
  20. data/test/fixtures/active_subscribers.json +5 -0
  21. data/test/fixtures/bounced_subscribers.json +1 -0
  22. data/test/fixtures/campaign_summary.json +2 -1
  23. data/test/fixtures/campaigns.json +37 -26
  24. data/test/fixtures/deleted_subscribers.json +5 -0
  25. data/test/fixtures/drafts.json +4 -2
  26. data/test/fixtures/scheduled_campaigns.json +4 -2
  27. data/test/fixtures/segment_subscribers.json +2 -0
  28. data/test/fixtures/subscriber_details.json +2 -0
  29. data/test/fixtures/{subscriber_details_with_track_pref.json → subscriber_details_with_track_and_sms_pref.json} +4 -1
  30. data/test/fixtures/tags.json +10 -0
  31. data/test/fixtures/unconfirmed_subscribers.json +6 -2
  32. data/test/fixtures/unsubscribed_subscribers.json +6 -1
  33. data/test/helper.rb +1 -1
  34. data/test/journey_test.rb +86 -86
  35. data/test/list_test.rb +130 -123
  36. data/test/person_test.rb +6 -6
  37. data/test/segment_test.rb +23 -22
  38. data/test/subscriber_test.rb +55 -51
  39. data/test/template_test.rb +5 -5
  40. data/test/transactional_classic_email_test.rb +6 -6
  41. data/test/transactional_smart_email_test.rb +19 -19
  42. data/test/transactional_timeline_test.rb +25 -25
  43. metadata +16 -113
data/test/list_test.rb CHANGED
@@ -11,13 +11,13 @@ class ListTest < Test::Unit::TestCase
11
11
  should "create a list without passing in unsubscribe setting" do
12
12
  stub_post(@auth, "lists/#{@client_id}.json", "create_list.json")
13
13
  list_id = CreateSend::List.create @auth, @client_id, "List One", "", false, ""
14
- list_id.should == "e3c5f034d68744f7881fdccf13c2daee"
14
+ list_id.should be == "e3c5f034d68744f7881fdccf13c2daee"
15
15
  end
16
16
 
17
17
  should "create a list passing in unsubscribe setting" do
18
18
  stub_post(@auth, "lists/#{@client_id}.json", "create_list.json")
19
19
  list_id = CreateSend::List.create @auth, @client_id, "List One", "", false, "", "OnlyThisList"
20
- list_id.should == "e3c5f034d68744f7881fdccf13c2daee"
20
+ list_id.should be == "e3c5f034d68744f7881fdccf13c2daee"
21
21
  end
22
22
 
23
23
  should "update a list without passing in unsubscribe setting" do
@@ -44,11 +44,11 @@ class ListTest < Test::Unit::TestCase
44
44
  stub_post(@auth, "lists/#{@list.list_id}/customfields.json", "create_custom_field.json")
45
45
  personalisation_tag = @list.create_custom_field "new date field", "Date"
46
46
  request = FakeWeb.last_request.body
47
- request.include?("\"FieldName\":\"new date field\"").should == true
48
- request.include?("\"DataType\":\"Date\"").should == true
49
- request.include?("\"Options\":[]").should == true
50
- request.include?("\"VisibleInPreferenceCenter\":true").should == true
51
- personalisation_tag.should == "[newdatefield]"
47
+ request.include?("\"FieldName\":\"new date field\"").should be == true
48
+ request.include?("\"DataType\":\"Date\"").should be == true
49
+ request.include?("\"Options\":[]").should be == true
50
+ request.include?("\"VisibleInPreferenceCenter\":true").should be == true
51
+ personalisation_tag.should be == "[newdatefield]"
52
52
  end
53
53
 
54
54
  should "create a custom field with options and visible_in_preference_center" do
@@ -57,11 +57,11 @@ class ListTest < Test::Unit::TestCase
57
57
  personalisation_tag = @list.create_custom_field("newsletter format",
58
58
  "MultiSelectOne", options, false)
59
59
  request = FakeWeb.last_request.body
60
- request.include?("\"FieldName\":\"newsletter format\"").should == true
61
- request.include?("\"DataType\":\"MultiSelectOne\"").should == true
62
- request.include?("\"Options\":[\"one\",\"two\"]").should == true
63
- request.include?("\"VisibleInPreferenceCenter\":false").should == true
64
- personalisation_tag.should == "[newdatefield]"
60
+ request.include?("\"FieldName\":\"newsletter format\"").should be == true
61
+ request.include?("\"DataType\":\"MultiSelectOne\"").should be == true
62
+ request.include?("\"Options\":[\"one\",\"two\"]").should be == true
63
+ request.include?("\"VisibleInPreferenceCenter\":false").should be == true
64
+ personalisation_tag.should be == "[newdatefield]"
65
65
  end
66
66
 
67
67
  should "update a custom field" do
@@ -69,9 +69,9 @@ class ListTest < Test::Unit::TestCase
69
69
  stub_put(@auth, "lists/#{@list.list_id}/customfields/#{ERB::Util.url_encode(key)}.json", "update_custom_field.json")
70
70
  personalisation_tag = @list.update_custom_field key, "my renamed custom field", true
71
71
  request = FakeWeb.last_request.body
72
- request.include?("\"FieldName\":\"my renamed custom field\"").should == true
73
- request.include?("\"VisibleInPreferenceCenter\":true").should == true
74
- personalisation_tag.should == "[myrenamedcustomfield]"
72
+ request.include?("\"FieldName\":\"my renamed custom field\"").should be == true
73
+ request.include?("\"VisibleInPreferenceCenter\":true").should be == true
74
+ personalisation_tag.should be == "[myrenamedcustomfield]"
75
75
  end
76
76
 
77
77
  should "delete a custom field" do
@@ -90,168 +90,175 @@ class ListTest < Test::Unit::TestCase
90
90
  should "get the details of a list" do
91
91
  stub_get(@auth, "lists/#{@list.list_id}.json", "list_details.json")
92
92
  details = @list.details
93
- details.ConfirmedOptIn.should == false
94
- details.Title.should == "a non-basic list :)"
95
- details.UnsubscribePage.should == ""
96
- details.ListID.should == "2fe4c8f0373ce320e2200596d7ef168f"
97
- details.ConfirmationSuccessPage.should == ""
98
- details.UnsubscribeSetting.should == "AllClientLists"
93
+ details.ConfirmedOptIn.should be == false
94
+ details.Title.should be == "a non-basic list :)"
95
+ details.UnsubscribePage.should be == ""
96
+ details.ListID.should be == "2fe4c8f0373ce320e2200596d7ef168f"
97
+ details.ConfirmationSuccessPage.should be == ""
98
+ details.UnsubscribeSetting.should be == "AllClientLists"
99
99
  end
100
100
 
101
101
  should "get the custom fields for a list" do
102
102
  stub_get(@auth, "lists/#{@list.list_id}/customfields.json", "custom_fields.json")
103
103
  cfs = @list.custom_fields
104
- cfs.size.should == 3
105
- cfs.first.FieldName.should == "website"
106
- cfs.first.Key.should == "[website]"
107
- cfs.first.DataType.should == "Text"
108
- cfs.first.FieldOptions.should == []
109
- cfs.first.VisibleInPreferenceCenter.should == true
104
+ cfs.size.should be == 3
105
+ cfs.first.FieldName.should be == "website"
106
+ cfs.first.Key.should be == "[website]"
107
+ cfs.first.DataType.should be == "Text"
108
+ cfs.first.FieldOptions.should be == []
109
+ cfs.first.VisibleInPreferenceCenter.should be == true
110
110
  end
111
111
 
112
112
  should "get the segments for a list" do
113
113
  stub_get(@auth, "lists/#{@list.list_id}/segments.json", "segments.json")
114
114
  segments = @list.segments
115
- segments.size.should == 2
116
- segments.first.ListID.should == 'a58ee1d3039b8bec838e6d1482a8a965'
117
- segments.first.SegmentID.should == '46aa5e01fd43381863d4e42cf277d3a9'
118
- segments.first.Title.should == 'Segment One'
115
+ segments.size.should be == 2
116
+ segments.first.ListID.should be == 'a58ee1d3039b8bec838e6d1482a8a965'
117
+ segments.first.SegmentID.should be == '46aa5e01fd43381863d4e42cf277d3a9'
118
+ segments.first.Title.should be == 'Segment One'
119
119
  end
120
120
 
121
121
  should "get the stats for a list" do
122
122
  stub_get(@auth, "lists/#{@list.list_id}/stats.json", "list_stats.json")
123
123
  stats = @list.stats
124
- stats.TotalActiveSubscribers.should == 6
125
- stats.TotalUnsubscribes.should == 2
126
- stats.TotalDeleted.should == 0
127
- stats.TotalBounces.should == 0
124
+ stats.TotalActiveSubscribers.should be == 6
125
+ stats.TotalUnsubscribes.should be == 2
126
+ stats.TotalDeleted.should be == 0
127
+ stats.TotalBounces.should be == 0
128
128
  end
129
129
 
130
130
  should "get the active subscribers for a list" do
131
131
  min_date = "2010-01-01"
132
- stub_get(@auth, "lists/#{@list.list_id}/active.json?pagesize=1000&orderfield=email&page=1&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}&includetrackingpreference=false",
132
+ stub_get(@auth, "lists/#{@list.list_id}/active.json?pagesize=1000&orderfield=email&page=1&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}&includetrackingpreference=false&includesmspreference=false",
133
133
  "active_subscribers.json")
134
134
  res = @list.active min_date
135
- res.ResultsOrderedBy.should == "email"
136
- res.OrderDirection.should == "asc"
137
- res.PageNumber.should == 1
138
- res.PageSize.should == 1000
139
- res.RecordsOnThisPage.should == 5
140
- res.TotalNumberOfRecords.should == 5
141
- res.NumberOfPages.should == 1
142
- res.Results.size.should == 5
143
- res.Results.first.EmailAddress.should == "subs+7t8787Y@example.com"
144
- res.Results.first.Name.should =="Person One"
145
- res.Results.first.Date.should == "2010-10-25 10:28:00"
146
- res.Results.first.State.should == "Active"
147
- res.Results.first.CustomFields.size.should == 5
148
- res.Results.first.CustomFields[0].Key.should == "website"
149
- res.Results.first.CustomFields[0].Value.should == "http://example.com"
150
- res.Results.first.CustomFields[1].Key.should == "multi select field"
151
- res.Results.first.CustomFields[1].Value.should == "option one"
152
- res.Results.first.CustomFields[2].Key.should == "multi select field"
153
- res.Results.first.CustomFields[2].Value.should == "option two"
154
- res.Results.first.ReadsEmailWith.should == "Gmail"
135
+ res.ResultsOrderedBy.should be == "email"
136
+ res.OrderDirection.should be == "asc"
137
+ res.PageNumber.should be == 1
138
+ res.PageSize.should be == 1000
139
+ res.RecordsOnThisPage.should be == 5
140
+ res.TotalNumberOfRecords.should be == 5
141
+ res.NumberOfPages.should be == 1
142
+ res.Results.size.should be == 5
143
+ res.Results.first.EmailAddress.should be == "subs+7t8787Y@example.com"
144
+ res.Results.first.Name.should be =="Person One"
145
+ res.Results.first.Date.should be == "2010-10-25 10:28:00"
146
+ res.Results.first.ListJoinedDate.should be == "2010-10-25 10:28:00"
147
+ res.Results.first.State.should be == "Active"
148
+ res.Results.first.CustomFields.size.should be == 5
149
+ res.Results.first.CustomFields[0].Key.should be == "website"
150
+ res.Results.first.CustomFields[0].Value.should be == "http://example.com"
151
+ res.Results.first.CustomFields[1].Key.should be == "multi select field"
152
+ res.Results.first.CustomFields[1].Value.should be == "option one"
153
+ res.Results.first.CustomFields[2].Key.should be == "multi select field"
154
+ res.Results.first.CustomFields[2].Value.should be == "option two"
155
+ res.Results.first.ReadsEmailWith.should be == "Gmail"
155
156
  end
156
157
 
157
158
  should "get the unconfirmed subscribers for a list" do
158
159
  min_date = "2010-01-01"
159
- stub_get(@auth, "lists/#{@list.list_id}/unconfirmed.json?pagesize=1000&orderfield=email&page=1&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}&includetrackingpreference=true",
160
+ stub_get(@auth, "lists/#{@list.list_id}/unconfirmed.json?pagesize=1000&orderfield=email&page=1&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}&includetrackingpreference=true&includesmspreference=true",
160
161
  "unconfirmed_subscribers.json")
161
- res = @list.unconfirmed(min_date, 1, 1000, "email", "asc", true)
162
- res.ResultsOrderedBy.should == "email"
163
- res.OrderDirection.should == "asc"
164
- res.PageNumber.should == 1
165
- res.PageSize.should == 1000
166
- res.RecordsOnThisPage.should == 2
167
- res.TotalNumberOfRecords.should == 2
168
- res.NumberOfPages.should == 1
169
- res.Results.size.should == 2
170
- res.Results.first.EmailAddress.should == "subs+7t8787Y@example.com"
171
- res.Results.first.Name.should =="Unconfirmed One"
172
- res.Results.first.State.should == "Unconfirmed"
173
- res.Results.first.ConsentToTrack.should == "Yes"
162
+ res = @list.unconfirmed(min_date, 1, 1000, "email", "asc", true, include_sms_preference:true)
163
+ res.ResultsOrderedBy.should be == "email"
164
+ res.OrderDirection.should be == "asc"
165
+ res.PageNumber.should be == 1
166
+ res.PageSize.should be == 1000
167
+ res.RecordsOnThisPage.should be == 2
168
+ res.TotalNumberOfRecords.should be == 2
169
+ res.NumberOfPages.should be == 1
170
+ res.Results.size.should be == 2
171
+ res.Results.first.EmailAddress.should be == "subs+7t8787Y@example.com"
172
+ res.Results.first.Name.should be =="Unconfirmed One"
173
+ res.Results.first.Date.should be =="2010-10-25 10:28:00"
174
+ res.Results.first.ListJoinedDate.should be =="2010-10-25 10:28:00"
175
+ res.Results.first.State.should be == "Unconfirmed"
176
+ res.Results.first.ConsentToTrack.should be == "Yes"
177
+ res.Results.first.ConsentToSendSms.should be == "No"
174
178
  end
175
179
 
176
180
  should "get the unsubscribed subscribers for a list" do
177
181
  min_date = "2010-01-01"
178
- stub_get(@auth, "lists/#{@list.list_id}/unsubscribed.json?pagesize=1000&orderfield=email&page=1&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}&includetrackingpreference=false",
182
+ stub_get(@auth, "lists/#{@list.list_id}/unsubscribed.json?pagesize=1000&orderfield=email&page=1&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}&includetrackingpreference=false&includesmspreference=false",
179
183
  "unsubscribed_subscribers.json")
180
184
  res = @list.unsubscribed min_date
181
- res.ResultsOrderedBy.should == "email"
182
- res.OrderDirection.should == "asc"
183
- res.PageNumber.should == 1
184
- res.PageSize.should == 1000
185
- res.RecordsOnThisPage.should == 5
186
- res.TotalNumberOfRecords.should == 5
187
- res.NumberOfPages.should == 1
188
- res.Results.size.should == 5
189
- res.Results.first.EmailAddress.should == "subscriber@example.com"
190
- res.Results.first.Name.should == "Unsub One"
191
- res.Results.first.Date.should == "2010-10-25 13:11:00"
192
- res.Results.first.State.should == "Unsubscribed"
193
- res.Results.first.CustomFields.size.should == 0
194
- res.Results.first.ReadsEmailWith.should == "Gmail"
185
+ res.ResultsOrderedBy.should be == "email"
186
+ res.OrderDirection.should be == "asc"
187
+ res.PageNumber.should be == 1
188
+ res.PageSize.should be == 1000
189
+ res.RecordsOnThisPage.should be == 5
190
+ res.TotalNumberOfRecords.should be == 5
191
+ res.NumberOfPages.should be == 1
192
+ res.Results.size.should be == 5
193
+ res.Results.first.EmailAddress.should be == "subscriber@example.com"
194
+ res.Results.first.Name.should be == "Unsub One"
195
+ res.Results.first.Date.should be == "2010-10-25 13:11:00"
196
+ res.Results.first.ListJoinedDate.should be == "2010-10-25 13:11:00"
197
+ res.Results.first.State.should be == "Unsubscribed"
198
+ res.Results.first.CustomFields.size.should be == 0
199
+ res.Results.first.ReadsEmailWith.should be == "Gmail"
195
200
  end
196
201
 
197
202
  should "get the deleted subscribers for a list" do
198
203
  min_date = "2010-01-01"
199
- stub_get(@auth, "lists/#{@list.list_id}/deleted.json?pagesize=1000&orderfield=email&page=1&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}&includetrackingpreference=false",
204
+ stub_get(@auth, "lists/#{@list.list_id}/deleted.json?pagesize=1000&orderfield=email&page=1&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}&includetrackingpreference=false&includesmspreference=false",
200
205
  "deleted_subscribers.json")
201
206
  res = @list.deleted min_date
202
- res.ResultsOrderedBy.should == "email"
203
- res.OrderDirection.should == "asc"
204
- res.PageNumber.should == 1
205
- res.PageSize.should == 1000
206
- res.RecordsOnThisPage.should == 5
207
- res.TotalNumberOfRecords.should == 5
208
- res.NumberOfPages.should == 1
209
- res.Results.size.should == 5
210
- res.Results.first.EmailAddress.should == "subscriber@example.com"
211
- res.Results.first.Name.should == "Deleted One"
212
- res.Results.first.Date.should == "2010-10-25 13:11:00"
213
- res.Results.first.State.should == "Deleted"
214
- res.Results.first.CustomFields.size.should == 0
215
- res.Results.first.ReadsEmailWith.should == "Gmail"
207
+ res.ResultsOrderedBy.should be == "email"
208
+ res.OrderDirection.should be == "asc"
209
+ res.PageNumber.should be == 1
210
+ res.PageSize.should be == 1000
211
+ res.RecordsOnThisPage.should be == 5
212
+ res.TotalNumberOfRecords.should be == 5
213
+ res.NumberOfPages.should be == 1
214
+ res.Results.size.should be == 5
215
+ res.Results.first.EmailAddress.should be == "subscriber@example.com"
216
+ res.Results.first.Name.should be == "Deleted One"
217
+ res.Results.first.Date.should be == "2010-10-25 13:11:00"
218
+ res.Results.first.ListJoinedDate.should be == "2010-10-25 13:11:00"
219
+ res.Results.first.State.should be == "Deleted"
220
+ res.Results.first.CustomFields.size.should be == 0
221
+ res.Results.first.ReadsEmailWith.should be == "Gmail"
216
222
  end
217
223
 
218
224
  should "get the bounced subscribers for a list" do
219
225
  min_date = "2010-01-01"
220
- stub_get(@auth, "lists/#{@list.list_id}/bounced.json?pagesize=1000&orderfield=email&page=1&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}&includetrackingpreference=false",
226
+ stub_get(@auth, "lists/#{@list.list_id}/bounced.json?pagesize=1000&orderfield=email&page=1&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}&includetrackingpreference=false&includesmspreference=false",
221
227
  "bounced_subscribers.json")
222
228
  res = @list.bounced min_date
223
- res.ResultsOrderedBy.should == "email"
224
- res.OrderDirection.should == "asc"
225
- res.PageNumber.should == 1
226
- res.PageSize.should == 1000
227
- res.RecordsOnThisPage.should == 1
228
- res.TotalNumberOfRecords.should == 1
229
- res.NumberOfPages.should == 1
230
- res.Results.size.should == 1
231
- res.Results.first.EmailAddress.should == "bouncedsubscriber@example.com"
232
- res.Results.first.Name.should == "Bounced One"
233
- res.Results.first.Date.should == "2010-10-25 13:11:00"
234
- res.Results.first.State.should == "Bounced"
235
- res.Results.first.CustomFields.size.should == 0
236
- res.Results.first.ReadsEmailWith.should == ""
229
+ res.ResultsOrderedBy.should be == "email"
230
+ res.OrderDirection.should be == "asc"
231
+ res.PageNumber.should be == 1
232
+ res.PageSize.should be == 1000
233
+ res.RecordsOnThisPage.should be == 1
234
+ res.TotalNumberOfRecords.should be == 1
235
+ res.NumberOfPages.should be == 1
236
+ res.Results.size.should be == 1
237
+ res.Results.first.EmailAddress.should be == "bouncedsubscriber@example.com"
238
+ res.Results.first.Name.should be == "Bounced One"
239
+ res.Results.first.Date.should be == "2010-10-25 13:11:00"
240
+ res.Results.first.ListJoinedDate.should be == "2010-10-25 13:11:00"
241
+ res.Results.first.State.should be == "Bounced"
242
+ res.Results.first.CustomFields.size.should be == 0
243
+ res.Results.first.ReadsEmailWith.should be == ""
237
244
  end
238
245
 
239
246
  should "get the webhooks for a list" do
240
247
  stub_get(@auth, "lists/#{@list.list_id}/webhooks.json", "list_webhooks.json")
241
248
  hooks = @list.webhooks
242
- hooks.size.should == 2
243
- hooks.first.WebhookID.should == "943678317049bc13"
244
- hooks.first.Events.size.should == 1
245
- hooks.first.Events.first.should == "Deactivate"
246
- hooks.first.Url.should == "http://www.postbin.org/d9w8ud9wud9w"
247
- hooks.first.Status.should == "Active"
248
- hooks.first.PayloadFormat.should == "Json"
249
+ hooks.size.should be == 2
250
+ hooks.first.WebhookID.should be == "943678317049bc13"
251
+ hooks.first.Events.size.should be == 1
252
+ hooks.first.Events.first.should be == "Deactivate"
253
+ hooks.first.Url.should be == "http://www.postbin.org/d9w8ud9wud9w"
254
+ hooks.first.Status.should be == "Active"
255
+ hooks.first.PayloadFormat.should be == "Json"
249
256
  end
250
257
 
251
258
  should "create a webhook for a list" do
252
259
  stub_post(@auth, "lists/#{@list.list_id}/webhooks.json", "create_list_webhook.json")
253
260
  webhook_id = @list.create_webhook ["Unsubscribe", "Spam"], "http://example.com/unsub", "json"
254
- webhook_id.should == "6a783d359bd44ef62c6ca0d3eda4412a"
261
+ webhook_id.should be == "6a783d359bd44ef62c6ca0d3eda4412a"
255
262
  end
256
263
 
257
264
  should "test a webhook for a list" do
data/test/person_test.rb CHANGED
@@ -11,16 +11,16 @@ class PersonTest < Test::Unit::TestCase
11
11
  email = "person@example.com"
12
12
  stub_get(@auth, "clients/#{@client_id}/people.json?email=#{ERB::Util.url_encode(email)}", "person_details.json")
13
13
  person = CreateSend::Person.get @auth, @client_id, email
14
- person.EmailAddress.should == email
15
- person.Name.should == "Person One"
16
- person.AccessLevel.should == 1023
17
- person.Status.should == "Active"
14
+ person.EmailAddress.should be == email
15
+ person.Name.should be == "Person One"
16
+ person.AccessLevel.should be == 1023
17
+ person.Status.should be == "Active"
18
18
  end
19
19
 
20
20
  should "add a person" do
21
21
  stub_post(@auth, "clients/#{@client_id}/people.json", "add_person.json")
22
22
  result = CreateSend::Person.add @auth, @client_id, "person@example.com", "Person", 0, "Password"
23
- result.EmailAddress.should == "person@example.com"
23
+ result.EmailAddress.should be == "person@example.com"
24
24
  end
25
25
 
26
26
  should "update a person" do
@@ -28,7 +28,7 @@ class PersonTest < Test::Unit::TestCase
28
28
  new_email = "new_email_address@example.com"
29
29
  stub_put(@auth, "clients/#{@client_id}/people.json?email=#{ERB::Util.url_encode(email)}", nil)
30
30
  @person.update new_email, "Person", 1023, "NewPassword"
31
- @person.email_address.should == new_email
31
+ @person.email_address.should be == new_email
32
32
  end
33
33
 
34
34
  should "delete a person" do
data/test/segment_test.rb CHANGED
@@ -11,7 +11,7 @@ class SegmentTest < Test::Unit::TestCase
11
11
  rule_groups = [ { :Rules => [ { :RuleType => "EmailAddress", :Clause => "CONTAINS example.com" } ] } ]
12
12
  stub_post(@auth, "segments/#{list_id}.json", "create_segment.json")
13
13
  res = CreateSend::Segment.create @auth, list_id, "new segment title", rule_groups
14
- res.should == "0246c2aea610a3545d9780bf6ab89006"
14
+ res.should be == "0246c2aea610a3545d9780bf6ab89006"
15
15
  end
16
16
 
17
17
  should "update a segment" do
@@ -31,19 +31,20 @@ class SegmentTest < Test::Unit::TestCase
31
31
  stub_get(@auth, "segments/#{@segment.segment_id}/active.json?pagesize=1000&orderfield=email&page=1&orderdirection=asc&date=#{ERB::Util.url_encode(min_date)}&includetrackingpreference=false",
32
32
  "segment_subscribers.json")
33
33
  res = @segment.subscribers min_date
34
- res.ResultsOrderedBy.should == "email"
35
- res.OrderDirection.should == "asc"
36
- res.PageNumber.should == 1
37
- res.PageSize.should == 1000
38
- res.RecordsOnThisPage.should == 2
39
- res.TotalNumberOfRecords.should == 2
40
- res.NumberOfPages.should == 1
41
- res.Results.size.should == 2
42
- res.Results.first.EmailAddress.should == "personone@example.com"
43
- res.Results.first.Name.should == "Person One"
44
- res.Results.first.Date.should == "2010-10-27 13:13:00"
45
- res.Results.first.State.should == "Active"
46
- res.Results.first.CustomFields.should == []
34
+ res.ResultsOrderedBy.should be == "email"
35
+ res.OrderDirection.should be == "asc"
36
+ res.PageNumber.should be == 1
37
+ res.PageSize.should be == 1000
38
+ res.RecordsOnThisPage.should be == 2
39
+ res.TotalNumberOfRecords.should be == 2
40
+ res.NumberOfPages.should be == 1
41
+ res.Results.size.should be == 2
42
+ res.Results.first.EmailAddress.should be == "personone@example.com"
43
+ res.Results.first.Name.should be == "Person One"
44
+ res.Results.first.Date.should be == "2010-10-27 13:13:00"
45
+ res.Results.first.ListJoinedDate.should be == "2010-10-27 13:13:00"
46
+ res.Results.first.State.should be == "Active"
47
+ res.Results.first.CustomFields.should be == []
47
48
  end
48
49
 
49
50
  should "delete a segment" do
@@ -54,14 +55,14 @@ class SegmentTest < Test::Unit::TestCase
54
55
  should "get the details of a segment" do
55
56
  stub_get(@auth, "segments/#{@segment.segment_id}.json", "segment_details.json")
56
57
  res = @segment.details
57
- res.ActiveSubscribers.should == 0
58
- res.RuleGroups.size.should == 2
59
- res.RuleGroups.first.Rules.size.should == 1
60
- res.RuleGroups.first.Rules.first.RuleType.should == "EmailAddress"
61
- res.RuleGroups.first.Rules.first.Clause.should == "CONTAINS @hello.com"
62
- res.ListID.should == "2bea949d0bf96148c3e6a209d2e82060"
63
- res.SegmentID.should == "dba84a225d5ce3d19105d7257baac46f"
64
- res.Title.should == "My Segment"
58
+ res.ActiveSubscribers.should be == 0
59
+ res.RuleGroups.size.should be == 2
60
+ res.RuleGroups.first.Rules.size.should be == 1
61
+ res.RuleGroups.first.Rules.first.RuleType.should be == "EmailAddress"
62
+ res.RuleGroups.first.Rules.first.Clause.should be == "CONTAINS @hello.com"
63
+ res.ListID.should be == "2bea949d0bf96148c3e6a209d2e82060"
64
+ res.SegmentID.should be == "dba84a225d5ce3d19105d7257baac46f"
65
+ res.Title.should be == "My Segment"
65
66
  end
66
67
 
67
68
  should "clear a segment's rules" do
@@ -11,36 +11,40 @@ class SubscriberTest < Test::Unit::TestCase
11
11
  email = "subscriber@example.com"
12
12
  stub_get(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}&includetrackingpreference=false", "subscriber_details.json")
13
13
  subscriber = CreateSend::Subscriber.get @auth, @list_id, email
14
- subscriber.EmailAddress.should == email
15
- subscriber.Name.should == "Subscriber One"
16
- subscriber.Date.should == "2010-10-25 10:28:00"
17
- subscriber.State.should == "Active"
18
- subscriber.CustomFields.size.should == 3
19
- subscriber.CustomFields.first.Key.should == 'website'
20
- subscriber.CustomFields.first.Value.should == 'http://example.com'
21
- subscriber.ReadsEmailWith.should == "Gmail"
14
+ subscriber.EmailAddress.should be == email
15
+ subscriber.Name.should be == "Subscriber One"
16
+ subscriber.Date.should be == "2010-10-25 10:28:00"
17
+ subscriber.MobileNumber.should be == "+61423153526"
18
+ subscriber.ListJoinedDate.should be == "2010-10-25 10:28:00"
19
+ subscriber.State.should be == "Active"
20
+ subscriber.CustomFields.size.should be == 3
21
+ subscriber.CustomFields.first.Key.should be == 'website'
22
+ subscriber.CustomFields.first.Value.should be == 'http://example.com'
23
+ subscriber.ReadsEmailWith.should be == "Gmail"
22
24
  end
23
25
 
24
- should "get a subscriber with track preference information" do
26
+ should "get a subscriber with track and sms preference information" do
25
27
  email = "subscriber@example.com"
26
- stub_get(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}&includetrackingpreference=true", "subscriber_details_with_track_pref.json")
28
+ stub_get(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}&includetrackingpreference=true", "subscriber_details_with_track_and_sms_pref.json")
27
29
  subscriber = CreateSend::Subscriber.get @auth, @list_id, email, true
28
- subscriber.EmailAddress.should == email
29
- subscriber.Name.should == "Subscriber One"
30
- subscriber.ConsentToTrack == "Yes"
30
+ subscriber.EmailAddress.should be == email
31
+ subscriber.Name.should be == "Subscriber One"
32
+ subscriber.MobileNumber.should be == "+61423153526"
33
+ subscriber.ConsentToTrack.should be == "Yes"
34
+ subscriber.ConsentToSendSms.should be == "No"
31
35
  end
32
36
 
33
37
  should "add a subscriber without custom fields" do
34
38
  stub_post(@auth, "subscribers/#{@list_id}.json", "add_subscriber.json")
35
39
  email_address = CreateSend::Subscriber.add @auth, @list_id, "subscriber@example.com", "Subscriber", [], true, "Yes"
36
- email_address.should == "subscriber@example.com"
40
+ email_address.should be == "subscriber@example.com"
37
41
  end
38
42
 
39
43
  should "add a subscriber with custom fields" do
40
44
  stub_post(@auth, "subscribers/#{@list_id}.json", "add_subscriber.json")
41
45
  custom_fields = [ { :Key => 'website', :Value => 'http://example.com/' } ]
42
46
  email_address = CreateSend::Subscriber.add @auth, @list_id, "subscriber@example.com", "Subscriber", custom_fields, true, "Yes"
43
- email_address.should == "subscriber@example.com"
47
+ email_address.should be == "subscriber@example.com"
44
48
  end
45
49
 
46
50
  should "add a subscriber with custom fields including multi-option fields" do
@@ -49,7 +53,7 @@ class SubscriberTest < Test::Unit::TestCase
49
53
  { :Key => 'multioptionselectmany', :Value => 'firstoption' },
50
54
  { :Key => 'multioptionselectmany', :Value => 'secondoption' } ]
51
55
  email_address = CreateSend::Subscriber.add @auth, @list_id, "subscriber@example.com", "Subscriber", custom_fields, true, "Yes"
52
- email_address.should == "subscriber@example.com"
56
+ email_address.should be == "subscriber@example.com"
53
57
  end
54
58
 
55
59
  should "update a subscriber with custom fields" do
@@ -58,7 +62,7 @@ class SubscriberTest < Test::Unit::TestCase
58
62
  stub_put(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}", nil)
59
63
  custom_fields = [ { :Key => 'website', :Value => 'http://example.com/' } ]
60
64
  @subscriber.update new_email, "Subscriber", custom_fields, true, "Yes"
61
- @subscriber.email_address.should == new_email
65
+ @subscriber.email_address.should be == new_email
62
66
  end
63
67
 
64
68
  should "update a subscriber with custom fields including the clear option" do
@@ -67,7 +71,7 @@ class SubscriberTest < Test::Unit::TestCase
67
71
  stub_put(@auth, "subscribers/#{@list_id}.json?email=#{ERB::Util.url_encode(email)}", nil)
68
72
  custom_fields = [ { :Key => 'website', :Value => '', :Clear => true } ]
69
73
  @subscriber.update new_email, "Subscriber", custom_fields, true, "No"
70
- @subscriber.email_address.should == new_email
74
+ @subscriber.email_address.should be == new_email
71
75
  end
72
76
 
73
77
  should "import many subscribers at once" do
@@ -78,11 +82,11 @@ class SubscriberTest < Test::Unit::TestCase
78
82
  { :EmailAddress => "example+3@example.com", :Name => "Example Three" },
79
83
  ]
80
84
  import_result = CreateSend::Subscriber.import @auth, @list_id, subscribers, true
81
- import_result.FailureDetails.size.should == 0
82
- import_result.TotalUniqueEmailsSubmitted.should == 3
83
- import_result.TotalExistingSubscribers.should == 0
84
- import_result.TotalNewSubscribers.should == 3
85
- import_result.DuplicateEmailsInSubmission.size.should == 0
85
+ import_result.FailureDetails.size.should be == 0
86
+ import_result.TotalUniqueEmailsSubmitted.should be == 3
87
+ import_result.TotalExistingSubscribers.should be == 0
88
+ import_result.TotalNewSubscribers.should be == 3
89
+ import_result.DuplicateEmailsInSubmission.size.should be == 0
86
90
  end
87
91
 
88
92
  should "import many subscribers at once, and start subscription-based autoresponders" do
@@ -93,11 +97,11 @@ class SubscriberTest < Test::Unit::TestCase
93
97
  { :EmailAddress => "example+3@example.com", :Name => "Example Three" },
94
98
  ]
95
99
  import_result = CreateSend::Subscriber.import @auth, @list_id, subscribers, true, true
96
- import_result.FailureDetails.size.should == 0
97
- import_result.TotalUniqueEmailsSubmitted.should == 3
98
- import_result.TotalExistingSubscribers.should == 0
99
- import_result.TotalNewSubscribers.should == 3
100
- import_result.DuplicateEmailsInSubmission.size.should == 0
100
+ import_result.FailureDetails.size.should be == 0
101
+ import_result.TotalUniqueEmailsSubmitted.should be == 3
102
+ import_result.TotalExistingSubscribers.should be == 0
103
+ import_result.TotalNewSubscribers.should be == 3
104
+ import_result.DuplicateEmailsInSubmission.size.should be == 0
101
105
  end
102
106
 
103
107
  should "import many subscribers at once with custom fields, including the clear option" do
@@ -108,11 +112,11 @@ class SubscriberTest < Test::Unit::TestCase
108
112
  { :EmailAddress => "example+3@example.com", :Name => "Example Three", :CustomFields => [ { :Key => 'website', :Value => '', :Clear => false } ] },
109
113
  ]
110
114
  import_result = CreateSend::Subscriber.import @auth, @list_id, subscribers, true
111
- import_result.FailureDetails.size.should == 0
112
- import_result.TotalUniqueEmailsSubmitted.should == 3
113
- import_result.TotalExistingSubscribers.should == 0
114
- import_result.TotalNewSubscribers.should == 3
115
- import_result.DuplicateEmailsInSubmission.size.should == 0
115
+ import_result.FailureDetails.size.should be == 0
116
+ import_result.TotalUniqueEmailsSubmitted.should be == 3
117
+ import_result.TotalExistingSubscribers.should be == 0
118
+ import_result.TotalNewSubscribers.should be == 3
119
+ import_result.DuplicateEmailsInSubmission.size.should be == 0
116
120
  end
117
121
 
118
122
  should "import many subscribers at once with partial success" do
@@ -124,14 +128,14 @@ class SubscriberTest < Test::Unit::TestCase
124
128
  { :EmailAddress => "example+3@example.com", :Name => "Example Three" },
125
129
  ]
126
130
  import_result = CreateSend::Subscriber.import @auth, @list_id, subscribers, true
127
- import_result.FailureDetails.size.should == 1
128
- import_result.FailureDetails.first.EmailAddress.should == "example+1@example"
129
- import_result.FailureDetails.first.Code.should == 1
130
- import_result.FailureDetails.first.Message.should == "Invalid Email Address"
131
- import_result.TotalUniqueEmailsSubmitted.should == 3
132
- import_result.TotalExistingSubscribers.should == 2
133
- import_result.TotalNewSubscribers.should == 0
134
- import_result.DuplicateEmailsInSubmission.size.should == 0
131
+ import_result.FailureDetails.size.should be == 1
132
+ import_result.FailureDetails.first.EmailAddress.should be == "example+1@example"
133
+ import_result.FailureDetails.first.Code.should be == 1
134
+ import_result.FailureDetails.first.Message.should be == "Invalid Email Address"
135
+ import_result.TotalUniqueEmailsSubmitted.should be == 3
136
+ import_result.TotalExistingSubscribers.should be == 2
137
+ import_result.TotalNewSubscribers.should be == 0
138
+ import_result.DuplicateEmailsInSubmission.size.should be == 0
135
139
  end
136
140
 
137
141
  should "raise a BadRequest error if the import _completely_ fails because of a bad request" do
@@ -142,7 +146,7 @@ class SubscriberTest < Test::Unit::TestCase
142
146
  { :EmailAddress => "example+2@example.com", :Name => "Example Two" },
143
147
  { :EmailAddress => "example+3@example.com", :Name => "Example Three" },
144
148
  ]
145
- lambda { import_result = CreateSend::Subscriber.import @auth, @list_id, subscribers,
149
+ lambda { CreateSend::Subscriber.import @auth, @list_id, subscribers,
146
150
  true }.should raise_error(CreateSend::BadRequest)
147
151
  end
148
152
 
@@ -154,15 +158,15 @@ class SubscriberTest < Test::Unit::TestCase
154
158
  should "get a subscriber's history" do
155
159
  stub_get(@auth, "subscribers/#{@subscriber.list_id}/history.json?email=#{ERB::Util.url_encode(@subscriber.email_address)}", "subscriber_history.json")
156
160
  history = @subscriber.history
157
- history.size.should == 1
158
- history.first.Name.should == "Campaign One"
159
- history.first.Type.should == "Campaign"
160
- history.first.ID.should == "fc0ce7105baeaf97f47c99be31d02a91"
161
- history.first.Actions.size.should == 6
162
- history.first.Actions.first.Event.should == "Open"
163
- history.first.Actions.first.Date.should == "2010-10-12 13:18:00"
164
- history.first.Actions.first.IPAddress.should == "192.168.126.87"
165
- history.first.Actions.first.Detail.should == ""
161
+ history.size.should be == 1
162
+ history.first.Name.should be == "Campaign One"
163
+ history.first.Type.should be == "Campaign"
164
+ history.first.ID.should be == "fc0ce7105baeaf97f47c99be31d02a91"
165
+ history.first.Actions.size.should be == 6
166
+ history.first.Actions.first.Event.should be == "Open"
167
+ history.first.Actions.first.Date.should be == "2010-10-12 13:18:00"
168
+ history.first.Actions.first.IPAddress.should be == "192.168.126.87"
169
+ history.first.Actions.first.Detail.should be == ""
166
170
  end
167
171
 
168
172
  should "delete a subscriber" do