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