active_rest_client 1.0.9 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,86 +17,86 @@ describe "ActiveRestClient::Validation" do
17
17
  a = SimpleValidationExample.new
18
18
  a.first_name = nil
19
19
  a.valid?
20
- expect(a.errors[:first_name].size).to eq(1)
20
+ expect(a._errors[:first_name].size).to eq(1)
21
21
  end
22
22
 
23
23
  it "should be valid if a required value is present" do
24
24
  a = SimpleValidationExample.new
25
25
  a.first_name = "John"
26
26
  a.valid?
27
- expect(a.errors[:first_name]).to be_empty
27
+ expect(a._errors[:first_name]).to be_empty
28
28
  end
29
29
 
30
30
  it "should be invalid if a length within value is outside the range" do
31
31
  a = SimpleValidationExample.new(password:"12345")
32
32
  a.valid?
33
- expect(a.errors[:password].size).to eq(1)
33
+ expect(a._errors[:password].size).to eq(1)
34
34
  end
35
35
 
36
36
  it "should be valid if a length within value is inside the range" do
37
37
  a = SimpleValidationExample.new(password:"123456")
38
38
  a.valid?
39
- expect(a.errors[:password].size).to eq(0)
39
+ expect(a._errors[:password].size).to eq(0)
40
40
  end
41
41
 
42
42
  it "should be invalid if a length is below the minimum" do
43
43
  a = SimpleValidationExample.new(post_code:"12345")
44
44
  a.valid?
45
- expect(a.errors[:post_code].size).to eq(1)
45
+ expect(a._errors[:post_code].size).to eq(1)
46
46
  end
47
47
 
48
48
  it "should be valid if a length is above or equal to the minimum and below the maximum" do
49
49
  a = SimpleValidationExample.new(post_code:"123456")
50
50
  a.valid?
51
- expect(a.errors[:post_code].size).to eq(0)
51
+ expect(a._errors[:post_code].size).to eq(0)
52
52
  end
53
53
 
54
54
  it "should be invalid if a length is above the maximum" do
55
55
  a = SimpleValidationExample.new(post_code:"123456789")
56
56
  a.valid?
57
- expect(a.errors[:post_code].size).to eq(1)
57
+ expect(a._errors[:post_code].size).to eq(1)
58
58
  end
59
59
 
60
60
  it "should be able to validate that a field is numeric" do
61
61
  a = SimpleValidationExample.new(salary:"Bob")
62
62
  a.valid?
63
- expect(a.errors[:salary].size).to be > 0
63
+ expect(a._errors[:salary].size).to be > 0
64
64
  end
65
65
 
66
66
  it "should be able to validate that a numeric field is above or equal to a minimum" do
67
67
  a = SimpleValidationExample.new(salary:10_000)
68
68
  a.valid?
69
- expect(a.errors[:salary].size).to be > 0
69
+ expect(a._errors[:salary].size).to be > 0
70
70
  end
71
71
 
72
72
  it "should be able to validate that a numeric field is above or equal to a minimum" do
73
73
  a = SimpleValidationExample.new(salary:100_000)
74
74
  a.valid?
75
- expect(a.errors[:salary].size).to be > 0
75
+ expect(a._errors[:salary].size).to be > 0
76
76
  end
77
77
 
78
78
  it "should be invalid when a block adds an error" do
79
79
  class ValidationExample1 < OpenStruct
80
80
  include ActiveRestClient::Validation
81
81
  validates :first_name do |object, name, value|
82
- object.errors[name] << "must be over 4 chars long" if value.length <= 4
82
+ object._errors[name] << "must be over 4 chars long" if value.length <= 4
83
83
  end
84
84
  end
85
85
  a = ValidationExample1.new(first_name:"John")
86
86
  a.valid?
87
- expect(a.errors[:first_name].size).to eq(1)
87
+ expect(a._errors[:first_name].size).to eq(1)
88
88
  end
89
89
 
90
90
  it "should be valid when a block doesn't add an error" do
91
91
  class ValidationExample2 < OpenStruct
92
92
  include ActiveRestClient::Validation
93
93
  validates :first_name do |object, name, value|
94
- object.errors[name] << "must be over 4 chars long" if value.length <= 4
94
+ object._errors[name] << "must be over 4 chars long" if value.length <= 4
95
95
  end
96
96
  end
97
97
  a = ValidationExample2.new(first_name:"Johnny")
98
98
  a.valid?
99
- expect(a.errors[:first_name]).to be_empty
99
+ expect(a._errors[:first_name]).to be_empty
100
100
  end
101
101
 
102
102
  it "should call valid? before making a request" do
data/spec/spec_helper.rb CHANGED
@@ -55,3 +55,34 @@ class TestCacheStore
55
55
  end
56
56
  end
57
57
  end
58
+
59
+ class FaradayResponseMock < ::ActiveRestClient::FaradayResponseProxy
60
+ # The FaradayResponseMock is setup to automatically resolve all calls by default.
61
+ # By setting auto_resolve to false it allows the spec to control when the response
62
+ # is resolved, which simulates what it is like when inside a Faraday in_parallel block.
63
+ def initialize(response, auto_resolve=true)
64
+ super(response)
65
+ @auto_resolve = auto_resolve
66
+ @finished = false
67
+ end
68
+
69
+ def on_complete
70
+ if @auto_resolve
71
+ @finished = true
72
+ yield(@response)
73
+ else
74
+ @callback = Proc.new
75
+ end
76
+ end
77
+
78
+ # This is exactly what is called on responses after a Faraday in_parallel block ends.
79
+ # This method simulates the end of in_parallel block.
80
+ def finish
81
+ @finished = true
82
+ @callback.call(@response)
83
+ end
84
+
85
+ def finished?
86
+ @finished
87
+ end
88
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_rest_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.9
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Which Ltd
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-05-07 00:00:00.000000000 Z
12
+ date: 2015-06-26 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -165,6 +165,20 @@ dependencies:
165
165
  - - ">="
166
166
  - !ruby/object:Gem::Version
167
167
  version: 1.3.1
168
+ - !ruby/object:Gem::Dependency
169
+ name: typhoeus
170
+ requirement: !ruby/object:Gem::Requirement
171
+ requirements:
172
+ - - ">="
173
+ - !ruby/object:Gem::Version
174
+ version: '0'
175
+ type: :development
176
+ prerelease: false
177
+ version_requirements: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ">="
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
168
182
  - !ruby/object:Gem::Dependency
169
183
  name: multi_json
170
184
  requirement: !ruby/object:Gem::Requirement
@@ -257,6 +271,7 @@ files:
257
271
  - lib/active_rest_client/proxy_base.rb
258
272
  - lib/active_rest_client/recording.rb
259
273
  - lib/active_rest_client/request.rb
274
+ - lib/active_rest_client/request_delegator.rb
260
275
  - lib/active_rest_client/request_filtering.rb
261
276
  - lib/active_rest_client/result_iterator.rb
262
277
  - lib/active_rest_client/validation.rb