Class: JSON::Fuzz::Generator::Keyword::OneOf
- Inherits:
-
Object
- Object
- JSON::Fuzz::Generator::Keyword::OneOf
- Defined in:
- lib/json/fuzz/generator/keyword/one_of.rb
Class Method Summary collapse
Class Method Details
.invalid_params(attributes) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/json/fuzz/generator/keyword/one_of.rb', line 7 def invalid_params(attributes) one_of = attributes["oneOf"] raise "No oneOf keyword given: #{attributes}" unless one_of generated_params = [] one_of.each do |schema| temp_params = JSON::Fuzz::Generator.generate(schema).reject do |param| ::JSON::Validator.validate(attributes, param) end temp_params.each {|e| generated_params << e} end raise "failed to generate invalid_params for schema: #{attributes}" if generated_params.empty? generated_params.uniq end |
.valid_param(attributes) ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/json/fuzz/generator/keyword/one_of.rb', line 24 def valid_param(attributes) one_of = attributes["oneOf"] raise "No oneOf keyword given: #{attributes}" unless one_of generated_params = [] one_of.each do |schema| temp_params = JSON::Fuzz::Generator.generate(schema).select do |param| ::JSON::Validator.validate(attributes, param) end temp_params.each {|e| generated_params << e} end raise "failed to generate invalid_params for schema: #{attributes}" if generated_params.empty? generated_params.uniq.sample end |