fluke/devops-service/tests/features/step_definitions/json_steps.rb
amartynov b70165c3b4 \#780: done
fixed role name

new field validators

without validate fields types

fixed error with user parser

todo: project tests

returned  some tests, users fixed

some more tests: filters

images tests

network tests

keys tests

test generator

fixed run_list validator
2015-10-20 13:36:44 +03:00

81 lines
2.5 KiB
Ruby

Then(/^response array should contains elements like:$/) do |string|
src = JSON.parse(string)
array = JSON.parse(last_response.body)
array.each do |e|
src.each do |key, value|
assert e.key?(key), "Element #{e.inspect} has no key '#{key}'"
end
end
end
Then(/^response array should be empty$/) do
array = JSON.parse(last_response.body)
assert array.empty?, "Array is not empty"
end
Then(/^response object should be empty$/) do
obj = JSON.parse(last_response.body)
assert obj.empty?, "Object is not empty"
end
Then(/^the JSON response should be an array$/) do
body = JSON.parse(last_response.body)
assert body.is_a?(Array), "Body is not an array: #{last_response.body}"
end
Then(/^the JSON response should be an object$/) do
body = JSON.parse(last_response.body)
assert body.is_a?(Hash), "Body is not an object"
end
Then(/^the array elements should be strings$/) do
body = JSON.parse(last_response.body)
body.each do |e|
assert e.is_a?(String), "Array element is not a string"
end
end
Then(/^response should be JSON object like:$/) do |string|
src = JSON.parse(string)
obj = JSON.parse(last_response.body)
src.each do |key, value|
assert obj.key?(key), "Object has no key '#{key}'"
end
end
Then(/^the array should contains strings '(.*)'$/) do |string|
buf = string.split(",").map(&:strip)
array = JSON.parse(last_response.body)
res = buf - array
assert res.empty?, "Response has no strings '#{res.join("', '")}'"
end
Then(/^the array should not contains strings '(.*)'$/) do |string|
buf = string.split(",").map(&:strip)
array = JSON.parse(last_response.body)
buf.each do |v|
assert !array.include?(v), "Array should not contains '#{v}'"
end
end
Then(/^the object should contains key '(.*)' with array and array should contains strings '(.*)'$/) do |key, string|
buf = string.split(",")
obj = JSON.parse(last_response.body)
assert obj.key?(key), "Object should has a key '#{key}'"
assert obj[key].is_a?(Array), "Object should has an array '#{key}'"
buf.each do |v|
assert obj[key].include?(v), "'#{key}' array should contains '#{v}'"
end
end
Then(/^the object should contains key '(.*)' with array and array should not contains strings '(.*)'$/) do |key, string|
buf = string.split(",")
obj = JSON.parse(last_response.body)
assert obj.key?(key), "Object should has a key '#{key}'"
assert obj[key].is_a?(Array), "Object should has an array '#{key}'"
buf.each do |v|
assert !obj[key].include?(v), "'#{key}' array should not contains '#{v}'"
end
end