api-client 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
data/lib/api_client.rb CHANGED
@@ -21,6 +21,9 @@ module ApiClient
21
21
  when '401' then raise ApiClient::Exceptions::Unauthorized
22
22
  when '403' then raise ApiClient::Exceptions::Forbidden
23
23
  when '404' then raise ApiClient::Exceptions::NotFound
24
+ when '500' then raise ApiClient::Exceptions::InternalServerError
25
+ when '502' then raise ApiClient::Exceptions::BadGateway
26
+ when '503' then raise ApiClient::Exceptions::ServiceUnavailable
24
27
  end
25
28
  end
26
29
  end
@@ -3,4 +3,7 @@ module ApiClient::Exceptions
3
3
  autoload :NotFound, 'api_client/exceptions/not_found'
4
4
  autoload :Unauthorized, 'api_client/exceptions/unauthorized'
5
5
  autoload :Forbidden, 'api_client/exceptions/forbidden'
6
+ autoload :InternalServerError, 'api_client/exceptions/internal_server_error'
7
+ autoload :BadGateway, 'api_client/exceptions/bad_gateway'
8
+ autoload :ServiceUnavailable, 'api_client/exceptions/service_unavailable'
6
9
  end
@@ -0,0 +1,5 @@
1
+ class ApiClient::Exceptions::BadGateway < ApiClient::Exceptions::Generic
2
+ def self.initialize
3
+ super("Bad Gateway!")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class ApiClient::Exceptions::InternalServerError < ApiClient::Exceptions::Generic
2
+ def self.initialize
3
+ super("Internal Server Errorr!")
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class ApiClient::Exceptions::ServiceUnavailable < ApiClient::Exceptions::Generic
2
+ def self.initialize
3
+ super("Service Unavailable!")
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module ApiClient
2
- VERSION = "0.3.0"
2
+ VERSION = "0.4.0"
3
3
  end
@@ -32,6 +32,36 @@ describe ApiClient do
32
32
  end
33
33
  end
34
34
 
35
+ context "when response code is 500" do
36
+ before :each do
37
+ FakeWeb.register_uri(:get, "http://api.example.com/user/5", :status => "500")
38
+ end
39
+
40
+ it "should return a InternalServerError exception" do
41
+ lambda { ApiClient.get('http://api.example.com/user/5') }.should raise_error(ApiClient::Exceptions::InternalServerError)
42
+ end
43
+ end
44
+
45
+ context "when response code is 502" do
46
+ before :each do
47
+ FakeWeb.register_uri(:get, "http://api.example.com/user/5", :status => "502")
48
+ end
49
+
50
+ it "should return a BadGateway exception" do
51
+ lambda { ApiClient.get('http://api.example.com/user/5') }.should raise_error(ApiClient::Exceptions::BadGateway)
52
+ end
53
+ end
54
+
55
+ context "when response code is 503" do
56
+ before :each do
57
+ FakeWeb.register_uri(:get, "http://api.example.com/user/5", :status => "503")
58
+ end
59
+
60
+ it "should return a ServiceUnavailable exception" do
61
+ lambda { ApiClient.get('http://api.example.com/user/5') }.should raise_error(ApiClient::Exceptions::ServiceUnavailable)
62
+ end
63
+ end
64
+
35
65
  context "when response code is 2xx" do
36
66
  before :each do
37
67
  FakeWeb.register_uri(:get, "http://api.example.com/user/5", :status => "201", :body => "User#3333")
@@ -74,6 +104,36 @@ describe ApiClient do
74
104
  end
75
105
  end
76
106
 
107
+ context "when response code is 500" do
108
+ before :each do
109
+ FakeWeb.register_uri(:post, "http://api.example.com/user/5", :status => "500")
110
+ end
111
+
112
+ it "should return a InternalServerError exception" do
113
+ lambda { ApiClient.post('http://api.example.com/user/5', {}) }.should raise_error(ApiClient::Exceptions::InternalServerError)
114
+ end
115
+ end
116
+
117
+ context "when response code is 502" do
118
+ before :each do
119
+ FakeWeb.register_uri(:post, "http://api.example.com/user/5", :status => "502")
120
+ end
121
+
122
+ it "should return a BadGateway exception" do
123
+ lambda { ApiClient.post('http://api.example.com/user/5', {}) }.should raise_error(ApiClient::Exceptions::BadGateway)
124
+ end
125
+ end
126
+
127
+ context "when response code is 503" do
128
+ before :each do
129
+ FakeWeb.register_uri(:post, "http://api.example.com/user/5", :status => "503")
130
+ end
131
+
132
+ it "should return a ServiceUnavailable exception" do
133
+ lambda { ApiClient.post('http://api.example.com/user/5', {}) }.should raise_error(ApiClient::Exceptions::ServiceUnavailable)
134
+ end
135
+ end
136
+
77
137
  context "when response code is 2xx" do
78
138
  before :each do
79
139
  FakeWeb.register_uri(:post, "http://api.example.com/user/5", :status => "201", :body => "User#3333")
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: api-client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-05-31 00:00:00.000000000 Z
12
+ date: 2012-06-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
@@ -76,9 +76,12 @@ files:
76
76
  - api_client.gemspec
77
77
  - lib/api_client.rb
78
78
  - lib/api_client/exceptions.rb
79
+ - lib/api_client/exceptions/bad_gateway.rb
79
80
  - lib/api_client/exceptions/forbidden.rb
80
81
  - lib/api_client/exceptions/generic.rb
82
+ - lib/api_client/exceptions/internal_server_error.rb
81
83
  - lib/api_client/exceptions/not_found.rb
84
+ - lib/api_client/exceptions/service_unavailable.rb
82
85
  - lib/api_client/exceptions/unauthorized.rb
83
86
  - lib/api_client/version.rb
84
87
  - spec/api_client_spec.rb
@@ -97,7 +100,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
97
100
  version: '0'
98
101
  segments:
99
102
  - 0
100
- hash: 2776050447595932195
103
+ hash: -2990378140644206917
101
104
  required_rubygems_version: !ruby/object:Gem::Requirement
102
105
  none: false
103
106
  requirements:
@@ -106,7 +109,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
106
109
  version: '0'
107
110
  segments:
108
111
  - 0
109
- hash: 2776050447595932195
112
+ hash: -2990378140644206917
110
113
  requirements: []
111
114
  rubyforge_project:
112
115
  rubygems_version: 1.8.24