smooth_operator 1.10.11 → 1.10.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +16 -9
- data/lib/smooth_operator/finder_methods.rb +1 -1
- data/lib/smooth_operator/persistence.rb +36 -45
- data/lib/smooth_operator/remote_call/base.rb +11 -19
- data/lib/smooth_operator/version.rb +1 -1
- data/spec/smooth_operator/finder_methods_spec.rb +15 -2
- data/spec/smooth_operator/persistence_spec.rb +55 -12
- data/spec/smooth_operator/remote_call_spec.rb +90 -62
- data/spec/support/models/user_with_address_and_posts.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZmY5YjcxMjdiMTMzZGM1OTAwNGZhNmY4Mjc4MzRhZGQwNDk0OWY5Mw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZGJlMTk3MTAxMWM5MmM1ZGIxNzliZjYxMTBjNjhmNjE3MjczYWRlMQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NzVjN2JlOTI0OTllZDlmYTNlNzkxYjAzODU0NGEyNTQ5ZmY1YTQ1ZjRlYTMy
|
10
|
+
Yzg2YTEwYWM3ZTU1OTJhMDk1M2I0ODk2NWU2M2VlMzY2MDUxMDlkMDU2YTU5
|
11
|
+
MTZmMjgyNjhkZGY0NzdhOTgwYzExNzFhY2VlMTBkYTA1NmFhNWU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MDUyMGNiMDllZDI5NjExNWEzMzMyYzY4YTQ1MGUzYjU3M2I2M2UwNzM2OTNm
|
14
|
+
YTYwMDAwOWEwMjM2YjViY2JhMDFkNzE4MGU4ODc5OWViMTFiZjFhMmVkZmY3
|
15
|
+
MWZkZjhhYmIzNzQ5N2Q2MjFkNGE5ZTE1NDk5YTM5ODYyOTA4MzE=
|
data/README.md
CHANGED
@@ -120,7 +120,7 @@ post.save("#{post.id}/save_and_add_to_list", { admin: true, post: { author: 'Age
|
|
120
120
|
### 2.4) Saving using HTTP Patch verb
|
121
121
|
```ruby
|
122
122
|
class Page < MyBlogResource
|
123
|
-
self.
|
123
|
+
self.update_http_verb = :patch
|
124
124
|
end
|
125
125
|
|
126
126
|
page = Page.find(2)
|
@@ -142,23 +142,30 @@ remote_call = Page.find(:all) # Will make a GET call to 'http://myblog.com/api/v
|
|
142
142
|
pages = remote_call.objects # 'pages = remote_call.data' also works
|
143
143
|
|
144
144
|
# If the server response is positive (http code between 200 and 299):
|
145
|
-
remote_call.
|
146
|
-
remote_call.
|
145
|
+
remote_call.ok? # true
|
146
|
+
remote_call.not_processed? # false
|
147
147
|
remote_call.error? # false
|
148
148
|
remote_call.status # true
|
149
149
|
pages = remote_call.data # array of Page instances
|
150
150
|
remote_call.http_status # server_response code
|
151
151
|
|
152
|
-
# If the server response is
|
153
|
-
remote_call.
|
154
|
-
remote_call.
|
152
|
+
# If the server response is unprocessed entity (http code 422):
|
153
|
+
remote_call.ok? # false
|
154
|
+
remote_call.not_processed? # true
|
155
155
|
remote_call.error? # false
|
156
156
|
remote_call.status # false
|
157
157
|
remote_call.http_status # server_response code
|
158
158
|
|
159
|
-
# If the server response is
|
160
|
-
remote_call.
|
161
|
-
remote_call.
|
159
|
+
# If the server response is client error (http code between 400..499, except 422):
|
160
|
+
remote_call.ok? # false
|
161
|
+
remote_call.not_processed? # false
|
162
|
+
remote_call.error? # true
|
163
|
+
remote_call.status # nil
|
164
|
+
remote_call.http_status # server_response code
|
165
|
+
|
166
|
+
# If the server response is server error (http code between 500 and 599), or the connection broke:
|
167
|
+
remote_call.ok? # false
|
168
|
+
remote_call.not_processed? # false
|
162
169
|
remote_call.error? # true
|
163
170
|
remote_call.status # nil
|
164
171
|
remote_call.http_status # server_response code or 0 if connection broke
|
@@ -14,7 +14,7 @@ module SmoothOperator
|
|
14
14
|
returning_object = {}
|
15
15
|
|
16
16
|
get(relative_path, data, options).tap do |remote_call|
|
17
|
-
remote_call.object = build_object(remote_call.parsed_response, options) if remote_call.
|
17
|
+
remote_call.object = build_object(remote_call.parsed_response, options) if remote_call.ok?
|
18
18
|
|
19
19
|
returning_object = remote_call
|
20
20
|
end
|
@@ -8,35 +8,27 @@ module SmoothOperator
|
|
8
8
|
|
9
9
|
module ClassMethods
|
10
10
|
|
11
|
-
def
|
12
|
-
@
|
11
|
+
def methods_vs_http_verbs
|
12
|
+
@methods_vs_http_verbs ||= { reload: :get, create: :post, update: :put, destroy: :delete }
|
13
13
|
end
|
14
14
|
|
15
|
-
[:create, :
|
16
|
-
define_method("#{method}_http_verb=") { |http_verb|
|
15
|
+
[:reload, :create, :update, :destroy].each do |method|
|
16
|
+
define_method("#{method}_http_verb=") { |http_verb| methods_vs_http_verbs[method] = http_verb }
|
17
17
|
end
|
18
18
|
|
19
19
|
def create(attributes = nil, relative_path = nil, data = {}, options = {})
|
20
|
-
|
21
|
-
# attributes.map { |array_entry| create(array_entry, relative_path, data, options) }
|
22
|
-
# else
|
23
|
-
new(attributes).tap { |object| object.save(relative_path, data, options) }
|
24
|
-
# end
|
20
|
+
new(attributes).tap { |object| object.save(relative_path, data, options) }
|
25
21
|
end
|
26
22
|
|
27
23
|
end
|
28
24
|
|
29
25
|
|
30
|
-
attr_accessor :extra_params
|
31
|
-
|
32
26
|
def reload(relative_path = nil, data = {}, options = {})
|
33
|
-
raise 'UnknownPath' if !respond_to?(:id) || Helpers.blank?(id)
|
34
|
-
|
35
|
-
relative_path, options = resource_path(relative_path, options)
|
27
|
+
raise 'UnknownPath' if Helpers.blank?(relative_path) && (!respond_to?(:id) || Helpers.blank?(id))
|
36
28
|
|
37
29
|
success = {}
|
38
30
|
|
39
|
-
|
31
|
+
make_the_call(*persistent_method_args(:reload, relative_path, data, options)) do |remote_call|
|
40
32
|
success = remote_call.status
|
41
33
|
end
|
42
34
|
|
@@ -70,11 +62,9 @@ module SmoothOperator
|
|
70
62
|
def destroy(relative_path = nil, data = {}, options = {})
|
71
63
|
return false unless persisted?
|
72
64
|
|
73
|
-
relative_path, options = resource_path(relative_path, options)
|
74
|
-
|
75
65
|
success = {}
|
76
66
|
|
77
|
-
|
67
|
+
make_the_call(*persistent_method_args(:destroy, relative_path, data, options)) do |remote_call|
|
78
68
|
success = remote_call.status
|
79
69
|
|
80
70
|
@destroyed = true if success
|
@@ -87,13 +77,15 @@ module SmoothOperator
|
|
87
77
|
protected ######################### PROTECTED ##################
|
88
78
|
|
89
79
|
def create_or_update(relative_path, data, options)
|
80
|
+
data = data_with_object_attributes(data, options)
|
81
|
+
|
90
82
|
new_record? ? create(relative_path, data, options) : update(relative_path, data, options)
|
91
83
|
end
|
92
84
|
|
93
85
|
def create(relative_path, data, options)
|
94
86
|
success = {}
|
95
87
|
|
96
|
-
|
88
|
+
make_the_call(http_verb_for(:create, options), relative_path, data, options) do |remote_call|
|
97
89
|
success = remote_call.status
|
98
90
|
|
99
91
|
@new_record = false if success
|
@@ -103,60 +95,59 @@ module SmoothOperator
|
|
103
95
|
end
|
104
96
|
|
105
97
|
def update(relative_path, data, options)
|
106
|
-
relative_path, options = resource_path(relative_path, options)
|
107
|
-
|
108
98
|
success = {}
|
109
99
|
|
110
|
-
|
100
|
+
make_the_call(*persistent_method_args(:update, relative_path, data, options)) do |remote_call|
|
111
101
|
success = remote_call.status
|
112
102
|
end
|
113
103
|
|
114
104
|
success
|
115
105
|
end
|
116
106
|
|
107
|
+
def make_the_call(http_verb, relative_path, data, options)
|
108
|
+
self.class.make_the_call(http_verb, relative_path, data, options) do |remote_call|
|
109
|
+
@last_remote_call = remote_call
|
110
|
+
|
111
|
+
returning_data = @last_remote_call.parsed_response
|
112
|
+
|
113
|
+
if !@last_remote_call.error? && returning_data.is_a?(Hash)
|
114
|
+
assign_attributes returning_data, from_server: true
|
115
|
+
end
|
116
|
+
|
117
|
+
yield(remote_call)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
117
121
|
|
118
122
|
private ##################### PRIVATE ####################
|
119
123
|
|
120
|
-
def
|
124
|
+
def persistent_method_args(method, relative_path, data, options)
|
125
|
+
options ||= {}
|
126
|
+
|
121
127
|
if Helpers.blank?(relative_path)
|
122
128
|
if parent_object.nil? || options[:ignore_parent] == true
|
123
129
|
relative_path = id.to_s
|
124
130
|
else
|
125
|
-
options ||= {}
|
126
131
|
options[:table_name] = ''
|
127
132
|
relative_path = "#{parent_object.table_name}/#{parent_object.id}/#{table_name}/#{id}"
|
128
133
|
end
|
129
134
|
end
|
130
135
|
|
131
|
-
[relative_path, options]
|
136
|
+
[http_verb_for(method, options), relative_path, data, options]
|
132
137
|
end
|
133
138
|
|
134
|
-
def
|
135
|
-
|
136
|
-
data.merge!(extra_params || {})
|
137
|
-
|
138
|
-
data, options = build_remote_call_args(http_verb, data, options)
|
139
|
-
|
140
|
-
self.class.make_the_call(http_verb, relative_path, data, options) do |remote_call|
|
141
|
-
@last_remote_call = remote_call
|
142
|
-
|
143
|
-
returning_data = @last_remote_call.parsed_response
|
144
|
-
|
145
|
-
if !@last_remote_call.error? && returning_data.is_a?(Hash)
|
146
|
-
assign_attributes returning_data, from_server: true
|
147
|
-
end
|
148
|
-
|
149
|
-
yield(remote_call)
|
150
|
-
end
|
139
|
+
def http_verb_for(method, options)
|
140
|
+
options[:http_verb] || self.class.methods_vs_http_verbs[method]
|
151
141
|
end
|
152
142
|
|
153
|
-
def
|
154
|
-
|
143
|
+
def data_with_object_attributes(data, options)
|
144
|
+
data = Helpers.stringify_keys(data)
|
155
145
|
|
156
146
|
hash = serializable_hash(options[:serializable_options]).dup
|
147
|
+
|
157
148
|
hash.delete('id')
|
158
149
|
|
159
|
-
|
150
|
+
{ model_name => hash }.merge(data)
|
160
151
|
end
|
161
152
|
|
162
153
|
end
|
@@ -15,36 +15,31 @@ module SmoothOperator
|
|
15
15
|
end
|
16
16
|
|
17
17
|
|
18
|
-
def
|
18
|
+
def ok?
|
19
19
|
http_status.between?(200, 299) || http_status == 304
|
20
20
|
end
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
def not_success?
|
25
|
-
!success?
|
22
|
+
def not_processed?
|
23
|
+
http_status == 422
|
26
24
|
end
|
27
25
|
|
28
|
-
|
26
|
+
def error?
|
27
|
+
!ok? && !not_processed?
|
28
|
+
end
|
29
29
|
|
30
|
-
def
|
30
|
+
def client_error?
|
31
31
|
http_status.between?(400, 499)
|
32
32
|
end
|
33
33
|
|
34
|
-
|
35
|
-
|
36
|
-
def error?
|
34
|
+
def server_error?
|
37
35
|
http_status.between?(500, 599) || http_status == 0
|
38
36
|
end
|
39
37
|
|
38
|
+
|
40
39
|
def not_found?
|
41
40
|
http_status == 404
|
42
41
|
end
|
43
42
|
|
44
|
-
def not_processed?
|
45
|
-
http_status == 422
|
46
|
-
end
|
47
|
-
|
48
43
|
def timeout?
|
49
44
|
false
|
50
45
|
end
|
@@ -53,6 +48,7 @@ module SmoothOperator
|
|
53
48
|
false
|
54
49
|
end
|
55
50
|
|
51
|
+
|
56
52
|
def parsed_response
|
57
53
|
return nil if body.nil?
|
58
54
|
|
@@ -66,11 +62,7 @@ module SmoothOperator
|
|
66
62
|
end
|
67
63
|
|
68
64
|
def status
|
69
|
-
|
70
|
-
|
71
|
-
return true if success?
|
72
|
-
|
73
|
-
not_processed? ? false : nil
|
65
|
+
error? ? nil : ok?
|
74
66
|
end
|
75
67
|
|
76
68
|
def objects
|
@@ -19,8 +19,21 @@ describe SmoothOperator::FinderMethods do
|
|
19
19
|
subject { UserWithAddressAndPosts::Son }
|
20
20
|
|
21
21
|
describe ".all" do
|
22
|
-
|
23
|
-
|
22
|
+
context "when NO arguments are passed" do
|
23
|
+
it "it should can .find(:all, {}, {})" do
|
24
|
+
expect(subject).to receive(:find).with(:all, {}, {})
|
25
|
+
subject.all
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context "when arguments are passed" do
|
30
|
+
it "it should can .find(:all) with the same arguments that .alll has received" do
|
31
|
+
arguments = [{ id: 2 }, { http_verb: 'head' }]
|
32
|
+
|
33
|
+
expect(subject).to receive(:find).with(:all, *arguments)
|
34
|
+
|
35
|
+
subject.all(*arguments)
|
36
|
+
end
|
24
37
|
end
|
25
38
|
end
|
26
39
|
|
@@ -24,7 +24,7 @@ shared_examples_for "persistent remote call" do
|
|
24
24
|
|
25
25
|
it "it should return true" do
|
26
26
|
execute_method
|
27
|
-
expect(subject.last_remote_call.
|
27
|
+
expect(subject.last_remote_call.ok?).to be true
|
28
28
|
expect(subject.last_remote_call.status).to be true
|
29
29
|
end
|
30
30
|
|
@@ -36,12 +36,12 @@ shared_examples_for "persistent remote call" do
|
|
36
36
|
it_behaves_like "successful persistent remote call"
|
37
37
|
end
|
38
38
|
|
39
|
-
context "when the response is
|
39
|
+
context "when the response is unprocessed_entity" do
|
40
40
|
let(:method_arguments) { ['', { status: 422 }] }
|
41
41
|
|
42
42
|
it "it should return false" do
|
43
43
|
execute_method
|
44
|
-
expect(subject.last_remote_call.
|
44
|
+
expect(subject.last_remote_call.not_processed?).to be true
|
45
45
|
expect(subject.last_remote_call.status).to be false
|
46
46
|
end
|
47
47
|
|
@@ -53,11 +53,28 @@ shared_examples_for "persistent remote call" do
|
|
53
53
|
it_behaves_like "successful persistent remote call"
|
54
54
|
end
|
55
55
|
|
56
|
+
context "when the response is client side error" do
|
57
|
+
let(:method_arguments) { ['', { status: 404 }] }
|
58
|
+
|
59
|
+
it "it should return nil" do
|
60
|
+
execute_method
|
61
|
+
expect(subject.last_remote_call.client_error?).to be true
|
62
|
+
expect(subject.last_remote_call.error?).to be true
|
63
|
+
expect(subject.last_remote_call.status).to be nil
|
64
|
+
end
|
65
|
+
|
66
|
+
it "it should assert the subject's persistence" do
|
67
|
+
execute_method
|
68
|
+
expect(subject.persisted?).to be(persistence_state[500])
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
56
72
|
context "when the there is a connection error ou http 500" do
|
57
73
|
let(:method_arguments) { ['', { status: 500 }] }
|
58
74
|
|
59
75
|
it "it should return nil" do
|
60
76
|
execute_method
|
77
|
+
expect(subject.last_remote_call.server_error?).to be true
|
61
78
|
expect(subject.last_remote_call.error?).to be true
|
62
79
|
expect(subject.last_remote_call.status).to be_nil
|
63
80
|
end
|
@@ -87,11 +104,28 @@ shared_examples_for "save method" do
|
|
87
104
|
end
|
88
105
|
end
|
89
106
|
|
107
|
+
shared_examples_for "a method that calls the #make_the_call method" do
|
108
|
+
let(:method_arguments) { ['custom_path', { "user" => { "first_name" => "nhoJ" }, "extra_params" => 'extra_params' }, { option1: 'option1', option2: 'option2', http_verb: :get, serializable_options: { only: [:first_name] } }] }
|
109
|
+
|
110
|
+
it "it should pass all arguments to #make_the_call" do
|
111
|
+
expect(subject).to receive(:make_the_call).with(:get, *method_arguments)
|
112
|
+
|
113
|
+
execute_method
|
114
|
+
end
|
115
|
+
|
116
|
+
it "it should pass all arguments to .make_the_call" do
|
117
|
+
expect(subject.class).to receive(:make_the_call).with(:get, *method_arguments)
|
118
|
+
|
119
|
+
execute_method
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
90
123
|
|
91
124
|
describe SmoothOperator::Persistence, helpers: :persistence do
|
92
125
|
|
93
126
|
describe "#reload", current: true do
|
94
127
|
subject { new_user }
|
128
|
+
let(:method_to_execute) { :reload }
|
95
129
|
|
96
130
|
context "before calling #reload" do
|
97
131
|
it "#has_data_from_server and #from_server should return false" do
|
@@ -149,6 +183,8 @@ describe SmoothOperator::Persistence, helpers: :persistence do
|
|
149
183
|
end
|
150
184
|
|
151
185
|
end
|
186
|
+
|
187
|
+
it_behaves_like "a method that calls the #make_the_call method"
|
152
188
|
end
|
153
189
|
|
154
190
|
describe ".create" do
|
@@ -281,14 +317,16 @@ describe SmoothOperator::Persistence, helpers: :persistence do
|
|
281
317
|
subject { new_user }
|
282
318
|
let(:persistence_state) { { 200 => true, 422 => false, 500 => false } }
|
283
319
|
|
284
|
-
it_behaves_like "persistent remote call"
|
285
|
-
|
286
320
|
it "it should make a post http call" do
|
287
321
|
execute_method
|
288
322
|
expect(subject.last_remote_call.parsed_response['http_verb']).to eq('post')
|
289
323
|
end
|
290
324
|
|
291
325
|
it_behaves_like "save method"
|
326
|
+
|
327
|
+
it_behaves_like "persistent remote call"
|
328
|
+
|
329
|
+
it_behaves_like "a method that calls the #make_the_call method"
|
292
330
|
end
|
293
331
|
|
294
332
|
context "when an instance IS persisted" do
|
@@ -296,31 +334,34 @@ describe SmoothOperator::Persistence, helpers: :persistence do
|
|
296
334
|
subject { existing_user }
|
297
335
|
let(:persistence_state) { { 200 => true, 422 => true, 500 => true } }
|
298
336
|
|
299
|
-
it_behaves_like "persistent remote call"
|
300
|
-
|
301
337
|
it "it should make a put http call" do
|
302
338
|
execute_method
|
303
339
|
expect(subject.last_remote_call.parsed_response['http_verb']).to eq('put')
|
304
340
|
end
|
305
341
|
|
306
342
|
it_behaves_like "save method"
|
343
|
+
|
344
|
+
it_behaves_like "persistent remote call"
|
345
|
+
|
346
|
+
it_behaves_like "a method that calls the #make_the_call method"
|
307
347
|
end
|
308
348
|
|
309
349
|
context "and it uses 'patch' http verb to save" do
|
310
350
|
subject { existing_user_with_patch }
|
311
351
|
let(:persistence_state) { { 200 => true, 422 => true, 500 => true } }
|
312
352
|
|
313
|
-
it_behaves_like "persistent remote call"
|
314
|
-
|
315
353
|
it "it should make a patch http call" do
|
316
354
|
execute_method
|
317
355
|
expect(subject.last_remote_call.parsed_response['http_verb']).to eq('patch')
|
318
356
|
end
|
319
357
|
|
320
358
|
it_behaves_like "save method"
|
359
|
+
|
360
|
+
it_behaves_like "persistent remote call"
|
361
|
+
|
362
|
+
it_behaves_like "a method that calls the #make_the_call method"
|
321
363
|
end
|
322
364
|
end
|
323
|
-
|
324
365
|
end
|
325
366
|
|
326
367
|
describe "#save!" do
|
@@ -362,12 +403,14 @@ describe SmoothOperator::Persistence, helpers: :persistence do
|
|
362
403
|
subject { existing_user }
|
363
404
|
let(:persistence_state) { { 200 => false, 422 => true, 500 => true } }
|
364
405
|
|
365
|
-
it_behaves_like "persistent remote call"
|
366
|
-
|
367
406
|
it "it should make a delete http call" do
|
368
407
|
execute_method
|
369
408
|
expect(subject.last_remote_call.parsed_response['http_verb']).to eq('delete')
|
370
409
|
end
|
410
|
+
|
411
|
+
it_behaves_like "persistent remote call"
|
412
|
+
|
413
|
+
it_behaves_like "a method that calls the #make_the_call method"
|
371
414
|
end
|
372
415
|
|
373
416
|
end
|
@@ -1,17 +1,25 @@
|
|
1
1
|
require "spec_helper"
|
2
2
|
|
3
|
-
describe SmoothOperator::RemoteCall
|
3
|
+
describe SmoothOperator::RemoteCall do
|
4
4
|
subject { UserWithAddressAndPosts::Son.new(attributes_for(:user_with_address_and_posts)) }
|
5
5
|
|
6
6
|
context "when the server response has a http code in the 200 range" do
|
7
7
|
before { subject.save(nil, { status: 200 }) }
|
8
8
|
|
9
|
-
it "#
|
10
|
-
expect(subject.last_remote_call.
|
9
|
+
it "#ok? should return true" do
|
10
|
+
expect(subject.last_remote_call.ok?).to be true
|
11
11
|
end
|
12
12
|
|
13
|
-
it "#
|
14
|
-
expect(subject.last_remote_call.
|
13
|
+
it "#not_processed? should return false" do
|
14
|
+
expect(subject.last_remote_call.not_processed?).to be false
|
15
|
+
end
|
16
|
+
|
17
|
+
it "#client_error? should return false" do
|
18
|
+
expect(subject.last_remote_call.client_error?).to be false
|
19
|
+
end
|
20
|
+
|
21
|
+
it "#server_error? should return false" do
|
22
|
+
expect(subject.last_remote_call.server_error?).to be false
|
15
23
|
end
|
16
24
|
|
17
25
|
it "#error? should return false" do
|
@@ -22,10 +30,6 @@ describe SmoothOperator::RemoteCall, current: true do
|
|
22
30
|
expect(subject.last_remote_call.not_found?).to be false
|
23
31
|
end
|
24
32
|
|
25
|
-
it "#not_processed? should return false" do
|
26
|
-
expect(subject.last_remote_call.not_processed?).to be false
|
27
|
-
end
|
28
|
-
|
29
33
|
it "#timeout? should return false" do
|
30
34
|
expect(subject.last_remote_call.timeout?).to be false
|
31
35
|
end
|
@@ -39,27 +43,31 @@ describe SmoothOperator::RemoteCall, current: true do
|
|
39
43
|
end
|
40
44
|
end
|
41
45
|
|
42
|
-
context "when the server response has a http code in the 400 range" do
|
46
|
+
context "when the server response has a http code in the 400 range (not 422, 404)" do
|
43
47
|
before { subject.save(nil, { status: 400 }) }
|
44
48
|
|
45
|
-
it "#
|
46
|
-
expect(subject.last_remote_call.
|
49
|
+
it "#ok? should return false" do
|
50
|
+
expect(subject.last_remote_call.ok?).to be false
|
47
51
|
end
|
48
52
|
|
49
|
-
it "#
|
50
|
-
expect(subject.last_remote_call.
|
53
|
+
it "#not_processed? should return false" do
|
54
|
+
expect(subject.last_remote_call.not_processed?).to be false
|
51
55
|
end
|
52
56
|
|
53
|
-
it "#
|
54
|
-
expect(subject.last_remote_call.
|
57
|
+
it "#client_error? should return true" do
|
58
|
+
expect(subject.last_remote_call.client_error?).to be true
|
55
59
|
end
|
56
60
|
|
57
|
-
it "#
|
58
|
-
expect(subject.last_remote_call.
|
61
|
+
it "#server_error? should return false" do
|
62
|
+
expect(subject.last_remote_call.server_error?).to be false
|
59
63
|
end
|
60
64
|
|
61
|
-
it "#
|
62
|
-
expect(subject.last_remote_call.
|
65
|
+
it "#error? should return true" do
|
66
|
+
expect(subject.last_remote_call.error?).to be true
|
67
|
+
end
|
68
|
+
|
69
|
+
it "#not_found? should return false" do
|
70
|
+
expect(subject.last_remote_call.not_found?).to be false
|
63
71
|
end
|
64
72
|
|
65
73
|
it "#timeout? should return false" do
|
@@ -78,24 +86,28 @@ describe SmoothOperator::RemoteCall, current: true do
|
|
78
86
|
context "when the server response has a http is 404" do
|
79
87
|
before { subject.save(nil, { status: 404 }) }
|
80
88
|
|
81
|
-
it "#
|
82
|
-
expect(subject.last_remote_call.
|
89
|
+
it "#ok? should return false" do
|
90
|
+
expect(subject.last_remote_call.ok?).to be false
|
83
91
|
end
|
84
92
|
|
85
|
-
it "#
|
86
|
-
expect(subject.last_remote_call.
|
93
|
+
it "#not_processed? should return false" do
|
94
|
+
expect(subject.last_remote_call.not_processed?).to be false
|
87
95
|
end
|
88
96
|
|
89
|
-
it "#
|
90
|
-
expect(subject.last_remote_call.
|
97
|
+
it "#client_error? should return true" do
|
98
|
+
expect(subject.last_remote_call.client_error?).to be true
|
91
99
|
end
|
92
100
|
|
93
|
-
it "#
|
94
|
-
expect(subject.last_remote_call.
|
101
|
+
it "#server_error? should return false" do
|
102
|
+
expect(subject.last_remote_call.server_error?).to be false
|
95
103
|
end
|
96
104
|
|
97
|
-
it "#
|
98
|
-
expect(subject.last_remote_call.
|
105
|
+
it "#error? should return true" do
|
106
|
+
expect(subject.last_remote_call.error?).to be true
|
107
|
+
end
|
108
|
+
|
109
|
+
it "#not_found? should return true" do
|
110
|
+
expect(subject.last_remote_call.not_found?).to be true
|
99
111
|
end
|
100
112
|
|
101
113
|
it "#timeout? should return false" do
|
@@ -114,12 +126,20 @@ describe SmoothOperator::RemoteCall, current: true do
|
|
114
126
|
context "when the server response has a http is 422" do
|
115
127
|
before { subject.save(nil, { status: 422 }) }
|
116
128
|
|
117
|
-
it "#
|
118
|
-
expect(subject.last_remote_call.
|
129
|
+
it "#ok? should return false" do
|
130
|
+
expect(subject.last_remote_call.ok?).to be false
|
131
|
+
end
|
132
|
+
|
133
|
+
it "#not_processed? should return true" do
|
134
|
+
expect(subject.last_remote_call.not_processed?).to be true
|
135
|
+
end
|
136
|
+
|
137
|
+
it "#client_error? should return true" do
|
138
|
+
expect(subject.last_remote_call.client_error?).to be true
|
119
139
|
end
|
120
140
|
|
121
|
-
it "#
|
122
|
-
expect(subject.last_remote_call.
|
141
|
+
it "#server_error? should return false" do
|
142
|
+
expect(subject.last_remote_call.server_error?).to be false
|
123
143
|
end
|
124
144
|
|
125
145
|
it "#error? should return false" do
|
@@ -130,10 +150,6 @@ describe SmoothOperator::RemoteCall, current: true do
|
|
130
150
|
expect(subject.last_remote_call.not_found?).to be false
|
131
151
|
end
|
132
152
|
|
133
|
-
it "#not_processed? should return true" do
|
134
|
-
expect(subject.last_remote_call.not_processed?).to be true
|
135
|
-
end
|
136
|
-
|
137
153
|
it "#timeout? should return false" do
|
138
154
|
expect(subject.last_remote_call.timeout?).to be false
|
139
155
|
end
|
@@ -150,12 +166,20 @@ describe SmoothOperator::RemoteCall, current: true do
|
|
150
166
|
context "when the server response has a http code in the 500 range" do
|
151
167
|
before { subject.save(nil, { status: 500 }) }
|
152
168
|
|
153
|
-
it "#
|
154
|
-
expect(subject.last_remote_call.
|
169
|
+
it "#ok? should return false" do
|
170
|
+
expect(subject.last_remote_call.ok?).to be false
|
171
|
+
end
|
172
|
+
|
173
|
+
it "#not_processed? should return false" do
|
174
|
+
expect(subject.last_remote_call.not_processed?).to be false
|
175
|
+
end
|
176
|
+
|
177
|
+
it "#client_error? should return false" do
|
178
|
+
expect(subject.last_remote_call.client_error?).to be false
|
155
179
|
end
|
156
180
|
|
157
|
-
it "#
|
158
|
-
expect(subject.last_remote_call.
|
181
|
+
it "#server_error? should return true" do
|
182
|
+
expect(subject.last_remote_call.server_error?).to be true
|
159
183
|
end
|
160
184
|
|
161
185
|
it "#error? should return true" do
|
@@ -166,10 +190,6 @@ describe SmoothOperator::RemoteCall, current: true do
|
|
166
190
|
expect(subject.last_remote_call.not_found?).to be false
|
167
191
|
end
|
168
192
|
|
169
|
-
it "#not_processed? should return false" do
|
170
|
-
expect(subject.last_remote_call.not_processed?).to be false
|
171
|
-
end
|
172
|
-
|
173
193
|
it "#timeout? should return false" do
|
174
194
|
expect(subject.last_remote_call.timeout?).to be false
|
175
195
|
end
|
@@ -188,12 +208,20 @@ describe SmoothOperator::RemoteCall, current: true do
|
|
188
208
|
|
189
209
|
before { subject.save }
|
190
210
|
|
191
|
-
it "#
|
192
|
-
expect(subject.last_remote_call.
|
211
|
+
it "#ok? should return false" do
|
212
|
+
expect(subject.last_remote_call.ok?).to be false
|
193
213
|
end
|
194
214
|
|
195
|
-
it "#
|
196
|
-
expect(subject.last_remote_call.
|
215
|
+
it "#not_processed? should return false" do
|
216
|
+
expect(subject.last_remote_call.not_processed?).to be false
|
217
|
+
end
|
218
|
+
|
219
|
+
it "#client_error? should return false" do
|
220
|
+
expect(subject.last_remote_call.client_error?).to be false
|
221
|
+
end
|
222
|
+
|
223
|
+
it "#server_error? should return true" do
|
224
|
+
expect(subject.last_remote_call.server_error?).to be true
|
197
225
|
end
|
198
226
|
|
199
227
|
it "#error? should return true" do
|
@@ -204,10 +232,6 @@ describe SmoothOperator::RemoteCall, current: true do
|
|
204
232
|
expect(subject.last_remote_call.not_found?).to be false
|
205
233
|
end
|
206
234
|
|
207
|
-
it "#not_processed? should return false" do
|
208
|
-
expect(subject.last_remote_call.not_processed?).to be false
|
209
|
-
end
|
210
|
-
|
211
235
|
it "#timeout? should return false" do
|
212
236
|
expect(subject.last_remote_call.timeout?).to be false
|
213
237
|
end
|
@@ -226,12 +250,20 @@ describe SmoothOperator::RemoteCall, current: true do
|
|
226
250
|
|
227
251
|
before { subject.save('timeout') }
|
228
252
|
|
229
|
-
it "#
|
230
|
-
expect(subject.last_remote_call.
|
253
|
+
it "#ok? should return false" do
|
254
|
+
expect(subject.last_remote_call.ok?).to be false
|
231
255
|
end
|
232
256
|
|
233
|
-
it "#
|
234
|
-
expect(subject.last_remote_call.
|
257
|
+
it "#not_processed? should return false" do
|
258
|
+
expect(subject.last_remote_call.not_processed?).to be false
|
259
|
+
end
|
260
|
+
|
261
|
+
it "#client_error? should return false" do
|
262
|
+
expect(subject.last_remote_call.client_error?).to be false
|
263
|
+
end
|
264
|
+
|
265
|
+
it "#server_error? should return true" do
|
266
|
+
expect(subject.last_remote_call.server_error?).to be true
|
235
267
|
end
|
236
268
|
|
237
269
|
it "#error? should return true" do
|
@@ -242,10 +274,6 @@ describe SmoothOperator::RemoteCall, current: true do
|
|
242
274
|
expect(subject.last_remote_call.not_found?).to be false
|
243
275
|
end
|
244
276
|
|
245
|
-
it "#not_processed? should return false" do
|
246
|
-
expect(subject.last_remote_call.not_processed?).to be false
|
247
|
-
end
|
248
|
-
|
249
277
|
it "#timeout? should return true" do
|
250
278
|
expect(subject.last_remote_call.timeout?).to be true
|
251
279
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smooth_operator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.10.
|
4
|
+
version: 1.10.13
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- João Gonçalves
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|