7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
# File 'lib/json/fuzz/generator/keyword/items.rb', line 7
def invalid_params(attributes)
attributes = Marshal.load(Marshal.dump(attributes))
items = attributes.delete("items")
raise "No items keyword given: #{attributes}" unless items
generated_params = []
if items.instance_of?(Hash)
invalid_param = []
JSON::Fuzz::Generator.generate(items).each do |invalid_item|
invalid_param << invalid_item
end
generated_params << invalid_param
else
invalid_param = []
items.each do |item|
JSON::Fuzz::Generator.generate(item).each do |invalid_item|
invalid_param << invalid_item
end
end
generated_params << invalid_param
end
if attributes.key?("additionalItems")
additional_items = attributes.delete("additionalItems")
template = valid_param(attributes.merge("items" => items))
if additional_items
template << JSON::Fuzz::Generator.generate(additional_items).sample
generated_params << template
else
template << template.sample
generated_params << template
end
end
generated_params
end
|