class Pact::Message::Consumer::InteractionDecorator

Attributes

message[R]

Public Class Methods

new(message, decorator_options = {}) click to toggle source
# File lib/pact/message/consumer/interaction_decorator.rb, line 10
def initialize message, decorator_options = {}
  @message = message
  @decorator_options = decorator_options
end

Public Instance Methods

as_json(options = {}) click to toggle source
# File lib/pact/message/consumer/interaction_decorator.rb, line 15
def as_json options = {}
  hash = { :description => message.description }
  hash[:providerStates] = provider_states
  hash[:contents] = extract_contents
  hash[:matchingRules] = extract_matching_rules
  if message.metadata
    hash[:metaData] = message.metadata
  end
  fix_all_the_things hash
end
to_json(options = {}) click to toggle source
# File lib/pact/message/consumer/interaction_decorator.rb, line 26
def to_json(options = {})
  as_json(options).to_json(options)
end

Private Instance Methods

decorate_contents() click to toggle source
# File lib/pact/message/consumer/interaction_decorator.rb, line 34
def decorate_contents
  message.contents.as_json
end
extract_contents() click to toggle source
# File lib/pact/message/consumer/interaction_decorator.rb, line 38
def extract_contents
  Pact::Reification.from_term(message.contents.contents)
end
extract_matching_rules() click to toggle source
# File lib/pact/message/consumer/interaction_decorator.rb, line 46
def extract_matching_rules
  body_matching_rules = Pact::MatchingRules.extract(message.contents.contents, pact_specification_version: pact_specification_version)
  if body_matching_rules.any?
    {
      body: body_matching_rules
    }
  else
    {}
  end
end
pact_specification_version() click to toggle source
# File lib/pact/message/consumer/interaction_decorator.rb, line 57
def pact_specification_version
  Pact::SpecificationVersion.new(@decorator_options[:pact_specification_version])
end
provider_states() click to toggle source
# File lib/pact/message/consumer/interaction_decorator.rb, line 42
def provider_states
  message.provider_states.collect(&:as_json)
end