sendgrid4r 1.8.1 → 1.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (145) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +6 -2
  3. data/README.md +1 -0
  4. data/lib/sendgrid4r/factory/campaign_factory.rb +18 -5
  5. data/lib/sendgrid4r/factory/condition_factory.rb +1 -1
  6. data/lib/sendgrid4r/factory/mail_factory.rb +57 -0
  7. data/lib/sendgrid4r/factory/segment_factory.rb +2 -5
  8. data/lib/sendgrid4r/factory/version_factory.rb +1 -1
  9. data/lib/sendgrid4r/rest/api.rb +48 -49
  10. data/lib/sendgrid4r/rest/api_keys_management/api_keys.rb +75 -0
  11. data/lib/sendgrid4r/rest/api_keys_management/permissions.rb +31 -0
  12. data/lib/sendgrid4r/rest/blocks.rb +49 -68
  13. data/lib/sendgrid4r/rest/bounces.rb +45 -64
  14. data/lib/sendgrid4r/rest/cancel_scheduled_sends.rb +53 -72
  15. data/lib/sendgrid4r/rest/categories.rb +31 -0
  16. data/lib/sendgrid4r/rest/email_activity.rb +72 -0
  17. data/lib/sendgrid4r/rest/invalid_emails.rb +50 -68
  18. data/lib/sendgrid4r/rest/ip_access_management.rb +86 -111
  19. data/lib/sendgrid4r/rest/ips/addresses.rb +50 -59
  20. data/lib/sendgrid4r/rest/ips/pools.rb +42 -53
  21. data/lib/sendgrid4r/rest/ips/warmup.rb +46 -55
  22. data/lib/sendgrid4r/rest/mail/address.rb +14 -0
  23. data/lib/sendgrid4r/rest/mail/attachment.rb +22 -0
  24. data/lib/sendgrid4r/rest/mail/content.rb +10 -0
  25. data/lib/sendgrid4r/rest/mail/mail.rb +28 -0
  26. data/lib/sendgrid4r/rest/mail/mail_settings.rb +62 -0
  27. data/lib/sendgrid4r/rest/mail/params.rb +64 -0
  28. data/lib/sendgrid4r/rest/mail/personalization.rb +33 -0
  29. data/lib/sendgrid4r/rest/mail/tracking_settings.rb +74 -0
  30. data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/custom_fields.rb +12 -27
  31. data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/lists.rb +20 -34
  32. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/recipients.rb +134 -0
  33. data/lib/sendgrid4r/rest/{contacts → marketing_campaigns/contacts}/reserved_fields.rb +6 -9
  34. data/lib/sendgrid4r/rest/marketing_campaigns/contacts/segments.rb +86 -0
  35. data/lib/sendgrid4r/rest/marketing_campaigns/marketing_campaigns.rb +119 -0
  36. data/lib/sendgrid4r/rest/marketing_campaigns/senders.rb +101 -0
  37. data/lib/sendgrid4r/rest/request.rb +61 -63
  38. data/lib/sendgrid4r/rest/settings/enforced_tls.rb +23 -26
  39. data/lib/sendgrid4r/rest/settings/mail.rb +167 -183
  40. data/lib/sendgrid4r/rest/settings/partner.rb +33 -36
  41. data/lib/sendgrid4r/rest/settings/settings.rb +17 -22
  42. data/lib/sendgrid4r/rest/settings/tracking.rb +97 -107
  43. data/lib/sendgrid4r/rest/sm/global_unsubscribes.rb +52 -60
  44. data/lib/sendgrid4r/rest/sm/groups.rb +52 -58
  45. data/lib/sendgrid4r/rest/sm/sm.rb +15 -17
  46. data/lib/sendgrid4r/rest/sm/suppressions.rb +50 -67
  47. data/lib/sendgrid4r/rest/spam_reports.rb +49 -69
  48. data/lib/sendgrid4r/rest/stats/advanced.rb +100 -102
  49. data/lib/sendgrid4r/rest/stats/category.rb +31 -33
  50. data/lib/sendgrid4r/rest/stats/global.rb +17 -19
  51. data/lib/sendgrid4r/rest/stats/parse.rb +18 -20
  52. data/lib/sendgrid4r/rest/stats/stats.rb +59 -69
  53. data/lib/sendgrid4r/rest/stats/subuser.rb +70 -32
  54. data/lib/sendgrid4r/rest/subusers.rb +106 -134
  55. data/lib/sendgrid4r/rest/transactional_templates/templates.rb +63 -0
  56. data/lib/sendgrid4r/rest/transactional_templates/versions.rb +90 -0
  57. data/lib/sendgrid4r/rest/users.rb +125 -57
  58. data/lib/sendgrid4r/rest/webhooks/event.rb +36 -42
  59. data/lib/sendgrid4r/rest/webhooks/parse.rb +28 -37
  60. data/lib/sendgrid4r/rest/whitelabel/domains.rb +176 -222
  61. data/lib/sendgrid4r/rest/whitelabel/ips.rb +107 -128
  62. data/lib/sendgrid4r/rest/whitelabel/links.rb +131 -167
  63. data/lib/sendgrid4r/version.rb +1 -1
  64. data/lib/sendgrid4r.rb +23 -13
  65. data/sendgrid4r.gemspec +1 -1
  66. data/spec/client_spec.rb +12 -1
  67. data/spec/factory/campaign_factory_spec.rb +75 -35
  68. data/spec/factory/condition_factory_spec.rb +19 -18
  69. data/spec/factory/segment_factory_spec.rb +28 -21
  70. data/spec/factory/version_factory_spec.rb +28 -27
  71. data/spec/photo.jpg +0 -0
  72. data/spec/rest/api_keys_management/api_keys_spec.rb +174 -0
  73. data/spec/rest/api_keys_management/permissions_spec.rb +54 -0
  74. data/spec/rest/blocks_spec.rb +78 -106
  75. data/spec/rest/bounces_spec.rb +91 -118
  76. data/spec/rest/cancel_scheduled_sends_spec.rb +94 -149
  77. data/spec/rest/categories_spec.rb +77 -0
  78. data/spec/rest/email_activity_spec.rb +151 -0
  79. data/spec/rest/invalid_emails_spec.rb +85 -119
  80. data/spec/rest/ip_access_management_spec.rb +157 -195
  81. data/spec/rest/ips/addresses_spec.rb +94 -122
  82. data/spec/rest/ips/pools_spec.rb +84 -112
  83. data/spec/rest/ips/warmup_spec.rb +63 -71
  84. data/spec/rest/mail/address_spec.rb +28 -0
  85. data/spec/rest/mail/attachment_spec.rb +48 -0
  86. data/spec/rest/mail/content_spec.rb +32 -0
  87. data/spec/rest/mail/mail_settings_spec.rb +51 -0
  88. data/spec/rest/mail/mail_spec.rb +136 -0
  89. data/spec/rest/mail/params_spec.rb +152 -0
  90. data/spec/rest/mail/personalization_spec.rb +66 -0
  91. data/spec/rest/mail/tracking_settings_spec.rb +63 -0
  92. data/spec/rest/marketing_campaigns/contacts/custom_fields_spec.rb +146 -0
  93. data/spec/rest/marketing_campaigns/contacts/lists_spec.rb +307 -0
  94. data/spec/rest/marketing_campaigns/contacts/recipients_spec.rb +331 -0
  95. data/spec/rest/marketing_campaigns/contacts/reserved_fields_spec.rb +119 -0
  96. data/spec/rest/marketing_campaigns/contacts/segments_spec.rb +268 -0
  97. data/spec/rest/marketing_campaigns/marketing_campaigns_spec.rb +427 -0
  98. data/spec/rest/marketing_campaigns/senders_spec.rb +230 -0
  99. data/spec/rest/settings/enforced_tls_spec.rb +38 -54
  100. data/spec/rest/settings/mail_spec.rb +227 -330
  101. data/spec/rest/settings/partner_spec.rb +40 -59
  102. data/spec/rest/settings/settings_spec.rb +44 -42
  103. data/spec/rest/settings/tracking_spec.rb +130 -189
  104. data/spec/rest/sm/global_unsubscribes_spec.rb +47 -72
  105. data/spec/rest/sm/groups_spec.rb +88 -123
  106. data/spec/rest/sm/sm_spec.rb +32 -30
  107. data/spec/rest/sm/suppressions_spec.rb +105 -140
  108. data/spec/rest/spam_reports_spec.rb +81 -109
  109. data/spec/rest/stats/advanced_spec.rb +67 -125
  110. data/spec/rest/stats/category_spec.rb +27 -45
  111. data/spec/rest/stats/global_spec.rb +34 -42
  112. data/spec/rest/stats/parse_spec.rb +32 -30
  113. data/spec/rest/stats/stats_spec.rb +174 -172
  114. data/spec/rest/stats/subuser_spec.rb +97 -57
  115. data/spec/rest/subusers_spec.rb +156 -209
  116. data/spec/rest/transactional_templates/templates_spec.rb +199 -0
  117. data/spec/rest/transactional_templates/versions_spec.rb +228 -0
  118. data/spec/rest/users_spec.rb +176 -91
  119. data/spec/rest/webhooks/event_spec.rb +59 -85
  120. data/spec/rest/webhooks/parse_spec.rb +51 -71
  121. data/spec/rest/whitelabel/domains_spec.rb +333 -513
  122. data/spec/rest/whitelabel/ips_spec.rb +109 -147
  123. data/spec/rest/whitelabel/links_spec.rb +181 -265
  124. metadata +70 -40
  125. data/lib/sendgrid4r/rest/api_keys/api_keys.rb +0 -80
  126. data/lib/sendgrid4r/rest/api_keys/permissions.rb +0 -33
  127. data/lib/sendgrid4r/rest/campaigns/campaigns.rb +0 -126
  128. data/lib/sendgrid4r/rest/categories/categories.rb +0 -43
  129. data/lib/sendgrid4r/rest/contacts/recipients.rb +0 -150
  130. data/lib/sendgrid4r/rest/contacts/segments.rb +0 -97
  131. data/lib/sendgrid4r/rest/email_activity/email_activity.rb +0 -81
  132. data/lib/sendgrid4r/rest/templates/templates.rb +0 -69
  133. data/lib/sendgrid4r/rest/templates/versions.rb +0 -95
  134. data/spec/rest/api_keys/api_keys_spec.rb +0 -210
  135. data/spec/rest/api_keys/permissions_spec.rb +0 -65
  136. data/spec/rest/campaigns/campaigns_spec.rb +0 -492
  137. data/spec/rest/categories/categories_spec.rb +0 -96
  138. data/spec/rest/contacts/custom_fields_spec.rb +0 -174
  139. data/spec/rest/contacts/lists_spec.rb +0 -372
  140. data/spec/rest/contacts/recipients_spec.rb +0 -343
  141. data/spec/rest/contacts/reserved_fields_spec.rb +0 -146
  142. data/spec/rest/contacts/segments_spec.rb +0 -307
  143. data/spec/rest/email_activity/email_activity_spec.rb +0 -179
  144. data/spec/rest/templates/templates_spec.rb +0 -222
  145. data/spec/rest/templates/versions_spec.rb +0 -252
@@ -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