Sha256: 382be1445a4d3212eae68922bb5f3ba04e5bea73d15802d37fd858b19e382033

Contents?: true

Size: 1.22 KB

Versions: 6

Compression:

Stored size: 1.22 KB

Contents

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

#
# A model for a a body in a request object.
# @author: Nayyara Samuel (mailto: nayyara.samuel@opower.com)
#
module MockServer::Model
  # An enum for body type
  class BodyType < SymbolizedEnum
    def allowed_values
      [:STRING, :REGEX, :XPATH, :PARAMETERS, :BINARY]
    end
  end

  # A model for a a body in a request object.
  class Body < Hashie::Dash
    include Hashie::Extensions::MethodAccess
    include Hashie::Extensions::IgnoreUndeclared
    include Hashie::Extensions::Coercion

    property :type, required: true
    property :value
    property :parameters

    coerce_key :type, BodyType
    coerce_key :value, String
    coerce_key :parameters, Parameters
  end

  # DSL methods related to body
  module DSL
    # For response object where body can only be a string
    def body(value)
      value
    end

    def exact(value)
      Body.new(type: :STRING, value: value)
    end

    def regex(value)
      Body.new(type: :REGEX, value: value)
    end

    def xpath(value)
      Body.new(type: :XPATH, value: value)
    end

    def parameterized(*parameters)
      Body.new(type: :PARAMETERS, parameters: parameters)
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
flipp-mockserver-client-0.1.0 lib/mockserver/model/body.rb
mockserver-client-1.0.8.pre lib/mockserver/model/body.rb
mockserver-client-1.0.7 lib/mockserver/model/body.rb
mockserver-client-1.0.7.pre lib/mockserver/model/body.rb
mockserver-client-1.0.6 lib/mockserver/model/body.rb
mockserver-client-1.0.6.pre lib/mockserver/model/body.rb