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,210 +1,155 @@
1
1
  # encoding: utf-8
2
2
  require File.dirname(__FILE__) + '/../spec_helper'
3
3
 
4
- describe SendGrid4r::REST::CancelScheduledSends do
5
- describe 'integration test', :it do
6
- before do
7
- begin
4
+ module SendGrid4r::REST
5
+ describe CancelScheduledSends 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
  @scheduled_sends = @client.get_scheduled_sends
11
11
  @scheduled_sends.each do |scheduled_send|
12
12
  @client.delete_scheduled_send(batch_id: scheduled_send.batch_id)
13
13
  end
14
- rescue RestClient::ExceptionWithResponse => e
15
- puts e.inspect
16
- raise e
17
14
  end
18
- end
19
15
 
20
- context 'without block call' do
21
- it '#generate_batch_id' do
22
- begin
16
+ context 'without block call' do
17
+ it '#generate_batch_id' do
23
18
  scheduled_send = @client.generate_batch_id
24
- expect(scheduled_send).to be_a(
25
- SendGrid4r::REST::CancelScheduledSends::ScheduledSend
26
- )
19
+ expect(scheduled_send).to be_a(CancelScheduledSends::ScheduledSend)
27
20
  expect(scheduled_send.batch_id.length).to be > 0
28
- rescue RestClient::ExceptionWithResponse => e
29
- puts e.inspect
30
- raise e
31
21
  end
32
- end
33
22
 
34
- it '#validate_batch_id' do
35
- begin
23
+ it '#validate_batch_id' do
36
24
  batch_id = @client.generate_batch_id.batch_id
37
25
  scheduled_send = @client.validate_batch_id(batch_id: batch_id)
38
- expect(scheduled_send).to be_a(
39
- SendGrid4r::REST::CancelScheduledSends::ScheduledSend
40
- )
26
+ expect(scheduled_send).to be_a(CancelScheduledSends::ScheduledSend)
41
27
  expect(scheduled_send.batch_id).to eq(batch_id)
42
- rescue RestClient::ExceptionWithResponse => e
43
- puts e.inspect
44
- raise e
45
28
  end
46
- end
47
29
 
48
- it '#post_scheduled_send' do
49
- begin
30
+ it '#post_scheduled_send' do
50
31
  batch_id = @client.generate_batch_id.batch_id
51
32
  scheduled_send = @client.post_scheduled_send(
52
33
  batch_id: batch_id, status: 'cancel'
53
34
  )
54
- expect(scheduled_send).to be_a(
55
- SendGrid4r::REST::CancelScheduledSends::ScheduledSend
56
- )
57
- rescue RestClient::ExceptionWithResponse => e
58
- puts e.inspect
59
- raise e
35
+ expect(scheduled_send).to be_a(CancelScheduledSends::ScheduledSend)
60
36
  end
61
- end
62
37
 
63
- it '#get_scheduled_sends' do
64
- begin
38
+ it '#get_scheduled_sends' do
65
39
  scheduled_sends = @client.get_scheduled_sends
66
40
  expect(scheduled_sends).to be_a(Array)
67
41
  scheduled_sends.each do |scheduled_send|
68
- expect(scheduled_send).to be_a(
69
- SendGrid4r::REST::CancelScheduledSends::ScheduledSend
70
- )
42
+ expect(scheduled_send).to be_a(CancelScheduledSends::ScheduledSend)
71
43
  end
72
- rescue RestClient::ExceptionWithResponse => e
73
- puts e.inspect
74
- raise e
75
44
  end
76
- end
77
45
 
78
- it '#patch_scheduled_send' do
79
- begin
46
+ it '#patch_scheduled_send' do
80
47
  batch_id = @client.generate_batch_id.batch_id
81
48
  expect do
82
- @client.patch_scheduled_send(
83
- batch_id: batch_id, status: 'pause'
84
- )
49
+ @client.patch_scheduled_send(batch_id: batch_id, status: 'pause')
85
50
  end.to raise_error(RestClient::ResourceNotFound)
86
- rescue RestClient::ExceptionWithResponse => e
87
- puts e.inspect
88
- raise e
89
51
  end
90
- end
91
52
 
