Class: JSON::Fuzz::Generator::Keyword::Dependencies

Inherits:
Object
  • Object
show all
Defined in:
lib/json/fuzz/generator/keyword/dependencies.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
23
24
# File 'lib/json/fuzz/generator/keyword/dependencies.rb', line 7

def invalid_params(attributes)
  attributes = Marshal.load(Marshal.dump(attributes))
  dependencies = attributes.delete("dependencies")
  raise "No dependencies keyword given: #{attributes}" unless dependencies

  generated_params = []
  template = JSON::Fuzz::Generator.default_param(attributes)
  
  dependencies.each do |key, dependency|
    dependency.each do |required_key|
      invalid_param = Marshal.load(Marshal.dump(template))
      invalid_param.delete(required_key)
      generated_params << invalid_param
    end
  end

  generated_params
end

.valid_param(attributes) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/json/fuzz/generator/keyword/dependencies.rb', line 26

def valid_param(attributes)
  attributes = Marshal.load(Marshal.dump(attributes))
  dependencies = attributes.delete("dependencies")
  raise "No dependencies keyword given: #{attributes}" unless dependencies
  
  generated_params = []

  dependencies.each do |key, dependency|
    template = JSON::Fuzz::Generator.default_param(attributes)
    template[key] = "hoge" if template.keys.size == 0
    dependency.each do |required_key|
      template.merge!(required_key => template[template.keys.sample]) unless template.key?(required_key)
      generated_params << template
    end
  end

  generated_params.sample
end