Sha256: 741c59e8f480491b436ce694776463aec056609e9378e888e40f52d579496073

Contents?: true

Size: 762 Bytes

Versions: 1

Compression:

Stored size: 762 Bytes

Contents

# frozen_string_literal: true

require 'api-tester/definition/fields/field'

module ApiTester
  # Class for defining objects in a contract
  class ObjectField < Field
    attr_accessor :fields

    def initialize(name:, required: false)
      super name: name, required: required
      self.fields = []
    end

    def with_field(new_field)
      fields << new_field
      self
    end

    def subfields?
      true
    end

    def default_value
      obj = {}

      fields.each do |field|
        obj[field.name] = field.default_value
      end

      obj
    end

    def negative_boundary_values
      super +
        [
          'string',
          [],
          123,
          1,
          0,
          true,
          false
        ]
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
api-tester-1.1.1 lib/api-tester/definition/fields/object_field.rb