92
- it '#delete_scheduled_send' do
93
- begin
53
+ it '#delete_scheduled_send' do
94
54
  scheduled_sends = @client.get_scheduled_sends
95
55
  scheduled_sends.each do |scheduled_send|
96
56
  @client.delete_scheduled_send(batch_id: scheduled_send.batch_id)
97
57
  end
98
- rescue RestClient::ExceptionWithResponse => e
99
- puts e.inspect
100
- raise e
101
58
  end
102
59
  end
103
60
  end
104
- end
105
-
106
- describe 'unit test', :ut do
107
- let(:client) do
108
- SendGrid4r::Client.new(api_key: '')
109
- end
110
61
 
111
- let(:scheduled_send) do
112
- JSON.parse(
113
- '{'\
114
- '"batch_id": "YOUR_BATCH_ID"'\
115
- '}'
116
- )
117
- end
62
+ describe 'unit test', :ut do
63
+ let(:client) do
64
+ SendGrid4r::Client.new(api_key: '')
65
+ end
118
66
 
119
- let(:scheduled_sends) do
120
- JSON.parse(
121
- '['\
122
- '{'\
123
- '"batch_id": "BATCH_ID_1",'\
124
- '"status": "cancel"'\
125
- '},'\
67
+ let(:scheduled_send) do
68
+ JSON.parse(
126
69
  '{'\
127
- '"batch_id": "BATCH_ID_2",'\
128
- '"status": "pause"'\
129
- '}'\
130
- ']'
131
- )
132
- end
70
+ '"batch_id": "YOUR_BATCH_ID"'\
71
+ '}'
72
+ )
73
+ end
133
74
 
134
- it '#generate_batch_id' do
135
- allow(client).to receive(:execute).and_return(scheduled_send)
136
- actual = client.generate_batch_id
137
- expect(actual).to be_a(
138
- SendGrid4r::REST::CancelScheduledSends::ScheduledSend
139
- )
140
- expect(actual.batch_id).to eq('YOUR_BATCH_ID')
141
- end
75
+ let(:scheduled_sends) do
76
+ JSON.parse(
77
+ '['\
78
+ '{'\
79
+ '"batch_id": "BATCH_ID_1",'\
80
+ '"status": "cancel"'\
81
+ '},'\
82
+ '{'\
83
+ '"batch_id": "BATCH_ID_2",'\
84
+ '"status": "pause"'\
85
+ '}'\
86
+ ']'
87
+ )
88
+ end
142
89
 
143
- it '#validate_batch_id' do
144
- allow(client).to receive(:execute).and_return(scheduled_send)
145
- actual = client.validate_batch_id(batch_id: '')
146
- expect(actual).to be_a(
147
- SendGrid4r::REST::CancelScheduledSends::ScheduledSend
148
- )
149
- expect(actual.batch_id).to eq('YOUR_BATCH_ID')
150
- end
90
+ it '#generate_batch_id' do
91
+ allow(client).to receive(:execute).and_return(scheduled_send)
92
+ actual = client.generate_batch_id
93
+ expect(actual).to be_a(CancelScheduledSends::ScheduledSend)
94
+ expect(actual.batch_id).to eq('YOUR_BATCH_ID')
95
+ end
151
96
 
152
- it '#post_scheduled_send' do
153
- allow(client).to receive(:execute).and_return(scheduled_send)
154
- actual = client.post_scheduled_send(batch_id: '', status: '')
155
- expect(actual).to be_a(
156
- SendGrid4r::REST::CancelScheduledSends::ScheduledSend
157
- )
158
- expect(actual.batch_id).to eq('YOUR_BATCH_ID')
159
- end
97
+ it '#validate_batch_id' do
98
+ allow(client).to receive(:execute).and_return(scheduled_send)
99
+ actual = client.validate_batch_id(batch_id: '')
100
+ expect(actual).to be_a(CancelScheduledSends::ScheduledSend)
101
+ expect(actual.batch_id).to eq('YOUR_BATCH_ID')
102
+ end
160
103
 
