Class: JSONSchemer::Fuzz::PrimitiveType::Object

Inherits:
Object
  • Object
show all
Defined in:
lib/json_schemer/fuzz/primitive_type/object.rb

Class Method Summary collapse

Class Method Details

.invalid_params(attributes) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/json_schemer/fuzz/primitive_type/object.rb', line 6

def invalid_params(attributes)
  generated_params = []

  if type = attributes["type"]
    valid_types = [type].flatten
    JSONSchemer::Fuzz::PrimitiveType.invalid_params_by_type(attributes).each do |invalid_param|
      generated_params.push(invalid_param)
    end
  end

  attributes.each do |keyword, attribute|
    if klass = keyword_to_class_map[keyword]
      klass.invalid_params(attributes).each do |invalid_param|
        generated_params << invalid_param
      end
    end
  end

  generated_params
end

.keyword_to_class_mapObject



39
40
41
42
43
44
45
46
47
48
49
# File 'lib/json_schemer/fuzz/primitive_type/object.rb', line 39

def keyword_to_class_map
  {
    "members" => JSONSchemer::Fuzz::Keyword::Properties,
    "properties" => JSONSchemer::Fuzz::Keyword::Properties,
    "required" => JSONSchemer::Fuzz::Keyword::Required,
    "minProperties" => JSONSchemer::Fuzz::Keyword::MinProperties,
    "maxProperties" => JSONSchemer::Fuzz::Keyword::MaxProperties,
    "additionalProperties" => JSONSchemer::Fuzz::Keyword::AdditionalProperties,
    "dependencies" => JSONSchemer::Fuzz::Keyword::Dependencies,
  }
end

.valid_param(attributes = {}) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
# File 'lib/json_schemer/fuzz/primitive_type/object.rb', line 27

def valid_param(attributes = {})
  generated_params = {}

  attributes.each do |keyword, attribute|
    if klass = keyword_to_class_map[keyword]
      generated_params.merge!(klass.valid_param(attributes))
    end
  end

  generated_params
end