Class: Pact::Consumer::InteractionList

Inherits:
Object
  • Object
show all
Defined in:
lib/pact/consumer/mock_service/interaction_list.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeInteractionList



9
10
11
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 9

def initialize
  clear
end

Instance Attribute Details

#interaction_mismatchesObject (readonly)

Returns the value of attribute interaction_mismatches.



7
8
9
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 7

def interaction_mismatches
  @interaction_mismatches
end

#interactionsObject (readonly)

Returns the value of attribute interactions.



5
6
7
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 5

def interactions
  @interactions
end

#unexpected_requestsObject (readonly)

Returns the value of attribute unexpected_requests.



6
7
8
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 6

def unexpected_requests
  @unexpected_requests
end

Instance Method Details

#add(interactions) ⇒ Object



21
22
23
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 21

def add interactions
  @interactions << interactions
end

#all_matched?Boolean



37
38
39
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 37

def all_matched?
  interaction_diffs.empty?
end

#clearObject

For testing, sigh



14
15
16
17
18
19
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 14

def clear
  @interactions = []
  @matched_interactions = []
  @interaction_mismatches = []
  @unexpected_requests = []
end

#find_candidate_interactions(actual_request) ⇒ Object



68
69
70
71
72
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 68

def find_candidate_interactions actual_request
  interactions.select do | interaction |
    interaction.request.matches_route? actual_request
  end
end

#interaction_diffsObject



57
58
59
60
61
62
63
64
65
66
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 57

def interaction_diffs
  {
    :missing_interactions => missing_interactions_summaries,
    :interaction_mismatches => interaction_mismatches_summaries,
    :unexpected_requests => unexpected_requests_summaries
  }.inject({}) do | hash, pair |
    hash[pair.first] = pair.last if pair.last.any?
    hash
  end
end

#interaction_mismatches_summariesObject



49
50
51
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 49

def interaction_mismatches_summaries
  interaction_mismatches.collect(&:short_summary)
end

#missing_interactionsObject



41
42
43
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 41

def missing_interactions
  @interactions - @matched_interactions - @interaction_mismatches.collect(&:candidate_interactions).flatten
end

#missing_interactions_summariesObject



45
46
47
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 45

def missing_interactions_summaries
  missing_interactions.collect(&:request).collect(&:method_and_path)
end

#register_interaction_mismatch(interaction_mismatch) ⇒ Object



33
34
35
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 33

def register_interaction_mismatch interaction_mismatch
  @interaction_mismatches << interaction_mismatch
end

#register_matched(interaction) ⇒ Object



25
26
27
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 25

def register_matched interaction
  @matched_interactions << interaction
end

#register_unexpected_request(request) ⇒ Object



29
30
31
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 29

def register_unexpected_request request
  @unexpected_requests << request
end

#unexpected_requests_summariesObject



53
54
55
# File 'lib/pact/consumer/mock_service/interaction_list.rb', line 53

def unexpected_requests_summaries
  unexpected_requests.collect(&:method_and_path)
end