Class: JSON::Fuzz::Generator::Keyword::UniqueItems

Inherits:
Object
  • Object
show all
Defined in:
lib/json/fuzz/generator/keyword/unique_items.rb

Class Method Summary collapse

Class Method Details

.invalid_params(attributes) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/json/fuzz/generator/keyword/unique_items.rb', line 7

def invalid_params(attributes)
  unique_items_flag = attributes["uniqueItems"]
  raise "No uniqueItems keyword given: #{attributes}" if unique_items_flag.nil?
  return unless unique_items_flag 

  generated_params = []
  template = valid_param(attributes)
  template << template.sample
  generated_params << template 
  
  generated_params
end

.valid_param(attributes) ⇒ Object



20
21
22
23
24
25
26
27
# File 'lib/json/fuzz/generator/keyword/unique_items.rb', line 20

def valid_param(attributes)
  attributes = Marshal.load(Marshal.dump(attributes))
  unique_items_flag = attributes.delete("uniqueItems")
  raise "No uniqueItems keyword given: #{attributes}" if unique_items_flag.nil?
  return unless unique_items_flag 
  
  JSON::Fuzz::Generator.generators("array").valid_param(attributes).uniq
end