@@ -25,6 +25,9 @@ def initialize consumer_contract_details, logger
25
25
@pactfile_write_mode = ( consumer_contract_details [ :pactfile_write_mode ] || :overwrite ) . to_sym
26
26
@interactions = consumer_contract_details . fetch ( :interactions )
27
27
@pact_specification_version = ( consumer_contract_details [ :pact_specification_version ] || DEFAULT_PACT_SPECIFICATION_VERSION ) . to_s
28
+ @consumer_contract_decorator_class = consumer_contract_details [ :consumer_contract_decorator_class ] || Pact ::ConsumerContractDecorator
29
+ @error_stream = consumer_contract_details [ :error_stream ] || Pact . configuration . error_stream
30
+ @output_stream = consumer_contract_details [ :output_stream ] || Pact . configuration . output_stream
28
31
end
29
32
30
33
def consumer_contract
@@ -45,7 +48,8 @@ def can_write?
45
48
46
49
private
47
50
48
- attr_reader :consumer_contract_details , :pactfile_write_mode , :interactions , :logger , :pact_specification_version
51
+ attr_reader :consumer_contract_details , :pactfile_write_mode , :interactions , :logger , :pact_specification_version , :consumer_contract_decorator_class
52
+ attr_reader :error_stream , :output_stream
49
53
50
54
def update_pactfile_if_needed
51
55
return if pactfile_write_mode == :none
@@ -68,7 +72,7 @@ def pact_json
68
72
end
69
73
70
74
def decorated_pact
71
- @decorated_pact ||= Pact :: ConsumerContractDecorator . new ( consumer_contract , pact_specification_version : pact_specification_version )
75
+ @decorated_pact ||= consumer_contract_decorator_class . new ( consumer_contract , pact_specification_version : pact_specification_version )
72
76
end
73
77
74
78
def interactions_for_new_consumer_contract
@@ -111,12 +115,12 @@ def existing_consumer_contract
111
115
end
112
116
113
117
def warn_and_stderr msg
114
- Pact . configuration . error_stream . puts msg
118
+ error_stream . puts msg
115
119
logger . warn msg
116
120
end
117
121
118
122
def info_and_puts msg
119
- $stdout . puts msg
123
+ output_stream . puts msg
120
124
logger . info msg
121
125
end
122
126
0 commit comments