161
- it '#get_scheduled_sends' do
162
- allow(client).to receive(:execute).and_return(scheduled_sends)
163
- actual = client.get_scheduled_sends
164
- expect(actual).to be_a(Array)
165
- actual.each do |scheduled_send|
166
- expect(scheduled_send).to be_a(
167
- SendGrid4r::REST::CancelScheduledSends::ScheduledSend
168
- )
104
+ it '#post_scheduled_send' do
105
+ allow(client).to receive(:execute).and_return(scheduled_send)
106
+ actual = client.post_scheduled_send(batch_id: '', status: '')
107
+ expect(actual).to be_a(CancelScheduledSends::ScheduledSend)
108
+ expect(actual.batch_id).to eq('YOUR_BATCH_ID')
169
109
  end
170
- end
171
110
 
172
- it '#patch_scheduled_send' do
173
- allow(client).to receive(:execute).and_return('')
174
- actual = client.patch_scheduled_send(batch_id: '', status: '')
175
- expect(actual).to eq('')
176
- end
111
+ it '#get_scheduled_sends' do
112
+ allow(client).to receive(:execute).and_return(scheduled_sends)
113
+ actual = client.get_scheduled_sends
114
+ expect(actual).to be_a(Array)
115
+ actual.each do |scheduled_send|
116
+ expect(scheduled_send).to be_a(CancelScheduledSends::ScheduledSend)
117
+ end
118
+ end
177
119
 
178
- it '#delete_scheduled_send' do
179
- allow(client).to receive(:execute).and_return('')
180
- actual = client.delete_scheduled_send(batch_id: '')
181
- expect(actual).to eq('')
182
- end
120
+ it '#patch_scheduled_send' do
121
+ allow(client).to receive(:execute).and_return('')
122
+ actual = client.patch_scheduled_send(batch_id: '', status: '')
123
+ expect(actual).to eq('')
124
+ end
125
+
126
+ it '#delete_scheduled_send' do
127
+ allow(client).to receive(:execute).and_return('')
128
+ actual = client.delete_scheduled_send(batch_id: '')
129
+ expect(actual).to eq('')
130
+ end
183
131
 
