client-api 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 97f401edf4a282e909f6762a905f1fd61e004d186009a1a87f3739852485738e
4
- data.tar.gz: 931f5764aaacc5ce10a4194a53fccc7904d2a02e7fec52fbcac4eb602c899a0b
3
+ metadata.gz: c0a612f5c50744b4c1f7ecdea839fa8d222f7e2e39148f57f1dc4d4716eaa2c8
4
+ data.tar.gz: c2671c223b7d26c4600a0b9b48189347d5aef8cdd09d3ca6f921dcede096cb3c
5
5
  SHA512:
6
- metadata.gz: b439b3185f49058ba3bd0cc305b48ad17c89650ff1c61d85af5512ef4a6ae4e711355f1d8385f80974e4bc5fb19e7703e9fb255dc01f2cfc2345c024b32c6f68
7
- data.tar.gz: 6c272bd4a6db982e27c692a4b0d9f23c5a965e99c9e3d67b262f1ac51d2a348b7c17e67c16992d1e3c8f84646932bb4e8a6bb275f8e599bbb48baa1d25ce82bc
6
+ metadata.gz: 732762a2aa97f9d09f20230e0fb91fa16606a41cb93241529e45ef121eb42bb2f85c0366a421c9882943c8b098fe194721ddd876cfa230324bb96bada91f86c8
7
+ data.tar.gz: a1ecf533512e3524076db73a859d010b07aa474f45384bdff686234fc4378824fd7b69f8e2fff694692649488cb30a5c6359dc3d277101b7643c9878fe395805
@@ -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
- @resp = @resp.send(:[], method)
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.empty?).to eq(empty), lambda {"[key]: \"#{data[:key]}\"".blue + "\n is not empty"+"\n"}
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.empty?).to eq(empty), lambda {"[key]: \"#{data[:key]}\"".blue + "\n is empty"+"\n"}
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
 
@@ -1,3 +1,3 @@
1
1
  module ClientApi
2
- VERSION = "0.3.2".freeze
2
+ VERSION = "0.3.3".freeze
3
3
  end
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.2
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-10 00:00:00.000000000 Z
11
+ date: 2019-11-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler