Sha256: 2d199acb43d5e801a82a545345f7e62b9777464eef4591e0d2974c505aab787d

Contents?: true

Size: 1.33 KB

Versions: 9

Compression:

Stored size: 1.33 KB

Contents

# encoding: UTF-8
require 'hashie'
require_relative './parameter'
require_relative './body'
require_relative './enum'

#
# A class to model a request in an expectation.
# @author:: Nayyara Samuel (mailto: nayyara.samuel@opower.com)
#
module MockServer::Model
  # Enum for HTTP methods
  class HTTPMethod < SymbolizedEnum
    def allowed_values
      [:GET, :POST, :PUT, :DELETE]
    end
  end

  # Request model
  class Request < Hashie::Dash
    include Hashie::Extensions::MethodAccess
    include Hashie::Extensions::IgnoreUndeclared
    include Hashie::Extensions::Coercion

    ALLOWED_METHODS = [:GET, :POST, :PUT, :DELETE]

    property :method, required: true, default: :GET
    property :path, required: true, default: ''
    property :query_parameters, default: Parameters.new([])
    property :cookies, default: Parameters.new([])
    property :headers, default: Parameters.new([])
    property :body

    coerce_key :method, HTTPMethod
    coerce_key :path, String
    coerce_key :query_parameters, Parameters
    coerce_key :cookies, Parameters
    coerce_key :headers, Parameters
    coerce_key :body, Body
  end

  # DSL methods related to requests
  module DSL
    def request(method, path, &_)
      obj = Request.new(method: method, path: path)
      yield obj if block_given?
      obj
    end

    alias_method :http_request, :request
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
mockserver-client-1.0.4 lib/mockserver/model/request.rb
mockserver-client-1.0.3 lib/mockserver/model/request.rb
mockserver-client-1.0.2.pre lib/mockserver/model/request.rb
mockserver-client-1.0.1.pre lib/mockserver/model/request.rb
mockserver-client-1.0.1 lib/mockserver/model/request.rb
mockserver-client-1.0.0 lib/mockserver/model/request.rb
mockserver-client-1.0.0.pre lib/mockserver/model/request.rb
mockserver-client-0.0.3 lib/mockserver/model/request.rb
mockserver-client-0.0.1 lib/mockserver/model/request.rb