lib/mockserver/model/request.rb in mockserver-client-1.0.4 vs lib/mockserver/model/request.rb in mockserver-client-1.0.6.pre

- old
+ new

@@ -1,11 +1,11 @@ # encoding: UTF-8 require 'hashie' require_relative './parameter' require_relative './body' require_relative './enum' - +require 'base64' # # A class to model a request in an expectation. # @author:: Nayyara Samuel (mailto: nayyara.samuel@opower.com) # module MockServer::Model @@ -15,11 +15,11 @@ [:GET, :POST, :PUT, :DELETE] end end # Request model - class Request < Hashie::Dash + class Request < Hashie::Trash include Hashie::Extensions::MethodAccess include Hashie::Extensions::IgnoreUndeclared include Hashie::Extensions::Coercion ALLOWED_METHODS = [:GET, :POST, :PUT, :DELETE] @@ -27,10 +27,14 @@ 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 + property :body, transform_with: (lambda do |body| + is_base_64_body = body && body.type == :BINARY + body_value = is_base_64_body ? Base64.decode64(body.value) : body.value + Body.new(type: :STRING, value: body_value) + end) coerce_key :method, HTTPMethod coerce_key :path, String coerce_key :query_parameters, Parameters coerce_key :cookies, Parameters