sendgrid4r 0.0.5 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +21 -0
- data/.travis.yml +2 -3
- data/README.md +3 -373
- data/Rakefile +1 -1
- data/lib/auth.rb +7 -9
- data/lib/client.rb +8 -9
- data/lib/sendgrid4r/factory/version_factory.rb +20 -10
- data/lib/sendgrid4r/rest/api.rb +28 -9
- data/lib/sendgrid4r/rest/asm/global_suppressions.rb +46 -0
- data/lib/sendgrid4r/rest/asm/groups.rb +69 -0
- data/lib/sendgrid4r/rest/asm/suppressions.rb +68 -0
- data/lib/sendgrid4r/rest/categories/categories.rb +38 -0
- data/lib/sendgrid4r/rest/ips/addresses.rb +74 -0
- data/lib/sendgrid4r/rest/ips/pools.rb +63 -0
- data/lib/sendgrid4r/rest/ips/warmup.rb +55 -0
- data/lib/sendgrid4r/rest/request.rb +34 -19
- data/lib/sendgrid4r/rest/settings/enforced_tls.rb +39 -0
- data/lib/sendgrid4r/rest/stats/advanced.rb +91 -0
- data/lib/sendgrid4r/rest/stats/category.rb +47 -0
- data/lib/sendgrid4r/rest/stats/global.rb +26 -0
- data/lib/sendgrid4r/rest/stats/parse.rb +26 -0
- data/lib/sendgrid4r/rest/stats/stats.rb +89 -0
- data/lib/sendgrid4r/rest/stats/subuser.rb +47 -0
- data/lib/sendgrid4r/rest/templates/templates.rb +61 -0
- data/lib/sendgrid4r/rest/templates/versions.rb +92 -0
- data/lib/sendgrid4r/version.rb +4 -1
- data/lib/sendgrid4r.rb +5 -2
- data/sendgrid4r.gemspec +13 -12
- data/spec/{global_suppressions_spec.rb → asm/global_suppressions_spec.rb} +25 -17
- data/spec/asm/groups_spec.rb +58 -0
- data/spec/{suppressions_spec.rb → asm/suppressions_spec.rb} +24 -22
- data/spec/categories/categories_spec.rb +39 -0
- data/spec/client_spec.rb +65 -50
- data/spec/ips/addresses_spec.rb +116 -0
- data/spec/ips/pools_spec.rb +43 -0
- data/spec/ips/warmup_spec.rb +52 -0
- data/spec/{enforced_tls_spec.rb → settings/enforced_tls_spec.rb} +12 -11
- data/spec/stats/advanced_spec.rb +243 -0
- data/spec/stats/category_spec.rb +112 -0
- data/spec/stats/global_spec.rb +64 -0
- data/spec/stats/parse_spec.rb +49 -0
- data/spec/stats/subuser_spec.rb +105 -0
- data/spec/templates/templates_spec.rb +66 -0
- data/spec/templates/versions_spec.rb +89 -0
- data/spec/version_factory_spec.rb +20 -15
- metadata +94 -42
- data/lib/sendgrid4r/rest/addresses.rb +0 -62
- data/lib/sendgrid4r/rest/enforced_tls.rb +0 -46
- data/lib/sendgrid4r/rest/global_suppressions.rb +0 -35
- data/lib/sendgrid4r/rest/groups.rb +0 -68
- data/lib/sendgrid4r/rest/pools.rb +0 -53
- data/lib/sendgrid4r/rest/suppressions.rb +0 -57
- data/lib/sendgrid4r/rest/templates.rb +0 -64
- data/lib/sendgrid4r/rest/versions.rb +0 -65
- data/lib/sendgrid4r/rest/warmup.rb +0 -53
- data/spec/addresses_spec.rb +0 -80
- data/spec/groups_spec.rb +0 -54
- data/spec/pools_spec.rb +0 -62
- data/spec/templates_spec.rb +0 -38
- data/spec/versions_spec.rb +0 -75
- data/spec/warmup_spec.rb +0 -52
@@ -0,0 +1,112 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
3
|
+
|
4
|
+
describe 'SendGrid4r::REST::Stats::Cateogry' do
|
5
|
+
before :all do
|
6
|
+
Dotenv.load
|
7
|
+
@client = SendGrid4r::Client.new(
|
8
|
+
ENV['SENDGRID_USERNAME'], ENV['SENDGRID_PASSWORD'])
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'always' do
|
12
|
+
describe '#get_categories_stats' do
|
13
|
+
it 'returns categories stats if specify mandatory params' do
|
14
|
+
actual = @client.get_categories_stats(
|
15
|
+
start_date: '2015-01-01',
|
16
|
+
categories: 'yui'
|
17
|
+
)
|
18
|
+
expect(actual.class).to be(Array)
|
19
|
+
expect(actual.length > 0).to be(true)
|
20
|
+
actual.each do |global_stat|
|
21
|
+
expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
|
22
|
+
stats = global_stat.stats
|
23
|
+
expect(stats.length).to eq(1)
|
24
|
+
stats.each do |stat|
|
25
|
+
expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
|
26
|
+
expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
|
27
|
+
expect(stat.metrics.blocks.nil?).to be(false)
|
28
|
+
expect(stat.metrics.bounce_drops.nil?).to be(false)
|
29
|
+
expect(stat.metrics.bounces.nil?).to be(false)
|
30
|
+
expect(stat.metrics.clicks.nil?).to be(false)
|
31
|
+
expect(stat.metrics.deferred.nil?).to be(false)
|
32
|
+
expect(stat.metrics.delivered.nil?).to be(false)
|
33
|
+
expect(stat.metrics.invalid_emails.nil?).to be(false)
|
34
|
+
expect(stat.metrics.opens.nil?).to be(false)
|
35
|
+
expect(stat.metrics.processed.nil?).to be(false)
|
36
|
+
expect(stat.metrics.requests.nil?).to be(false)
|
37
|
+
expect(stat.metrics.spam_report_drops.nil?).to be(false)
|
38
|
+
expect(stat.metrics.spam_reports.nil?).to be(false)
|
39
|
+
expect(stat.metrics.unique_clicks.nil?).to be(false)
|
40
|
+
expect(stat.metrics.unique_opens.nil?).to be(false)
|
41
|
+
expect(stat.metrics.unsubscribe_drops.nil?).to be(false)
|
42
|
+
expect(stat.metrics.unsubscribes.nil?).to be(false)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
it 'returns categories stats if specify all params' do
|
47
|
+
actual = @client.get_categories_stats(
|
48
|
+
start_date: '2015-01-01',
|
49
|
+
end_date: '2015-01-02',
|
50
|
+
aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK,
|
51
|
+
categories: 'yui'
|
52
|
+
)
|
53
|
+
expect(actual.class).to be(Array)
|
54
|
+
expect(actual.length > 0).to be(true)
|
55
|
+
actual.each do |global_stat|
|
56
|
+
expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
|
57
|
+
stats = global_stat.stats
|
58
|
+
expect(stats.length).to eq(1)
|
59
|
+
stats.each do |stat|
|
60
|
+
expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
|
61
|
+
expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
describe '#get_categories_stats_sums' do
|
67
|
+
it 'returns categories stats sums if specify mandatory params' do
|
68
|
+
actual = @client.get_categories_stats_sums(start_date: '2015-01-01')
|
69
|
+
expect(actual.class).to be(SendGrid4r::REST::Stats::TopStat)
|
70
|
+
stats = actual.stats
|
71
|
+
expect(stats.length).to eq(3)
|
72
|
+
stats.each do |stat|
|
73
|
+
expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
|
74
|
+
expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
|
75
|
+
expect(stat.metrics.blocks.nil?).to be(false)
|
76
|
+
expect(stat.metrics.bounce_drops.nil?).to be(false)
|
77
|
+
expect(stat.metrics.bounces.nil?).to be(false)
|
78
|
+
expect(stat.metrics.clicks.nil?).to be(false)
|
79
|
+
expect(stat.metrics.deferred.nil?).to be(false)
|
80
|
+
expect(stat.metrics.delivered.nil?).to be(false)
|
81
|
+
expect(stat.metrics.invalid_emails.nil?).to be(false)
|
82
|
+
expect(stat.metrics.opens.nil?).to be(false)
|
83
|
+
expect(stat.metrics.processed.nil?).to be(false)
|
84
|
+
expect(stat.metrics.requests.nil?).to be(false)
|
85
|
+
expect(stat.metrics.spam_report_drops.nil?).to be(false)
|
86
|
+
expect(stat.metrics.spam_reports.nil?).to be(false)
|
87
|
+
expect(stat.metrics.unique_clicks.nil?).to be(false)
|
88
|
+
expect(stat.metrics.unique_opens.nil?).to be(false)
|
89
|
+
expect(stat.metrics.unsubscribe_drops.nil?).to be(false)
|
90
|
+
expect(stat.metrics.unsubscribes.nil?).to be(false)
|
91
|
+
end
|
92
|
+
end
|
93
|
+
it 'returns categories stats sums if specify all params' do
|
94
|
+
actual = @client.get_categories_stats_sums(
|
95
|
+
start_date: '2015-01-01',
|
96
|
+
end_date: '2015-01-02',
|
97
|
+
sort_by_metric: 'opens',
|
98
|
+
sort_by_direction: 'desc',
|
99
|
+
limit: 5,
|
100
|
+
offset: 0
|
101
|
+
)
|
102
|
+
expect(actual.class).to be(SendGrid4r::REST::Stats::TopStat)
|
103
|
+
stats = actual.stats
|
104
|
+
expect(stats.length).to eq(0)
|
105
|
+
stats.each do |stat|
|
106
|
+
expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
|
107
|
+
expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
3
|
+
|
4
|
+
describe 'SendGrid4r::REST::Stats::Global' do
|
5
|
+
before :all do
|
6
|
+
Dotenv.load
|
7
|
+
@client = SendGrid4r::Client.new(
|
8
|
+
ENV['SENDGRID_USERNAME'], ENV['SENDGRID_PASSWORD'])
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'always' do
|
12
|
+
describe '#get_global_stats' do
|
13
|
+
it 'returns global stats if specify mandatory params' do
|
14
|
+
actual = @client.get_global_stats(start_date: '2015-01-01')
|
15
|
+
expect(actual.class).to be(Array)
|
16
|
+
expect(actual.length > 0).to be(true)
|
17
|
+
actual.each do |global_stat|
|
18
|
+
expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
|
19
|
+
stats = global_stat.stats
|
20
|
+
expect(stats.length).to eq(1)
|
21
|
+
stats.each do |stat|
|
22
|
+
expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
|
23
|
+
expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
|
24
|
+
expect(stat.metrics.blocks.nil?).to be(false)
|
25
|
+
expect(stat.metrics.bounce_drops.nil?).to be(false)
|
26
|
+
expect(stat.metrics.bounces.nil?).to be(false)
|
27
|
+
expect(stat.metrics.clicks.nil?).to be(false)
|
28
|
+
expect(stat.metrics.deferred.nil?).to be(false)
|
29
|
+
expect(stat.metrics.delivered.nil?).to be(false)
|
30
|
+
expect(stat.metrics.invalid_emails.nil?).to be(false)
|
31
|
+
expect(stat.metrics.opens.nil?).to be(false)
|
32
|
+
expect(stat.metrics.processed.nil?).to be(false)
|
33
|
+
expect(stat.metrics.requests.nil?).to be(false)
|
34
|
+
expect(stat.metrics.spam_report_drops.nil?).to be(false)
|
35
|
+
expect(stat.metrics.spam_reports.nil?).to be(false)
|
36
|
+
expect(stat.metrics.unique_clicks.nil?).to be(false)
|
37
|
+
expect(stat.metrics.unique_opens.nil?).to be(false)
|
38
|
+
expect(stat.metrics.unsubscribe_drops.nil?).to be(false)
|
39
|
+
expect(stat.metrics.unsubscribes.nil?).to be(false)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'returns global stats if specify all params' do
|
45
|
+
actual = @client.get_global_stats(
|
46
|
+
start_date: '2015-01-01',
|
47
|
+
end_date: '2015-01-01',
|
48
|
+
aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK
|
49
|
+
)
|
50
|
+
expect(actual.class).to be(Array)
|
51
|
+
expect(actual.length).to eq(2)
|
52
|
+
actual.each do |global_stat|
|
53
|
+
expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
|
54
|
+
stats = global_stat.stats
|
55
|
+
expect(stats.length).to eq(1)
|
56
|
+
stats.each do |stat|
|
57
|
+
expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
|
58
|
+
expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
3
|
+
|
4
|
+
describe 'SendGrid4r::REST::Stats::Parse' do
|
5
|
+
before :all do
|
6
|
+
Dotenv.load
|
7
|
+
@client = SendGrid4r::Client.new(
|
8
|
+
ENV['SENDGRID_USERNAME'], ENV['SENDGRID_PASSWORD'])
|
9
|
+
end
|
10
|
+
|
11
|
+
context 'always' do
|
12
|
+
describe '#get_parse_stats' do
|
13
|
+
it 'returns parse stats if specify mandatory params' do
|
14
|
+
actual = @client.get_parse_stats(start_date: '2015-01-01')
|
15
|
+
expect(actual.class).to be(Array)
|
16
|
+
expect(actual.length > 0).to be(true)
|
17
|
+
actual.each do |global_stat|
|
18
|
+
expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
|
19
|
+
stats = global_stat.stats
|
20
|
+
expect(stats.length).to eq(1)
|
21
|
+
stats.each do |stat|
|
22
|
+
expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
|
23
|
+
expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
|
24
|
+
expect(stat.metrics.received.nil?).to be(false)
|
25
|
+
expect(stat.metrics.blocks.nil?).to be(true)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
it 'returns parse stats if specify all params' do
|
30
|
+
actual = @client.get_parse_stats(
|
31
|
+
start_date: '2015-01-01',
|
32
|
+
end_date: '2015-01-02',
|
33
|
+
aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK
|
34
|
+
)
|
35
|
+
expect(actual.class).to be(Array)
|
36
|
+
expect(actual.length > 0).to be(true)
|
37
|
+
actual.each do |global_stat|
|
38
|
+
expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
|
39
|
+
stats = global_stat.stats
|
40
|
+
expect(stats.length).to eq(1)
|
41
|
+
stats.each do |stat|
|
42
|
+
expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
|
43
|
+
expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
3
|
+
|
4
|
+
describe 'SendGrid4r::REST::Stats::Subuser' do
|
5
|
+
before :all do
|
6
|
+
Dotenv.load
|
7
|
+
@client = SendGrid4r::Client.new(
|
8
|
+
ENV['SILVER_SENDGRID_USERNAME'], ENV['SILVER_SENDGRID_PASSWORD'])
|
9
|
+
@subuser = ENV['SILVER_SUBUSER']
|
10
|
+
end
|
11
|
+
|
12
|
+
context 'always' do
|
13
|
+
describe '#get_subusers_stats' do
|
14
|
+
it 'returns subusers stats if specify mandatory params' do
|
15
|
+
begin
|
16
|
+
actual = @client.get_subusers_stats(
|
17
|
+
start_date: '2015-01-01',
|
18
|
+
subusers: @subuser
|
19
|
+
)
|
20
|
+
expect(actual.class).to be(Array)
|
21
|
+
expect(actual.length > 0).to be(true)
|
22
|
+
actual.each do |global_stat|
|
23
|
+
expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
|
24
|
+
stats = global_stat.stats
|
25
|
+
expect(stats.length).to eq(1)
|
26
|
+
stats.each do |stat|
|
27
|
+
expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
|
28
|
+
expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
|
29
|
+
expect(stat.metrics.blocks.nil?).to be(false)
|
30
|
+
expect(stat.metrics.bounce_drops.nil?).to be(false)
|
31
|
+
expect(stat.metrics.bounces.nil?).to be(false)
|
32
|
+
expect(stat.metrics.clicks.nil?).to be(false)
|
33
|
+
expect(stat.metrics.deferred.nil?).to be(false)
|
34
|
+
expect(stat.metrics.delivered.nil?).to be(false)
|
35
|
+
expect(stat.metrics.invalid_emails.nil?).to be(false)
|
36
|
+
expect(stat.metrics.opens.nil?).to be(false)
|
37
|
+
expect(stat.metrics.processed.nil?).to be(false)
|
38
|
+
expect(stat.metrics.requests.nil?).to be(false)
|
39
|
+
expect(stat.metrics.spam_report_drops.nil?).to be(false)
|
40
|
+
expect(stat.metrics.spam_reports.nil?).to be(false)
|
41
|
+
expect(stat.metrics.unique_clicks.nil?).to be(false)
|
42
|
+
expect(stat.metrics.unique_opens.nil?).to be(false)
|
43
|
+
expect(stat.metrics.unsubscribe_drops.nil?).to be(false)
|
44
|
+
expect(stat.metrics.unsubscribes.nil?).to be(false)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
rescue => e
|
48
|
+
puts e.inspect
|
49
|
+
raise e
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
it 'returns subusers stats if specify all params' do
|
54
|
+
actual = @client.get_subusers_stats(
|
55
|
+
start_date: '2015-01-01',
|
56
|
+
end_date: '2015-01-02',
|
57
|
+
aggregated_by: SendGrid4r::REST::Stats::AggregatedBy::WEEK,
|
58
|
+
subusers: @subuser
|
59
|
+
)
|
60
|
+
expect(actual.class).to be(Array)
|
61
|
+
expect(actual.length > 0).to be(true)
|
62
|
+
actual.each do |global_stat|
|
63
|
+
expect(global_stat.class).to be(SendGrid4r::REST::Stats::TopStat)
|
64
|
+
stats = global_stat.stats
|
65
|
+
expect(stats.length).to eq(1)
|
66
|
+
stats.each do |stat|
|
67
|
+
expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
|
68
|
+
expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
describe '#get_subusers_stats_sums' do
|
75
|
+
it 'returns subusers stats sums if specify mandatory params' do
|
76
|
+
actual = @client.get_subusers_stats_sums(start_date: '2015-01-01')
|
77
|
+
expect(actual.class).to be(SendGrid4r::REST::Stats::TopStat)
|
78
|
+
stats = actual.stats
|
79
|
+
expect(stats.length).to eq(2)
|
80
|
+
stats.each do |stat|
|
81
|
+
expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
|
82
|
+
expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'returns subusers stats sums if specify all params' do
|
87
|
+
actual = @client.get_subusers_stats_sums(
|
88
|
+
start_date: '2015-01-01',
|
89
|
+
end_date: '2015-01-02',
|
90
|
+
sort_by_metric: 'opens',
|
91
|
+
sort_by_direction: 'desc',
|
92
|
+
limit: 5,
|
93
|
+
offset: 0
|
94
|
+
)
|
95
|
+
expect(actual.class).to be(SendGrid4r::REST::Stats::TopStat)
|
96
|
+
stats = actual.stats
|
97
|
+
expect(stats.length).to eq(0)
|
98
|
+
stats.each do |stat|
|
99
|
+
expect(stat.class).to be(SendGrid4r::REST::Stats::Stat)
|
100
|
+
expect(stat.metrics.class).to be(SendGrid4r::REST::Stats::Metric)
|
101
|
+
end
|
102
|
+
end
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
3
|
+
|
4
|
+
describe 'SendGrid4r::REST::Templates' do
|
5
|
+
before :all do
|
6
|
+
Dotenv.load
|
7
|
+
@client = SendGrid4r::Client.new(
|
8
|
+
ENV['SENDGRID_USERNAME'], ENV['SENDGRID_PASSWORD']
|
9
|
+
)
|
10
|
+
@template_name = 'template_test'
|
11
|
+
@template_edit = 'template_edit'
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'always' do
|
15
|
+
it 'is normal' do
|
16
|
+
# celan up test env
|
17
|
+
tmps = @client.get_templates
|
18
|
+
expect(tmps.length >= 0).to eq(true)
|
19
|
+
tmps.each do |tmp|
|
20
|
+
if tmp.name == @template_name || tmp.name == @template_edit
|
21
|
+
@client.delete_template(tmp.id)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
# post a template
|
25
|
+
new_template = @client.post_template(@template_name)
|
26
|
+
expect(@template_name).to eq(new_template.name)
|
27
|
+
expect([]).to eq(new_template.versions)
|
28
|
+
# get all templates
|
29
|
+
tmps = @client.get_templates
|
30
|
+
tmps.each do |tmp|
|
31
|
+
expect(false).to eq(tmp.id.nil?)
|
32
|
+
expect(false).to eq(tmp.name.nil?)
|
33
|
+
expect(true).to eq(tmp.versions.is_a?(Array))
|
34
|
+
tmp.versions.each do |ver|
|
35
|
+
expect(false).to eq(ver.id.nil?)
|
36
|
+
expect(false).to eq(ver.template_id.nil?)
|
37
|
+
expect(false).to eq(ver.active.nil?)
|
38
|
+
expect(false).to eq(ver.name.nil?)
|
39
|
+
expect(false).to eq(ver.updated_at.nil?)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
# pach the template
|
43
|
+
edit_template = @client.patch_template(new_template.id, @template_edit)
|
44
|
+
expect(false).to eq(edit_template.id.nil?)
|
45
|
+
expect(false).to eq(edit_template.name.nil?)
|
46
|
+
expect(true).to eq(edit_template.versions.is_a?(Array))
|
47
|
+
edit_template.versions.each do |ver|
|
48
|
+
expect(false).to eq(ver.id.nil?)
|
49
|
+
expect(false).to eq(ver.template_id.nil?)
|
50
|
+
expect(false).to eq(ver.active.nil?)
|
51
|
+
expect(false).to eq(ver.name.nil?)
|
52
|
+
expect(false).to eq(ver.updated_at.nil?)
|
53
|
+
end
|
54
|
+
# get the template
|
55
|
+
edit_template = @client.get_template(new_template.id)
|
56
|
+
expect(new_template.id).to eq(edit_template.id)
|
57
|
+
expect(@template_edit).to eq(edit_template.name)
|
58
|
+
expect(new_template.versions).to eq(edit_template.versions)
|
59
|
+
# delete the template
|
60
|
+
@client.delete_template(edit_template.id)
|
61
|
+
expect do
|
62
|
+
@client.get_template(edit_template.id)
|
63
|
+
end.to raise_error(RestClient::ResourceNotFound)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
3
|
+
|
4
|
+
describe 'SendGrid4r::REST::Templates::Versions' do
|
5
|
+
before :all do
|
6
|
+
Dotenv.load
|
7
|
+
@client = SendGrid4r::Client.new(
|
8
|
+
ENV['SENDGRID_USERNAME'], ENV['SENDGRID_PASSWORD']
|
9
|
+
)
|
10
|
+
@template_edit = 'version_test'
|
11
|
+
@version1_name = 'version1_test'
|
12
|
+
@version2_name = 'version2_test'
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'always' do
|
16
|
+
it 'is normal' do
|
17
|
+
begin
|
18
|
+
# celan up test env
|
19
|
+
tmps = @client.get_templates
|
20
|
+
tmps.each do |tmp|
|
21
|
+
next if tmp.name != @template_edit
|
22
|
+
tmp.versions.each do |ver|
|
23
|
+
@client.delete_version(tmp.id, ver.id)
|
24
|
+
end
|
25
|
+
@client.delete_template(tmp.id)
|
26
|
+
end
|
27
|
+
# post a template
|
28
|
+
new_template = @client.post_template(@template_edit)
|
29
|
+
expect(@template_edit).to eq(new_template.name)
|
30
|
+
# post a version
|
31
|
+
factory = SendGrid4r::VersionFactory.new
|
32
|
+
ver1 = factory.create(name: @version1_name)
|
33
|
+
ver1 = @client.post_version(new_template.id, ver1)
|
34
|
+
# get the version
|
35
|
+
actual = @client.get_version(new_template.id, ver1.id)
|
36
|
+
expect(ver1.template_id).to eq(actual.template_id)
|
37
|
+
expect(ver1.active).to eq(actual.active)
|
38
|
+
expect(ver1.name).to eq(actual.name)
|
39
|
+
expect(ver1.html_content).to eq(actual.html_content)
|
40
|
+
expect(ver1.plain_content).to eq(actual.plain_content)
|
41
|
+
expect(ver1.subject).to eq(actual.subject)
|
42
|
+
# edit the version
|
43
|
+
edit_ver1 = actual.dup
|
44
|
+
edit_ver1.name = 'edit_version'
|
45
|
+
edit_ver1.subject = 'edit<%subject%>edit'
|
46
|
+
edit_ver1.html_content = 'edit<%body%>edit'
|
47
|
+
edit_ver1.plain_content = 'edit<%body%>edit'
|
48
|
+
edit_ver1.active = 0
|
49
|
+
@client.patch_version(new_template.id, ver1.id, edit_ver1)
|
50
|
+
# get the version
|
51
|
+
actual = @client.get_version(new_template.id, ver1.id)
|
52
|
+
expect(new_template.id).to eq(actual.template_id)
|
53
|
+
expect(edit_ver1.active).to eq(actual.active)
|
54
|
+
expect(edit_ver1.name).to eq(actual.name)
|
55
|
+
expect(edit_ver1.html_content).to eq(actual.html_content)
|
56
|
+
expect(edit_ver1.plain_content).to eq(actual.plain_content)
|
57
|
+
expect(edit_ver1.subject).to eq(actual.subject)
|
58
|
+
# post a version 2
|
59
|
+
ver2 = factory.create(
|
60
|
+
name: @version2_name,
|
61
|
+
subject: '<%subject%>',
|
62
|
+
html_content: '<%body%>',
|
63
|
+
plain_content: '<%body%>'
|
64
|
+
)
|
65
|
+
ver2 = @client.post_version(new_template.id, ver2)
|
66
|
+
# activate version 2
|
67
|
+
@client.activate_version(new_template.id, ver2.id)
|
68
|
+
actual_ver1 = @client.get_version(new_template.id, ver1.id)
|
69
|
+
actual_ver2 = @client.get_version(new_template.id, ver2.id)
|
70
|
+
expect(0).to eq(actual_ver1.active)
|
71
|
+
expect(1).to eq(actual_ver2.active)
|
72
|
+
# delete the version
|
73
|
+
@client.delete_version(new_template.id, actual_ver1.id)
|
74
|
+
@client.delete_version(new_template.id, actual_ver2.id)
|
75
|
+
expect do
|
76
|
+
@client.get_version(new_template.id, actual_ver1.id)
|
77
|
+
end.to raise_error(RestClient::ResourceNotFound)
|
78
|
+
expect do
|
79
|
+
@client.get_version(new_template.id, actual_ver2.id)
|
80
|
+
end.to raise_error(RestClient::ResourceNotFound)
|
81
|
+
# delete the template
|
82
|
+
@client.delete_template(new_template.id)
|
83
|
+
rescue => e
|
84
|
+
puts e.inspect
|
85
|
+
raise e
|
86
|
+
end
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -1,29 +1,34 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require File.dirname(__FILE__) + '/spec_helper'
|
3
3
|
|
4
|
-
describe
|
5
|
-
|
4
|
+
describe 'SendGrid4r::VersionFactory' do
|
6
5
|
before :all do
|
7
6
|
Dotenv.load
|
8
7
|
@factory = SendGrid4r::VersionFactory.new
|
9
8
|
end
|
10
9
|
|
11
|
-
context
|
12
|
-
it
|
13
|
-
version = @factory.create(
|
14
|
-
expect(version.name).to eq(
|
15
|
-
expect(version.subject).to eq(
|
16
|
-
expect(version.html_content).to eq(
|
17
|
-
expect(version.plain_content).to eq(
|
10
|
+
context 'always' do
|
11
|
+
it 'is simple case' do
|
12
|
+
version = @factory.create(name: 'version_name')
|
13
|
+
expect(version.name).to eq('version_name')
|
14
|
+
expect(version.subject).to eq('<%subject%>')
|
15
|
+
expect(version.html_content).to eq('<%body%>')
|
16
|
+
expect(version.plain_content).to eq('<%body%>')
|
18
17
|
expect(version.active).to eq(1)
|
19
18
|
end
|
20
19
|
|
21
|
-
it
|
22
|
-
version = @factory.create(
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
20
|
+
it 'is full params case' do
|
21
|
+
version = @factory.create(
|
22
|
+
name: 'version_name',
|
23
|
+
subject: 'This is subject <%subject%>',
|
24
|
+
html_content: 'This is html content <%body%>',
|
25
|
+
plain_content: 'This is plain content <%body%>',
|
26
|
+
active: 0
|
27
|
+
)
|
28
|
+
expect(version.name).to eq('version_name')
|
29
|
+
expect(version.subject).to eq('This is subject <%subject%>')
|
30
|
+
expect(version.html_content).to eq('This is html content <%body%>')
|
31
|
+
expect(version.plain_content).to eq('This is plain content <%body%>')
|
27
32
|
expect(version.active).to eq(0)
|
28
33
|
end
|
29
34
|
end
|