client-api 0.3.1 → 0.3.2
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 +135 -83
- 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: 97f401edf4a282e909f6762a905f1fd61e004d186009a1a87f3739852485738e
|
4
|
+
data.tar.gz: 931f5764aaacc5ce10a4194a53fccc7904d2a02e7fec52fbcac4eb602c899a0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b439b3185f49058ba3bd0cc305b48ad17c89650ff1c61d85af5512ef4a6ae4e711355f1d8385f80974e4bc5fb19e7703e9fb255dc01f2cfc2345c024b32c6f68
|
7
|
+
data.tar.gz: 6c272bd4a6db982e27c692a4b0d9f23c5a965e99c9e3d67b262f1ac51d2a348b7c17e67c16992d1e3c8f84646932bb4e8a6bb275f8e599bbb48baa1d25ce82bc
|
data/lib/client-api/validator.rb
CHANGED
@@ -4,9 +4,9 @@ module ClientApi
|
|
4
4
|
|
5
5
|
def validate(res, *options)
|
6
6
|
options.map do |data|
|
7
|
-
raise('key
|
8
|
-
raise('operator is not given!') if data[:operator].nil?
|
9
|
-
raise('value
|
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?
|
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
11
|
@resp = JSON.parse(res.to_json)
|
12
12
|
key = data[:key].split("->")
|
@@ -17,111 +17,163 @@ module ClientApi
|
|
17
17
|
end
|
18
18
|
|
19
19
|
value ||= data[:value]
|
20
|
-
operator
|
20
|
+
operator ||= data[:operator]
|
21
21
|
type ||= data[:type]
|
22
22
|
size ||= data[:size]
|
23
|
+
empty ||= data[:empty]
|
24
|
+
|
25
|
+
if operator != nil
|
26
|
+
case operator
|
27
|
+
when '=', '==', 'eql', 'eql?', 'equal', 'equal?'
|
28
|
+
# value validation
|
29
|
+
expect(value).to eq(@resp), lambda {"[key]: \"#{data[:key]}\"".blue + "\n didn't match \n[value]: \"#{data[:value]}\"\n"} if value != nil
|
30
|
+
|
31
|
+
# datatype validation
|
32
|
+
if (type == 'boolean') || (type == 'bool')
|
33
|
+
expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
34
|
+
elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
|
35
|
+
expect(datatype(type, value)).to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
36
|
+
end
|
23
37
|
|
24
|
-
|
25
|
-
|
26
|
-
# value validation
|
27
|
-
expect(value).to eq(@resp), lambda {"[key]: \"#{data[:key]}\"".blue + "\n didn't match \n[value]: \"#{data[:value]}\"\n"} if value != nil
|
28
|
-
|
29
|
-
# datatype validation
|
30
|
-
if (type == 'boolean') || (type == 'bool')
|
31
|
-
expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
32
|
-
elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
|
33
|
-
expect(datatype(type, value)).to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
34
|
-
end
|
38
|
+
# size validation
|
39
|
+
validate_size(size, data) if size != nil
|
35
40
|
|
36
|
-
|
37
|
-
|
38
|
-
expect(size).to eq(@resp.count), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size didn't match" + "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "[expected size]: #{size}".green}
|
39
|
-
rescue NoMethodError
|
40
|
-
expect(size).to eq(0), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size didn't match" + "\n\n" + "[ actual size ]: 0" + "\n" + "[expected size]: #{size}".green}
|
41
|
-
end
|
42
|
-
end
|
41
|
+
# is empty validation
|
42
|
+
validate_empty(empty, data) if empty != nil
|
43
43
|
|
44
|
-
|
45
|
-
|
46
|
-
|
44
|
+
when '!', '!=', '!eql', '!eql?', 'not eql', 'not equal', '!equal?'
|
45
|
+
# value validation
|
46
|
+
expect(value).not_to eq(@resp), lambda {"[key]: \"#{data[:key]}\"".blue + "\n didn't match \n[value]: \"#{data[:value]}\"\n"} if value != nil
|
47
47
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
48
|
+
# datatype validation
|
49
|
+
if (type == 'boolean') || (type == 'bool')
|
50
|
+
expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).not_to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
51
|
+
elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
|
52
|
+
expect(datatype(type, value)).not_to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
53
|
+
end
|
54
54
|
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
55
|
+
# size validation
|
56
|
+
if size != nil
|
57
|
+
begin
|
58
|
+
expect(size).not_to eq(@resp.count), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size shouldn't match" + "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "[size not expected]: #{size}".green}
|
59
|
+
rescue NoMethodError
|
60
|
+
expect(size).not_to eq(0), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size shouldn't match" + "\n\n" + "[ actual size ]: 0" + "\n" + "[size not expected]: #{size}".green}
|
61
|
+
rescue ArgumentError
|
62
|
+
expect(size).not_to eq(0), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size shouldn't match" + "\n\n" + "[ actual size ]: 0" + "\n" + "[size not expected]: #{size}".green}
|
63
|
+
end
|
60
64
|
end
|
61
|
-
end
|
62
65
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
66
|
+
# is empty validation
|
67
|
+
validate_empty(empty, data) if empty != nil
|
68
|
+
|
69
|
+
when '>', '>=', '<', '<=', 'greater than', 'greater than or equal to', 'less than', 'less than or equal to', 'lesser than', 'lesser than or equal to'
|
70
|
+
message = 'is not greater than (or) equal to' if operator == '>=' || operator == 'greater than or equal to'
|
71
|
+
message = 'is not greater than' if operator == '>' || operator == 'greater than'
|
72
|
+
message = 'is not lesser than (or) equal to' if operator == '<=' || operator == 'less than or equal to'
|
73
|
+
message = 'is not lesser than' if operator == '<' || operator == 'less than' || operator == 'lesser than'
|
74
|
+
|
75
|
+
# value validation
|
76
|
+
expect(@resp.to_i.public_send(operator, value)).to eq(true), "[key]: \"#{data[:key]}\"".blue + "\n #{message} \n[value]: \"#{data[:value]}\"\n" if value != nil
|
77
|
+
|
78
|
+
# datatype validation
|
79
|
+
expect(datatype(type, value)).to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"} if type != nil
|
80
|
+
|
81
|
+
# size validation
|
82
|
+
if size != nil
|
83
|
+
begin
|
84
|
+
expect(@resp.count.to_i.public_send(operator, size)).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "#{message} #{size}" + "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "expected size to be #{operator} #{size}".green}
|
85
|
+
rescue NoMethodError
|
86
|
+
expect(0.public_send(operator, size)).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "#{message} #{size}" + "\n\n" + "[ actual size ]: 0" + "\n" + "expected size to be #{operator} #{size}".green}
|
87
|
+
rescue ArgumentError
|
88
|
+
expect(0.public_send(operator, size)).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "#{message} #{size}" + "\n\n" + "[ actual size ]: 0" + "\n" + "expected size to be #{operator} #{size}".green}
|
89
|
+
end
|
90
|
+
end
|
68
91
|
|
69
|
-
|
70
|
-
|
92
|
+
# is empty validation
|
93
|
+
validate_empty(empty, data) if empty != nil
|
71
94
|
|
72
|
-
|
73
|
-
|
95
|
+
when 'contains', 'has', 'contains?', 'has?', 'include', 'include?'
|
96
|
+
# value validation
|
97
|
+
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
|
74
98
|
|
75
|
-
|
76
|
-
|
77
|
-
expect(@resp.
|
78
|
-
|
79
|
-
expect(
|
99
|
+
# datatype validation
|
100
|
+
if (type == 'boolean') || (type == 'bool')
|
101
|
+
expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
102
|
+
elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
|
103
|
+
expect(datatype(type, value)).to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
104
|
+
end
|
105
|
+
|
106
|
+
# size validation
|
107
|
+
if size != nil
|
108
|
+
begin
|
109
|
+
expect(@resp.count.to_s).to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size not contains #{size}"+ "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "expected size to contain: #{size}".green}
|
110
|
+
rescue NoMethodError
|
111
|
+
expect(0.to_s).to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size not contains #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size to contain: #{size}".green}
|
112
|
+
rescue ArgumentError
|
113
|
+
expect(0.to_s).to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size not contains #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size to contain: #{size}".green}
|
114
|
+
end
|
80
115
|
end
|
81
|
-
end
|
82
116
|
|
83
|
-
|
84
|
-
|
85
|
-
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
|
117
|
+
# is empty validation
|
118
|
+
validate_empty(empty, data) if empty != nil
|
86
119
|
|
87
|
-
|
88
|
-
|
89
|
-
expect(
|
90
|
-
elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
|
91
|
-
expect(datatype(type, value)).to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
92
|
-
end
|
120
|
+
when 'not contains', '!contains', 'not include', '!include'
|
121
|
+
# value validation
|
122
|
+
expect(@resp.to_s).not_to include(value.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n should not contain \n[value]: \"#{data[:value]}\"\n"} if value != nil
|
93
123
|
|
94
|
-
|
95
|
-
|
96
|
-
expect(@resp.
|
97
|
-
|
98
|
-
expect(
|
124
|
+
# datatype validation
|
125
|
+
if (type == 'boolean') || (type == 'bool')
|
126
|
+
expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).not_to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
127
|
+
elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
|
128
|
+
expect(datatype(type, value)).not_to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
99
129
|
end
|
100
|
-
end
|
101
130
|
|
102
|
-
|
103
|
-
|
104
|
-
|
131
|
+
# size validation
|
132
|
+
if size != nil
|
133
|
+
begin
|
134
|
+
expect(@resp.count.to_s).not_to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size should not contain #{size}"+ "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "expected size not to contain: #{size}".green}
|
135
|
+
rescue NoMethodError
|
136
|
+
expect(0.to_s).not_to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size should not contain #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size not to contain: #{size}".green}
|
137
|
+
rescue ArgumentError
|
138
|
+
expect(0.to_s).not_to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size should not contain #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size not to contain: #{size}".green}
|
139
|
+
end
|
140
|
+
end
|
105
141
|
|
106
|
-
|
107
|
-
|
108
|
-
expect(%w[TrueClass, FalseClass].any? {|bool| bool.include? @resp.class.to_s}).not_to eq(true), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
109
|
-
elsif ((type != 'boolean') || (type != 'bool')) && (type != nil)
|
110
|
-
expect(datatype(type, value)).not_to eq(@resp.class), lambda {"[key]: \"#{data[:key]}\"".blue + "\n datatype shouldn't be \n[type]: \"#{data[:type]}\"\n"}
|
111
|
-
end
|
142
|
+
# is empty validation
|
143
|
+
validate_empty(empty, data) if empty != nil
|
112
144
|
|
113
|
-
|
114
|
-
|
115
|
-
expect(@resp.count.to_s).not_to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size should not contain #{size}"+ "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "expected size not to contain: #{size}".green}
|
116
|
-
rescue NoMethodError
|
117
|
-
expect(0.to_s).not_to include(size.to_s), lambda {"[key]: \"#{data[:key]} => #{@resp}\"".blue + "\n"+ "size should not contain #{size}"+ "\n\n" + "[ actual size ]: 0" + "\n" + "expected size not to contain: #{size}".green}
|
118
|
-
end
|
145
|
+
else
|
146
|
+
raise('operator not matching')
|
119
147
|
end
|
120
148
|
|
149
|
+
elsif ((size != nil) || (empty != nil)) && operator.nil?
|
150
|
+
validate_empty(empty, data) if empty != nil
|
151
|
+
validate_size(size, data) if size != nil
|
152
|
+
|
121
153
|
else
|
122
|
-
raise('
|
154
|
+
raise('invalid validation fields')
|
123
155
|
end
|
124
156
|
end
|
157
|
+
|
158
|
+
end
|
159
|
+
|
160
|
+
def validate_size(size, data)
|
161
|
+
begin
|
162
|
+
expect(size).to eq(@resp.count), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size didn't match" + "\n\n" + "[ actual size ]: #{@resp.count}" + "\n" + "[expected size]: #{size}".green}
|
163
|
+
rescue NoMethodError
|
164
|
+
expect(size).to eq(0), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size didn't match" + "\n\n" + "[ actual size ]: 0" + "\n" + "[expected size]: #{size}".green}
|
165
|
+
rescue ArgumentError
|
166
|
+
expect(size).to eq(0), lambda {"[key]: \"#{data[:key]}\"".blue + "\n" + "size didn't match" + "\n\n" + "[ actual size ]: 0" + "\n" + "[expected size]: #{size}".green}
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
def validate_empty(empty, data)
|
171
|
+
case empty
|
172
|
+
when true
|
173
|
+
expect(@resp.empty?).to eq(empty), lambda {"[key]: \"#{data[:key]}\"".blue + "\n is not empty"+"\n"}
|
174
|
+
when false
|
175
|
+
expect(@resp.empty?).to eq(empty), lambda {"[key]: \"#{data[:key]}\"".blue + "\n is empty"+"\n"}
|
176
|
+
end
|
125
177
|
end
|
126
178
|
|
127
179
|
def validate_schema(param1, param2)
|
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.2
|
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-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|