client-api 0.3.2 → 0.3.3
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.
- checksums.yaml +4 -4
- data/lib/client-api/validator.rb +49 -11
- data/lib/client-api/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0a612f5c50744b4c1f7ecdea839fa8d222f7e2e39148f57f1dc4d4716eaa2c8
|
4
|
+
data.tar.gz: c2671c223b7d26c4600a0b9b48189347d5aef8cdd09d3ca6f921dcede096cb3c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 732762a2aa97f9d09f20230e0fb91fa16606a41cb93241529e45ef121eb42bb2f85c0366a421c9882943c8b098fe194721ddd876cfa230324bb96bada91f86c8
|
7
|
+
data.tar.gz: a1ecf533512e3524076db73a859d010b07aa474f45384bdff686234fc4378824fd7b69f8e2fff694692649488cb30a5c6359dc3d277101b7643c9878fe395805
|
data/lib/client-api/validator.rb
CHANGED
@@ -5,23 +5,28 @@ module ClientApi
|
|
5
5
|
def validate(res, *options)
|
6
6
|
options.map do |data|
|
7
7
|
raise('"key": ""'.green + ' field is missing'.red) if data[:key].nil?
|
8
|
-
raise('"operator":'.green + ' or'.red + ' "size":'.green + ' or'.red + ' "empty":'.green + ' field is not given!'.red) if data[:operator].nil? && data[:size].nil? && data[:empty].nil?
|
8
|
+
raise('"operator":'.green + ' or'.red + ' "size":'.green + ' or'.red + ' "empty":'.green + ' "has_key":'.green + ' field is not given!'.red) if data[:operator].nil? && data[:size].nil? && data[:empty].nil? && data[:has_key].nil?
|
9
9
|
raise('"value":'.green + ' or'.red + ' "size":'.green + ' or'.red + ' "type":'.green + ' field is not given!'.red) if data[:value].nil? && data[:type].nil? && data[:size].nil? if data[:operator] != nil
|
10
10
|
|
11
|
+
value ||= data[:value]
|
12
|
+
operator ||= data[:operator]
|
13
|
+
type ||= data[:type]
|
14
|
+
size ||= data[:size]
|
15
|
+
empty ||= data[:empty]
|
16
|
+
has_key ||= data[:has_key]
|
17
|
+
|
11
18
|
@resp = JSON.parse(res.to_json)
|
12
19
|
key = data[:key].split("->")
|
13
20
|
|
14
21
|
key.map do |method|
|
15
22
|
method = method.to_i if is_num?(method)
|
16
|
-
|
23
|
+
begin
|
24
|
+
@resp = @resp.send(:[], method)
|
25
|
+
rescue NoMethodError
|
26
|
+
raise "[key]: \"#{data[:key]}\"".blue + "\n does not exist"+"\n" if data[:has_key].nil?
|
27
|
+
end
|
17
28
|
end
|
18
29
|
|
19
|
-
value ||= data[:value]
|
20
|
-
operator ||= data[:operator]
|
21
|
-
type ||= data[:type]
|
22
|
-
size ||= data[:size]
|
23
|
-
empty ||= data[:empty]
|
24
|
-
|
25
30
|
if operator != nil
|
26
31
|
case operator
|
27
32
|
when '=', '==', 'eql', 'eql?', 'equal', 'equal?'
|
@@ -41,6 +46,9 @@ module ClientApi
|
|
41
46
|
# is empty validation
|
42
47
|
validate_empty(empty, data) if empty != nil
|
43
48
|
|
49
|
+
# has key validation
|
50
|
+
validate_key(has_key, data) if has_key != nil
|
51
|
+
|
44
52
|
when '!', '!=', '!eql', '!eql?', 'not eql', 'not equal', '!equal?'
|
45
53
|
# value validation
|
46
54
|
expect(value).not_to eq(@resp), lambda {"[key]: \"#{data[:key]}\"".blue + "\n didn't match \n[value]: \"#{data[:value]}\"\n"} if value != nil
|
@@ -66,6 +74,9 @@ module ClientApi
|
|
66
74
|
# is empty validation
|
67
75
|
validate_empty(empty, data) if empty != nil
|
68
76
|
|
77
|
+
# has key validation
|
78
|
+
validate_key(has_key, data) if has_key != nil
|
79
|
+
|
69
80
|
when '>', '>=', '<', '<=', 'greater than', 'greater than or equal to', 'less than', 'less than or equal to', 'lesser than', 'lesser than or equal to'
|
70
81
|
message = 'is not greater than (or) equal to' if operator == '>=' || operator == 'greater than or equal to'
|
71
82
|
message = 'is not greater than' if operator == '>' || operator == 'greater than'
|
@@ -92,6 +103,9 @@ module ClientApi
|
|
92
103
|
# is empty validation
|
93
104
|
validate_empty(empty, data) if empty != nil
|
94
105
|
|
106
|
+
# has key validation
|
107
|
+
validate_key(has_key, data) if has_key != nil
|
108
|
+
|
95
109
|
when 'contains', 'has', 'contains?', 'has?', 'include', 'include?'
|
96
110
|
# value validation
|
97
111
|
expect(@resp.to_s).to include(value.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n not contains \n[value]: \"#{data[:value]}\"\n"} if value != nil
|
@@ -142,13 +156,17 @@ module ClientApi
|
|
142
156
|
# is empty validation
|
143
157
|
validate_empty(empty, data) if empty != nil
|
144
158
|
|
159
|
+
# has key validation
|
160
|
+
validate_key(has_key, data) if has_key != nil
|
161
|
+
|
145
162
|
else
|
146
163
|
raise('operator not matching')
|
147
164
|
end
|
148
165
|
|
149
|
-
elsif ((size != nil) || (empty != nil)) && operator.nil?
|
166
|
+
elsif ((size != nil) || (empty != nil) || (has_key != nil)) && operator.nil?
|
150
167
|
validate_empty(empty, data) if empty != nil
|
151
168
|
validate_size(size, data) if size != nil
|
169
|
+
validate_key(has_key, data) if has_key != nil
|
152
170
|
|
153
171
|
else
|
154
172
|
raise('invalid validation fields')
|
@@ -170,9 +188,29 @@ module ClientApi
|
|
170
188
|
def validate_empty(empty, data)
|
171
189
|
case empty
|
172
190
|
when true
|
173
|
-
expect(@resp.
|
191
|
+
expect(@resp.nil?).to eq(empty), lambda {"[key]: \"#{data[:key]}\"".blue + "\n is not empty"+"\n"} if [Integer, TrueClass, FalseClass, Float].include? @resp.class
|
192
|
+
expect(@resp.empty?).to eq(empty), lambda {"[key]: \"#{data[:key]}\"".blue + "\n is not empty"+"\n"} if [String, Hash, Array].include? @resp.class
|
174
193
|
when false
|
175
|
-
expect(@resp.
|
194
|
+
expect(@resp.nil?).to eq(empty), lambda {"[key]: \"#{data[:key]}\"".blue + "\n is empty"+"\n"} if [Integer, TrueClass, FalseClass, Float].include? @resp.class
|
195
|
+
expect(@resp.empty?).to eq(empty), lambda {"[key]: \"#{data[:key]}\"".blue + "\n is empty"+"\n"} if [String, Hash, Array].include? @resp.class
|
196
|
+
end
|
197
|
+
end
|
198
|
+
|
199
|
+
def validate_key(has_key, data)
|
200
|
+
case has_key
|
201
|
+
when true
|
202
|
+
begin
|
203
|
+
expect(@resp.nil?).to eq(false), lambda {"[key]: \"#{data[:key]}\"".blue + "\n does not exist"+"\n"}
|
204
|
+
rescue NoMethodError
|
205
|
+
raise "[key]: \"#{data[:key]}\"".blue + "\n does not exist"+"\n"
|
206
|
+
end
|
207
|
+
|
208
|
+
when false
|
209
|
+
begin
|
210
|
+
expect(@resp.nil?).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n does exist"+"\n"}
|
211
|
+
rescue NoMethodError
|
212
|
+
true
|
213
|
+
end
|
176
214
|
end
|
177
215
|
end
|
178
216
|
|
data/lib/client-api/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: client-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Prashanth Sams
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-11-
|
11
|
+
date: 2019-11-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|