184
- it 'creates scheduled_sends instance' do
185
- actual = SendGrid4r::REST::CancelScheduledSends.create_scheduled_sends(
186
- scheduled_sends
187
- )
188
- expect(actual).to be_a(Array)
189
- actual.each do |scheduled_send|
190
- expect(scheduled_send).to be_a(
191
- SendGrid4r::REST::CancelScheduledSends::ScheduledSend
132
+ it 'creates scheduled_sends instance' do
133
+ actual = CancelScheduledSends.create_scheduled_sends(
134
+ scheduled_sends
192
135
  )
193
- expect(actual[0].batch_id).to eq('BATCH_ID_1')
194
- expect(actual[0].status).to eq('cancel')
195
- expect(actual[1].batch_id).to eq('BATCH_ID_2')
196
- expect(actual[1].status).to eq('pause')
136
+ expect(actual).to be_a(Array)
137
+ actual.each do |scheduled_send|
138
+ expect(scheduled_send).to be_a(CancelScheduledSends::ScheduledSend)
139
+ expect(actual[0].batch_id).to eq('BATCH_ID_1')
140
+ expect(actual[0].status).to eq('cancel')
141
+ expect(actual[1].batch_id).to eq('BATCH_ID_2')
142
+ expect(actual[1].status).to eq('pause')
143
+ end
197
144
  end
198
- end
199
145
 
200
- it 'creates scheduled_send instance' do
201
- actual = SendGrid4r::REST::CancelScheduledSends.create_scheduled_send(
202
- scheduled_send
203
- )
204
- expect(actual).to be_a(
205
- SendGrid4r::REST::CancelScheduledSends::ScheduledSend
206
- )
207
- expect(actual.batch_id).to eq('YOUR_BATCH_ID')
146
+ it 'creates scheduled_send instance' do
147
+ actual = CancelScheduledSends.create_scheduled_send(
148
+ scheduled_send
149
+ )
150
+ expect(actual).to be_a(CancelScheduledSends::ScheduledSend)
151
+ expect(actual.batch_id).to eq('YOUR_BATCH_ID')
152
+ end
208
153
  end
209
154
  end
210
155
  end
@@ -0,0 +1,77 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/../spec_helper'
3
+
4
+ module SendGrid4r::REST
5
+ describe Categories 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
+ end
11
+
12
+ context 'without block call' do
13
+ it '#get_categories if no params' do
14
+ categories = @client.get_categories
15
+ expect(categories.length).to be >= 0
16
+ categories.each do |category|
17
+ expect(category.category).to be_a(String)
18
+ end
19
+ end
20
+
21
+ it '#get_categories if name was specified' do
22
+ categories = @client.get_categories(category: 'Newsletter')
23
+ expect(categories.length).to eq(1)
24
+ categories.each do |category|
25
+ expect(category.category).to eq('Newsletter')
26
+ end
27
+ end
28
+
29
+ it '#get_categories if offset & limit were specified' do
30
+ categories = @client.get_categories(
31
+ category: nil, limit: 5, offset: 2
32
+ )
33
+ expect(categories.length).to be > 0
34
+ categories.each do |category|
35
+ expect(category.category).to be_a(String)
36
+ end
37
+ end
38
+ end
39
+ end
40
+
41
+ describe 'unit test', :ut do
42
+ let(:client) do
43
+ SendGrid4r::Client.new(api_key: '')
44
+ end
45
+
46
+ let(:categories) do
47
+ JSON.parse(
48
+ '['\
49
+ '{"category": "cat1"},'\
50
+ '{"category": "cat2"},'\
51
+ '{"category": "cat3"},'\
52
+ '{"category": "cat4"},'\
53
+ '{"category": "cat5"}'\
54
+ ']'
55
+ )
56
+ end
57
+
58
+ it '#get_categories' do
59
+ allow(client).to receive(:execute).and_return(categories)
60
+ actual = client.get_categories
61
+ expect(actual).to be_a(Array)
62
+ actual.each do |category|
63
+ expect(category).to be_a(Categories::Category)
64
+ end
65
+ end
66
+
67
+ it 'creates categories instance' do
68
+ actual = Categories.create_categories(categories)
69
+ expect(actual).to be_a(Array)
70
+ actual.each do |category|
71
+ expect(category).to be_a(Categories::Category)
72
+ expect(category.category).to be_a(String)
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,151 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/../spec_helper'
3
+
4
+ module SendGrid4r::REST
5
+ describe EmailActivity do
6
+ describe 'integration test', :it do
7
+ before do
8
+ Dotenv.load
9
+ @client = SendGrid4r::Client.new(api_key: ENV['API_KEY'])
10
+ end
11
+
12
+ context 'without block call' do
13
+ it '#get_email_activities' do
14
+ activities = @client.get_email_activities
15
+ activities.each do |activity|
16
+ expect(activity).to be_a(EmailActivity::Activity)
17
+ end
18
+ end
19
+
20
+ it '#get_email_activities with email' do
21
+ activities = @client.get_email_activities(email: 'test@test.com')
22
+ activities.each do |activity|
23
+ expect(activity).to be_a(EmailActivity::Activity)
24
+ end
25
+ end
26
+
27
+ it '#get_email_activities with events' do
28
+ activities = @client.get_email_activities(
29
+ events: [SendGrid4r::Client::Event::DROPS]
30
+ )
31
+ expect(activities.length).to be >= 0
32
+ activities.each do |activity|
33
+ expect(activity).to be_a(EmailActivity::Activity)
34
+ expect(activity.event).to eq('drop')
35
+ end
36
+ end
37
+
38
+ it '#get_email_activities with multiple events' do
39
+ events = []
40
+ events.push(SendGrid4r::Client::Event::DROPS)
41
+ events.push(SendGrid4r::Client::Event::DELIVERED)
42
+ events.push(SendGrid4r::Client::Event::BOUNCES)
43
+ events.push(SendGrid4r::Client::Event::CLICKS)
44
+ events.push(SendGrid4r::Client::Event::DEFERRED)
45
+ events.push(SendGrid4r::Client::Event::DELIVERED)
46
+ events.push(SendGrid4r::Client::Event::DROPS)
47
+ events.push(SendGrid4r::Client::Event::GROUP_UNSUBSCRIBE)
48
+ events.push(SendGrid4r::Client::Event::GROUP_RESUBSCRIBE)
49
+ events.push(SendGrid4r::Client::Event::OPENS)
50
+ events.push(SendGrid4r::Client::Event::PROCESSED)
51
+ events.push(SendGrid4r::Client::Event::PARSEAPI)
52
+ events.push(SendGrid4r::Client::Event::SPAM_REPORTS)
53
+ events.push(SendGrid4r::Client::Event::UNSUBSCRIBE)
54
+ activities = @client.get_email_activities(events: events)
55
+ expect(activities.length).to be >= 0
56
+ activities.each do |activity|
57
+ expect(activity).to be_a(EmailActivity::Activity)
58
+ end
59
+ end
60
+
61
+ it '#get_email_activities with start_time and end_time' do
62
+ pending('unknown field')
63
+ start_time = Time.local(2015, 5, 20, 12, 23, 45)
64
+ end_time = Time.local(2015, 5, 23, 12, 23, 45)
65
+ activities = @client.get_email_activities(
66
+ start_time: start_time, end_time: end_time
67
+ )
68
+ expect(activities.length).to be >= 0
69
+ activities.each do |activity|
70
+ expect(activity).to be_a(EmailActivity::Activity)
71
+ puts activity.inspect
72
+ end
73
+ end
74
+ end
75
+ end
76
+
77
+ describe 'unit test', :ut do
78
+ let(:client) do
79
+ SendGrid4r::Client.new(api_key: '')
80
+ end
81
+
82
+ let(:activities) do
83
+ JSON.parse(
84
+ '['\
85
+ '{'\
86
+ '"email": "test@example.com",'\
87
+ '"event": "processed",'\
88
+ '"created": 1431624000,'\
89
+ '"category": ["my_category"],'\
90
+ '"smtp_id": "filter001-2348927389",'\
91
+ '"asm_group_id": null,'\
92
+ '"msg_id": "xxx-abc-123",'\
93
+ '"ip": null,'\
94
+ '"url": null'\
95
+ '}'\
96
+ ']'
97
+ )
98
+ end
99
+
100
+ let(:activity) do
101
+ JSON.parse(
102
+ '{'\
103
+ '"email": "test@example.com",'\
104
+ '"event": "processed",'\
105
+ '"created": 1431624000,'\
106
+ '"category": ["my_category"],'\
107
+ '"smtp_id": "filter001-2348927389",'\
108
+ '"asm_group_id": null,'\
109
+ '"msg_id": "xxx-abc-123",'\
110
+ '"ip": null,'\
111
+ '"url": null'\
112
+ '}'\
113
+ )
114
+ end
115
+
116
+ it '#get_email_activities' do
117
+ allow(client).to receive(:execute).and_return(activities)
118
+ actual = client.get_email_activities
119
+ expect(actual).to be_a(Array)
120
+ actual.each do |activity|
121
+ expect(activity).to be_a(EmailActivity::Activity)
122
+ end
123
+ end
124
+
125
+ it 'creates activity instance' do
126
+ actual = EmailActivity.create_activity(activity)
127
+ expect(actual).to be_a(EmailActivity::Activity)
128
+ expect(actual.email).to eq('test@example.com')
129
+ expect(actual.event).to eq('processed')
130
+ expect(actual.created).to eq(Time.at(1431624000))
131
+ expect(actual.category).to be_a(Array)
132
+ actual.category.each do |category|
133
+ expect(category).to eq('my_category')
134
+ end
135
+ expect(actual.smtp_id).to eq('filter001-2348927389')
136
+ expect(actual.asm_group_id).to eq(nil)
137
+ expect(actual.msg_id).to eq('xxx-abc-123')
138
+ expect(actual.ip).to eq(nil)
139
+ expect(actual.url).to eq(nil)
140
+ end
141
+
142
+ it 'creates activities instance' do
143
+ actual = EmailActivity.create_activities(activities)
144
+ expect(actual).to be_a(Array)
145
+ actual.each do |activity|
146
+ expect(activity).to be_a(EmailActivity::Activity)
147
+ end
148
+ end
149
+ end
150
+ end
151
+ end