Sha256: f2ac2de02ff380c5c804d335934b360662764b3dad8c896e469ce19003fde426

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

require 'api-tester/definition/boundary_case'

module ApiTester
  class Request
    attr_accessor :definition
    attr_accessor :headers
    attr_accessor :fields

    def initialize
      self.fields = []
    end

    def add_field(new_field)
      self.fields << new_field
      self
    end

    def payload
      response = Hash.new
      self.fields.each do |field|
        response[field.name] = field.default_value
      end
      response
    end

    def default_payload
      payload
    end

    def default_headers
      {content_type: :json, accept: :json}
    end

    def cases
      boundary_cases = Array.new
      self.fields.each do |field|
        field.negative_boundary_values.each do |value|
          bcase = BoundaryCase.new("Setting #{field.name} to #{value}", altered_payload(field.name, value), default_headers)
          boundary_cases.push(bcase)
        end
      end
      boundary_cases
    end

    def altered_payload field_name, value
      body = payload
      body[field_name] = value
      body
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
api-tester-0.3.0 lib/api-tester/definition/request.rb
api-tester-0.2.0 lib/api-tester/definition/request.rb