Class: BlockGiven::Connectors::Stub
- Defined in:
- lib/block_given/connectors/stub.rb
Overview
In-memory connector for tests. Responses can be static values, sequences (consumed in order, last value repeats) or procs receiving the params.
stub = BlockGiven::Connectors::Stub.new(
"eth_blockNumber" => BlockGiven::Connectors::Stub.sequence("0x10", "0x11"),
"eth_call" => ->(params) { "0x" + "0" * 63 + "1" }
)
stub.calls # => [["eth_blockNumber", []], ...]
Defined Under Namespace
Classes: Sequence
Instance Attribute Summary collapse
-
#calls ⇒ Object
readonly
Returns the value of attribute calls.
Class Method Summary collapse
Instance Method Summary collapse
- #calls_for(method) ⇒ Object
-
#initialize(responses = {}, &handler) ⇒ Stub
constructor
A new instance of Stub.
- #request(method, params = [], chain: nil) ⇒ Object
- #reset! ⇒ Object
- #stub(method, value = nil, &block) ⇒ Object
Methods inherited from Base
Constructor Details
#initialize(responses = {}, &handler) ⇒ Stub
Returns a new instance of Stub.
28 29 30 31 32 33 34 |
# File 'lib/block_given/connectors/stub.rb', line 28 def initialize(responses = {}, &handler) super() @responses = {} @handler = handler @calls = [] responses.each { |method, value| stub(method, value) } end |
Instance Attribute Details
#calls ⇒ Object (readonly)
Returns the value of attribute calls.
26 27 28 |
# File 'lib/block_given/connectors/stub.rb', line 26 def calls @calls end |
Class Method Details
.sequence(*values) ⇒ Object
24 |
# File 'lib/block_given/connectors/stub.rb', line 24 def self.sequence(*values) = Sequence.new(values) |
Instance Method Details
#calls_for(method) ⇒ Object
49 |
# File 'lib/block_given/connectors/stub.rb', line 49 def calls_for(method) = calls.select { |(m, _)| m == method.to_s }.map(&:last) |
#request(method, params = [], chain: nil) ⇒ Object
41 42 43 44 45 46 47 |
# File 'lib/block_given/connectors/stub.rb', line 41 def request(method, params = [], chain: nil) @calls << [method.to_s, params] value = resolve(method.to_s, params, chain) raise value if value.is_a?(Exception) value end |
#reset! ⇒ Object
50 |
# File 'lib/block_given/connectors/stub.rb', line 50 def reset! = @calls.clear |
#stub(method, value = nil, &block) ⇒ Object
36 37 38 39 |
# File 'lib/block_given/connectors/stub.rb', line 36 def stub(method, value = nil, &block) @responses[method.to_s] = block || value self end |