sendgrid4r 0.0.5 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +21 -0
  3. data/.travis.yml +2 -3
  4. data/README.md +3 -373
  5. data/Rakefile +1 -1
  6. data/lib/auth.rb +7 -9
  7. data/lib/client.rb +8 -9
  8. data/lib/sendgrid4r/factory/version_factory.rb +20 -10
  9. data/lib/sendgrid4r/rest/api.rb +28 -9
  10. data/lib/sendgrid4r/rest/asm/global_suppressions.rb +46 -0
  11. data/lib/sendgrid4r/rest/asm/groups.rb +69 -0
  12. data/lib/sendgrid4r/rest/asm/suppressions.rb +68 -0
  13. data/lib/sendgrid4r/rest/categories/categories.rb +38 -0
  14. data/lib/sendgrid4r/rest/ips/addresses.rb +74 -0
  15. data/lib/sendgrid4r/rest/ips/pools.rb +63 -0
  16. data/lib/sendgrid4r/rest/ips/warmup.rb +55 -0
  17. data/lib/sendgrid4r/rest/request.rb +34 -19
  18. data/lib/sendgrid4r/rest/settings/enforced_tls.rb +39 -0
  19. data/lib/sendgrid4r/rest/stats/advanced.rb +91 -0
  20. data/lib/sendgrid4r/rest/stats/category.rb +47 -0
  21. data/lib/sendgrid4r/rest/stats/global.rb +26 -0
  22. data/lib/sendgrid4r/rest/stats/parse.rb +26 -0
  23. data/lib/sendgrid4r/rest/stats/stats.rb +89 -0
  24. data/lib/sendgrid4r/rest/stats/subuser.rb +47 -0
  25. data/lib/sendgrid4r/rest/templates/templates.rb +61 -0
  26. data/lib/sendgrid4r/rest/templates/versions.rb +92 -0
  27. data/lib/sendgrid4r/version.rb +4 -1
  28. data/lib/sendgrid4r.rb +5 -2
  29. data/sendgrid4r.gemspec +13 -12
  30. data/spec/{global_suppressions_spec.rb → asm/global_suppressions_spec.rb} +25 -17
  31. data/spec/asm/groups_spec.rb +58 -0
  32. data/spec/{suppressions_spec.rb → asm/suppressions_spec.rb} +24 -22
  33. data/spec/categories/categories_spec.rb +39 -0
  34. data/spec/client_spec.rb +65 -50
  35. data/spec/ips/addresses_spec.rb +116 -0
  36. data/spec/ips/pools_spec.rb +43 -0
  37. data/spec/ips/warmup_spec.rb +52 -0
  38. data/spec/{enforced_tls_spec.rb → settings/enforced_tls_spec.rb} +12 -11
  39. data/spec/stats/advanced_spec.rb +243 -0
  40. data/spec/stats/category_spec.rb +112 -0
  41. data/spec/stats/global_spec.rb +64 -0
  42. data/spec/stats/parse_spec.rb +49 -0
  43. data/spec/stats/subuser_spec.rb +105 -0
  44. data/spec/templates/templates_spec.rb +66 -0
  45. data/spec/templates/versions_spec.rb +89 -0
  46. data/spec/version_factory_spec.rb +20 -15
  47. metadata +94 -42
  48. data/lib/sendgrid4r/rest/addresses.rb +0 -62
  49. data/lib/sendgrid4r/rest/enforced_tls.rb +0 -46
  50. data/lib/sendgrid4r/rest/global_suppressions.rb +0 -35
  51. data/lib/sendgrid4r/rest/groups.rb +0 -68
  52. data/lib/sendgrid4r/rest/pools.rb +0 -53
  53. data/lib/sendgrid4r/rest/suppressions.rb +0 -57
  54. data/lib/sendgrid4r/rest/templates.rb +0 -64
  55. data/lib/sendgrid4r/rest/versions.rb +0 -65
  56. data/lib/sendgrid4r/rest/warmup.rb +0 -53
  57. data/spec/addresses_spec.rb +0 -80
  58. data/spec/groups_spec.rb +0 -54
  59. data/spec/pools_spec.rb +0 -62
  60. data/spec/templates_spec.rb +0 -38
  61. data/spec/versions_spec.rb +0 -75
  62. 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 "SendGrid4r::VersionFactory" do
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 "always" do
12
- it "is simple case" do
13
- version = @factory.create("version_name")
14
- expect(version.name).to eq("version_name")
15
- expect(version.subject).to eq("<%subject%>")
16
- expect(version.html_content).to eq("<%body%>")
17
- expect(version.plain_content).to eq("<%body%>")
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 "is full params case" do
22
- version = @factory.create("version_name", "This is subject <%subject%>", "This is html content <%body%>", "This is plain content <%body%>", 0)
23
- expect(version.name).to eq("version_name")
24
- expect(version.subject).to eq("This is subject <%subject%>")
25
- expect(version.html_content).to eq("This is html content <%body%>")
26
- expect(version.plain_content).to eq("This is plain content <%body%>")
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