sendgrid4r 0.0.2

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.
@@ -0,0 +1,42 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.unshift File.dirname(__FILE__)
3
+
4
+ require "rest-client"
5
+ require "uri"
6
+ require "json"
7
+
8
+ module SendGrid4r
9
+ module REST
10
+ module Request
11
+
12
+ def get(auth, endpoint)
13
+ resource = RestClient::Resource.new(endpoint, auth.get_username, auth.get_password)
14
+ body = resource.get.body
15
+ JSON.parse(body)
16
+ end
17
+
18
+ def post(auth, endpoint, params = nil)
19
+ resource = RestClient::Resource.new(endpoint, auth.get_username, auth.get_password)
20
+ if params == nil
21
+ body = resource.post(:content_type => :json).body
22
+ else
23
+ body = resource.post(params.to_json, :content_type => :json).body
24
+ end
25
+ JSON.parse(body)
26
+ end
27
+
28
+ def patch(auth, endpoint, params)
29
+ resource = RestClient::Resource.new(endpoint, auth.get_username, auth.get_password)
30
+ body = resource.patch(params.to_json, :content_type => :json).body
31
+ JSON.parse(body)
32
+ end
33
+
34
+ def delete(auth, endpoint)
35
+ resource = RestClient::Resource.new(endpoint, auth.get_username, auth.get_password)
36
+ resource.delete
37
+ end
38
+
39
+ end
40
+
41
+ end
42
+ end
@@ -0,0 +1,58 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.unshift File.dirname(__FILE__)
3
+
4
+ require "sendgrid4r/rest/request"
5
+
6
+ module SendGrid4r
7
+ module REST
8
+ module Asm
9
+ module Suppressions
10
+
11
+ include SendGrid4r::REST::Request
12
+
13
+ def get_suppressions(email_address)
14
+ response = get(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/suppressions/#{email_address}")
15
+ suppressions = Array.new
16
+ response["suppressions"].each{|spr|
17
+ suppression = Suppression.create(spr)
18
+ suppressions.push(suppression)
19
+ } if response["suppressions"] != nil
20
+ suppressions
21
+ end
22
+
23
+ def get_suppressed_emails(group_id)
24
+ get(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups/#{group_id}/suppressions")
25
+ end
26
+
27
+ def post_suppressed_emails(group_id, recipient_emails)
28
+ params = Hash.new
29
+ params["recipient_emails"] = recipient_emails
30
+ response = post(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups/#{group_id}/suppressions", params.to_hash)
31
+ recipient_emails = response["recipient_emails"]
32
+ recipient_emails
33
+ end
34
+
35
+ def delete_suppressed_email(group_id, email_address)
36
+ delete(@auth, "#{SendGrid4r::Client::BASE_URL}/asm/groups/#{group_id}/suppressions/#{email_address}")
37
+ end
38
+
39
+ class Suppression
40
+
41
+ attr_accessor :id, :name, :description, :suppressed
42
+
43
+ def self.create(value)
44
+ obj = Suppression.new
45
+ obj.id = value["id"]
46
+ obj.name = value["name"]
47
+ obj.description = value["description"]
48
+ obj.suppressed = value["suppressed"]
49
+ obj
50
+ end
51
+
52
+ end
53
+
54
+ end
55
+ end
56
+
57
+ end
58
+ end
@@ -0,0 +1,64 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.unshift File.dirname(__FILE__)
3
+
4
+ require "sendgrid4r/rest/request"
5
+
6
+ require "versions"
7
+
8
+ module SendGrid4r
9
+ module REST
10
+ module Templates
11
+
12
+ include SendGrid4r::REST::Request
13
+
14
+ def get_templates
15
+ response = get(@auth, "#{SendGrid4r::Client::BASE_URL}/templates")
16
+ tmps = Array.new
17
+ response["templates"].each{|template|
18
+ tmp = Template.create(template)
19
+ tmps.push(tmp)
20
+ } if response["templates"] != nil
21
+ tmps
22
+ end
23
+
24
+ def get_template(template_id)
25
+ Template.create(get(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}"))
26
+ end
27
+
28
+ def post_template(name)
29
+ params = Hash.new
30
+ params["name"] = name
31
+ Template.create(post(@auth, "#{SendGrid4r::Client::BASE_URL}/templates", params))
32
+ end
33
+
34
+ def patch_template(template_id, name)
35
+ params = Hash.new
36
+ params["name"] = name
37
+ Template.create(patch(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}", params))
38
+ end
39
+
40
+ def delete_template(template_id)
41
+ delete(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}")
42
+ end
43
+
44
+ class Template
45
+
46
+ attr_accessor :id, :name, :versions
47
+
48
+ def self.create(value)
49
+ obj = Template.new
50
+ obj.id = value["id"]
51
+ obj.name = value["name"]
52
+ obj.versions = []
53
+ value["versions"].each{|version|
54
+ ver = Version.create(version)
55
+ obj.versions.push(ver)
56
+ }
57
+ obj
58
+ end
59
+
60
+ end
61
+ end
62
+
63
+ end
64
+ end
@@ -0,0 +1,66 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.unshift File.dirname(__FILE__)
3
+
4
+ require "sendgrid4r/rest/request"
5
+
6
+ module SendGrid4r
7
+ module REST
8
+ module Templates
9
+ module Versions
10
+
11
+ include SendGrid4r::REST::Request
12
+
13
+ def get_version(template_id, version_id)
14
+ Version.create(get(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}/versions/#{version_id}"))
15
+ end
16
+
17
+ def post_version(template_id, version)
18
+ Version.create(post(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}/versions", version.to_hash))
19
+ end
20
+
21
+ def activate_version(template_id, version_id)
22
+ Version.create(post(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}/versions/#{version_id}/activate"))
23
+ end
24
+
25
+ def patch_version(template_id, version_id, version)
26
+ Version.create(patch(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}/versions/#{version_id}", version.to_hash))
27
+ end
28
+
29
+ def delete_version(template_id, version_id)
30
+ delete(@auth, "#{SendGrid4r::Client::BASE_URL}/templates/#{template_id}/versions/#{version_id}")
31
+ end
32
+
33
+ end
34
+
35
+ class Version
36
+
37
+ attr_accessor :id, :template_id, :active, :name, :html_content, :plain_content, :subject, :updated_at
38
+
39
+ def self.create(value)
40
+ obj = Version.new
41
+ obj.id = value["id"]
42
+ obj.template_id = value["template_id"]
43
+ obj.active = value["active"]
44
+ obj.name = value["name"]
45
+ obj.html_content = value["html_content"]
46
+ obj.plain_content = value["plain_content"]
47
+ obj.subject = value["subject"]
48
+ obj.updated_at = value["updated_at"]
49
+ obj
50
+ end
51
+
52
+ def to_hash
53
+ hash = {
54
+ "active" => @active,
55
+ "name" => @name,
56
+ "html_content" => @html_content,
57
+ "plain_content" => @plain_content,
58
+ "subject" => @subject,
59
+ }
60
+ hash
61
+ end
62
+
63
+ end
64
+ end
65
+ end
66
+ end
@@ -0,0 +1,53 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.unshift File.dirname(__FILE__)
3
+
4
+ require "sendgrid4r/rest/request"
5
+
6
+ module SendGrid4r
7
+ module REST
8
+ module Ips
9
+ module Warmup
10
+
11
+ include SendGrid4r::REST::Request
12
+
13
+ def get_warmup_ips
14
+ response = get(@auth, "#{SendGrid4r::Client::BASE_URL}/ips/warmup")
15
+ ips = Array.new
16
+ response.each{|ip|
17
+ ip_address = WarmupIp.create(ip)
18
+ ips.push(ip_address)
19
+ } if response.length > 0
20
+ ips
21
+ end
22
+
23
+ def get_warmup_ip(ip_address)
24
+ WarmupIp.create(get(@auth, "#{SendGrid4r::Client::BASE_URL}/ips/warmup/#{ip_address}"))
25
+ end
26
+
27
+ def post_warmup_ip(ip_address)
28
+ params = Hash.new
29
+ params["ip"] = ip_address
30
+ WarmupIp.create(post(@auth, "#{SendGrid4r::Client::BASE_URL}/ips/warmup", params))
31
+ end
32
+
33
+ def delete_warmup_ip(ip_address)
34
+ delete(@auth, "#{SendGrid4r::Client::BASE_URL}/ips/warmup/#{ip_address}")
35
+ end
36
+
37
+ class WarmupIp
38
+
39
+ attr_accessor :ip, :start_date
40
+
41
+ def self.create(value)
42
+ obj = WarmupIp.new
43
+ obj.ip = value["ip"]
44
+ obj.start_date = value["start_date"]
45
+ obj
46
+ end
47
+
48
+ end
49
+ end
50
+ end
51
+
52
+ end
53
+ end
@@ -0,0 +1,3 @@
1
+ module SendGrid4r
2
+ VERSION = "0.0.2"
3
+ end
data/lib/sendgrid4r.rb ADDED
@@ -0,0 +1,2 @@
1
+ require "client"
2
+ require "sendgrid4r/version"
@@ -0,0 +1,25 @@
1
+ # coding: utf-8
2
+ src = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(src) unless $LOAD_PATH.include?(src)
4
+ require 'sendgrid4r/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "sendgrid4r"
8
+ spec.version = SendGrid4r::VERSION
9
+ spec.authors = ["awwa500@gmail.com"]
10
+ spec.email = ["awwa500@gmail.com"]
11
+ spec.summary = "SendGrid Web API v3 module"
12
+ spec.description = "SendGrid Web API v3 module"
13
+ spec.homepage = ""
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_dependency "rest-client"
22
+ spec.add_development_dependency "bundler", "~> 1.6"
23
+ spec.add_development_dependency "rspec"
24
+ spec.add_development_dependency "dotenv"
25
+ end
@@ -0,0 +1,68 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ describe "SendGrid4r::Client" do
5
+
6
+ before :all do
7
+ Dotenv.load
8
+ end
9
+
10
+ describe "initialize" do
11
+ it "create instance" do
12
+ SendGrid4r::Client.new("username", "password")
13
+ end
14
+ end
15
+
16
+ describe "available method" do
17
+ it "is exist method" do
18
+
19
+ client = SendGrid4r::Client.new(ENV["SENDGRID_USERNAME"], ENV["SENDGRID_PASSWORD"])
20
+ # enforced_tls
21
+ expect(client.respond_to?("get_enforced_tls")).to eq(true)
22
+ expect(client.respond_to?("patch_enforced_tls")).to eq(true)
23
+ # global suppressions
24
+ expect(client.respond_to?("post_global_suppressed_emails")).to eq(true)
25
+ expect(client.respond_to?("get_global_suppressed_email")).to eq(true)
26
+ expect(client.respond_to?("delete_global_suppressed_email")).to eq(true)
27
+ # groups
28
+ expect(client.respond_to?("get_groups")).to eq(true)
29
+ expect(client.respond_to?("get_group")).to eq(true)
30
+ expect(client.respond_to?("post_group")).to eq(true)
31
+ expect(client.respond_to?("patch_group")).to eq(true)
32
+ expect(client.respond_to?("delete_group")).to eq(true)
33
+ # ip addresses
34
+ expect(client.respond_to?("get_ips")).to eq(true)
35
+ # suppressions
36
+ expect(client.respond_to?("get_suppressions")).to eq(true)
37
+ expect(client.respond_to?("get_suppressed_emails")).to eq(true)
38
+ expect(client.respond_to?("post_suppressed_emails")).to eq(true)
39
+ expect(client.respond_to?("delete_suppressed_email")).to eq(true)
40
+ # templates
41
+ expect(client.respond_to?("get_templates")).to eq(true)
42
+ expect(client.respond_to?("get_template")).to eq(true)
43
+ expect(client.respond_to?("post_template")).to eq(true)
44
+ expect(client.respond_to?("patch_template")).to eq(true)
45
+ expect(client.respond_to?("delete_template")).to eq(true)
46
+ # versions
47
+ expect(client.respond_to?("get_version")).to eq(true)
48
+ expect(client.respond_to?("post_version")).to eq(true)
49
+ expect(client.respond_to?("activate_version")).to eq(true)
50
+ expect(client.respond_to?("patch_version")).to eq(true)
51
+ expect(client.respond_to?("delete_version")).to eq(true)
52
+ # warmup
53
+ expect(client.respond_to?("get_warmup_ips")).to eq(true)
54
+ expect(client.respond_to?("get_warmup_ip")).to eq(true)
55
+ expect(client.respond_to?("post_warmup_ip")).to eq(true)
56
+ expect(client.respond_to?("delete_warmup_ip")).to eq(true)
57
+ end
58
+ end
59
+
60
+ describe "Version" do
61
+
62
+ it "Validate version" do
63
+ expect(SendGrid4r::VERSION).to eq("0.0.2")
64
+ end
65
+
66
+ end
67
+
68
+ end
@@ -0,0 +1,38 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ describe "SendGrid4r::REST::Settings::EnforcedTls" do
5
+
6
+ before :all do
7
+ Dotenv.load
8
+ end
9
+
10
+ context "normal" do
11
+ it "is normal" do
12
+
13
+ begin
14
+ client = SendGrid4r::Client.new(ENV["SENDGRID_USERNAME"], ENV["SENDGRID_PASSWORD"])
15
+ # get original enforced_tls settings
16
+ original = client.get_enforced_tls
17
+ # patch a value
18
+ edit_params = original.dup
19
+ edit_params.require_tls = true
20
+ actual_params = client.patch_enforced_tls(edit_params)
21
+ expect(actual_params.require_tls).to eq(edit_params.require_tls)
22
+ # patch both value
23
+ edit_params.require_tls = false
24
+ edit_params.require_valid_cert = false
25
+ actual_params = client.patch_enforced_tls(edit_params)
26
+ expect(actual_params.require_tls).to eq(edit_params.require_tls)
27
+ expect(actual_params.require_valid_cert).to eq(edit_params.require_valid_cert)
28
+ # revert
29
+ client.patch_enforced_tls(original)
30
+ rescue => ex
31
+ puts ex.inspect
32
+ raise ex
33
+ end
34
+
35
+ end
36
+ end
37
+
38
+ end
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ describe "SendGrid4r::REST::Asm::GlobalSuppressions" do
5
+
6
+ before :all do
7
+ Dotenv.load
8
+ @email1 = "test1@test.com"
9
+ @email2 = "test2@test.com"
10
+ @email3 = "test3@test.com"
11
+ end
12
+
13
+ context "normal" do
14
+ it "is normal" do
15
+
16
+ begin
17
+ client = SendGrid4r::Client.new(ENV["SENDGRID_USERNAME"], ENV["SENDGRID_PASSWORD"])
18
+ # celan up test env
19
+ client.delete_global_suppressed_email(@email1)
20
+ client.delete_global_suppressed_email(@email2)
21
+ client.delete_global_suppressed_email(@email3)
22
+ # post recipient emails to the global suppression group
23
+ suppressed_emails = client.post_global_suppressed_emails([@email1, @email2, @email3])
24
+ expect(suppressed_emails.length).to eq(3)
25
+ expect(suppressed_emails[0]).to eq(@email1)
26
+ expect(suppressed_emails[1]).to eq(@email2)
27
+ expect(suppressed_emails[2]).to eq(@email3)
28
+ # get the recipient emails
29
+ actual_email1 = client.get_global_suppressed_email(@email1)
30
+ actual_email2 = client.get_global_suppressed_email(@email2)
31
+ actual_email3 = client.get_global_suppressed_email(@email3)
32
+ actual_notexist = client.get_global_suppressed_email("notexist")
33
+ expect(actual_email1).to eq(@email1)
34
+ expect(actual_email2).to eq(@email2)
35
+ expect(actual_email3).to eq(@email3)
36
+ expect(actual_notexist).to eq(nil)
37
+ # delete the suppressed email
38
+ expect(client.delete_global_suppressed_email(@email1)).to eq("")
39
+ expect(client.delete_global_suppressed_email(@email2)).to eq("")
40
+ expect(client.delete_global_suppressed_email(@email3)).to eq("")
41
+ rescue => ex
42
+ puts ex.inspect
43
+ raise ex
44
+ end
45
+
46
+ end
47
+ end
48
+
49
+ end
@@ -0,0 +1,63 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ describe "SendGrid4r::REST::Asm::Groups" do
5
+
6
+ before :all do
7
+ Dotenv.load
8
+ @group_name = "group_test"
9
+ @group_edit = "group_edit"
10
+ @group_desc = "group_desc"
11
+ @group_desc_edit = "group_desc_edit"
12
+ end
13
+
14
+ context "normal" do
15
+ it "is normal" do
16
+
17
+ begin
18
+ client = SendGrid4r::Client.new(ENV["SENDGRID_USERNAME"], ENV["SENDGRID_PASSWORD"])
19
+ # celan up test env
20
+ grps = client.get_groups
21
+ expect(grps.length >= 0).to eq(true)
22
+ grps.each{|grp|
23
+ if grp.name == @group_name || grp.name == @group_edit then
24
+ client.delete_group(grp.id)
25
+ end
26
+ }
27
+ # post a group
28
+ new_group = client.post_group(@group_name, @group_desc)
29
+ expect(@group_name).to eq(new_group.name)
30
+ expect(@group_desc).to eq(new_group.description)
31
+ # pach the group
32
+ new_group.name = @group_edit
33
+ new_group.description = @group_desc_edit
34
+ client.patch_group(new_group.id, new_group)
35
+ # get the group
36
+ edit_group = client.get_group(new_group.id)
37
+ expect(edit_group.respond_to?("id")).to eq(true)
38
+ expect(edit_group.respond_to?("name")).to eq(true)
39
+ expect(edit_group.respond_to?("description")).to eq(true)
40
+ expect(edit_group.respond_to?("last_email_sent_at")).to eq(true)
41
+ expect(edit_group.respond_to?("unsubscribes")).to eq(true)
42
+ expect(new_group.id).to eq(edit_group.id)
43
+ expect(@group_edit).to eq(edit_group.name)
44
+ expect(@group_desc_edit).to eq(edit_group.description)
45
+ # delete the group
46
+ client.delete_group(edit_group.id)
47
+ expect{client.get_group(edit_group.id)}.to raise_error(RestClient::ResourceNotFound)
48
+ rescue => ex
49
+ puts ex.inspect
50
+ raise ex
51
+ end
52
+
53
+ end
54
+ end
55
+
56
+ context "abnormal" do
57
+ it "raise resource not found for none existance id" do
58
+ client = SendGrid4r::Client.new(ENV["SENDGRID_USERNAME"], ENV["SENDGRID_PASSWORD"])
59
+ expect{client.get_group("notexistid")}.to raise_error(RestClient::ResourceNotFound)
60
+ end
61
+ end
62
+
63
+ end
@@ -0,0 +1,25 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ describe "SendGrid4r::REST::Ips::IpAddresses" do
5
+
6
+ before :all do
7
+ Dotenv.load
8
+ end
9
+
10
+ context "normal" do
11
+ it "is normal" do
12
+
13
+ begin
14
+ client = SendGrid4r::Client.new(ENV["SENDGRID_USERNAME"], ENV["SENDGRID_PASSWORD"])
15
+ # get the ips
16
+ expect{client.get_ips}.to raise_error(RestClient::Forbidden)
17
+ rescue => ex
18
+ puts ex.inspect
19
+ raise ex
20
+ end
21
+
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,5 @@
1
+ require File.join(File.dirname(__FILE__), '../lib', 'sendgrid4r.rb')
2
+
3
+ require 'rubygems'
4
+ require 'rspec'
5
+ require 'dotenv'
@@ -0,0 +1,75 @@
1
+ # encoding: utf-8
2
+ require File.dirname(__FILE__) + '/spec_helper'
3
+
4
+ describe "SendGrid4r::REST::Asm::Groups::Suppressions" do
5
+
6
+ before :all do
7
+ Dotenv.load
8
+ @group_name = "suppressions_test"
9
+ @email1 = "test1@test.com"
10
+ @email2 = "test2@test.com"
11
+ @email3 = "test3@test.com"
12
+
13
+ @group_desc = "group_desc"
14
+ end
15
+
16
+ context "normal" do
17
+ it "is normal" do
18
+
19
+ begin
20
+ client = SendGrid4r::Client.new(ENV["SENDGRID_USERNAME"], ENV["SENDGRID_PASSWORD"])
21
+ # celan up test env
22
+ grps = client.get_groups
23
+ expect(grps.length >= 0).to eq(true)
24
+ grps.each{|grp|
25
+ if grp.name == @group_name then
26
+ emails = client.get_suppressed_emails(grp.id)
27
+ emails.each{|email|
28
+ client.delete_suppressed_email(grp.id, email)
29
+ }
30
+ client.delete_group(grp.id)
31
+ end
32
+ }
33
+ # post a group
34
+ new_group = client.post_group(@group_name, @group_desc)
35
+ # post recipient emails to the suppression group
36
+ suppressed_emails = client.post_suppressed_emails(new_group.id, [@email1, @email2, @email3])
37
+ expect(suppressed_emails.length).to eq(3)
38
+ expect(suppressed_emails[0]).to eq(@email1)
39
+ expect(suppressed_emails[1]).to eq(@email2)
40
+ expect(suppressed_emails[2]).to eq(@email3)
41
+ # get the suppressions
42
+ suppressions = client.get_suppressions(@email1)
43
+ expect(suppressions.length).to eq(1)
44
+ expect(suppressions[0].name).to eq(@group_name)
45
+ expect(suppressions[0].description).to eq(@group_desc)
46
+ expect(suppressions[0].suppressed).to eq(true)
47
+ # get the recipient emails
48
+ actual_emails = client.get_suppressed_emails(new_group.id)
49
+ expect(actual_emails.length).to eq(suppressed_emails.length)
50
+ expect(actual_emails[0]).to eq(suppressed_emails[0])
51
+ expect(actual_emails[1]).to eq(suppressed_emails[1])
52
+ expect(actual_emails[2]).to eq(suppressed_emails[2])
53
+ # delete the suppressed email
54
+ client.delete_suppressed_email(new_group.id, @email1)
55
+ client.delete_suppressed_email(new_group.id, @email2)
56
+ client.delete_suppressed_email(new_group.id, @email3)
57
+ # delete the group
58
+ client.delete_group(new_group.id)
59
+ expect{client.get_group(new_group.id)}.to raise_error(RestClient::ResourceNotFound)
60
+ rescue => ex
61
+ puts ex.inspect
62
+ raise ex
63
+ end
64
+
65
+ end
66
+ end
67
+
68
+ context "abnormal" do
69
+ it "raise resource not found for none existance id" do
70
+ client = SendGrid4r::Client.new(ENV["SENDGRID_USERNAME"], ENV["SENDGRID_PASSWORD"])
71
+ expect{client.post_suppressed_emails("notexistid", [@email1, @email2, @email3])}.to raise_error(RestClient::ResourceNotFound)
72
+ end
73
+ end
74
+
75
+ end