sendgrid4r 0.0.5 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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