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 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