Class: JSONSchemer::Fuzz::PrimitiveType::Array

Inherits:
Object
  • Object
show all
Defined in:
lib/json_schemer/fuzz/primitive_type/array.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
# File 'lib/json_schemer/fuzz/primitive_type/array.rb', line 6

def invalid_params(attributes)
  generated_params = []

  if type = attributes["type"]
    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



38
39
40
41
42
43
44
45
# File 'lib/json_schemer/fuzz/primitive_type/array.rb', line 38

def keyword_to_class_map
  {
    "minItems" => JSONSchemer::Fuzz::Keyword::MinItems,
    "maxItems" => JSONSchemer::Fuzz::Keyword::MaxItems,
    "uniqueItems" => JSONSchemer::Fuzz::Keyword::UniqueItems,
    "items" => JSONSchemer::Fuzz::Keyword::Items,
  }
end

.valid_param(attributes = {}) ⇒ Object



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

def valid_param(attributes = {})
  valid_params = []

  attributes.each do |keyword, attribute|
    if klass = keyword_to_class_map[keyword]
      valid_params << klass.valid_param(attributes)
    end
  end

  valid_params.empty? ? ["sample", "array"] : valid_params.sample
end