Sha256: 07defb13ff1a53c434a15d7dce8bd8b389874851ae9571a44ec657209a08aac9
Contents?: true
Size: 1.71 KB
Versions: 1
Compression:
Stored size: 1.71 KB
Contents
require_relative "../share/compares_safely" # The Cabinet stores all thread-local state, so anything that goes here # is guaranteed by Mocktail to be local to the currently-running thread module Mocktail class Cabinet attr_writer :demonstration_in_progress attr_reader :calls, :stubbings, :unsatisfying_calls def initialize @compares_safely = ComparesSafely.new @doubles = [] @calls = [] @stubbings = [] @unsatisfying_calls = [] @demonstration_in_progress = false end def reset! @calls = [] @stubbings = [] @unsatisfying_calls = [] # Could cause an exception or prevent pollution—you decide! @demonstration_in_progress = false # note we don't reset doubles as they don't carry any # user-meaningful state on them, and clearing them on reset could result # in valid mocks being broken and stop working end def store_double(double) @doubles << double end def store_call(call) @calls << call end def store_stubbing(stubbing) @stubbings << stubbing end def store_unsatisfying_call(unsatisfying_call) @unsatisfying_calls << unsatisfying_call end def demonstration_in_progress? @demonstration_in_progress end def double_for_instance(thing) @doubles.find { |double| @compares_safely.compare(double.dry_instance, thing) } end def stubbings_for_double(double) @stubbings.select { |stubbing| @compares_safely.compare(stubbing.recording.double, double.dry_instance) } end def calls_for_double(double) @calls.select { |call| @compares_safely.compare(call.double, double.dry_instance) } end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mocktail-1.1.2 | lib/mocktail/value/cabinet.rb |