Class: JSONSchemer::Fuzz::PrimitiveType::String

Inherits:
Object
  • Object
show all
Defined in:
lib/json_schemer/fuzz/primitive_type/string.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/string.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.empty? ? [1] : generated_params
end

.keyword_to_class_mapObject



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

def keyword_to_class_map
  {
    "pattern" => JSONSchemer::Fuzz::Keyword::Pattern,
    "minLength" => JSONSchemer::Fuzz::Keyword::MinLength,
    "maxLength" => JSONSchemer::Fuzz::Keyword::MaxLength,
    "format" => JSONSchemer::Fuzz::Keyword::Format,
  }
end

.valid_param(attributes = {}) ⇒ Object



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

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

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

  generated_params.empty? ? "hoge" : generated_params.sample
end