Sha256: f1d2eaedd62719ff1565e8ecdec86d854fc7b3e8a030cab9dcb38d8f31295e94
Contents?: true
Size: 1.09 KB
Versions: 7
Compression:
Stored size: 1.09 KB
Contents
module Caricature class Isolation class << self # Creates an isolation object complete with proxy and method call recorder # It works out which isolation it needs to create and provide and initializes the # method call recorder def for(subject, recorder = MethodCallRecorder.new, expectations = Expectations.new) context = IsolatorContext.new subject, recorder, expectations isolation_strategy = subject.is_clr_type? ? get_clr_isolation_strategy(subject) : RubyIsolator isolator = isolation_strategy.for context isolation = new(isolator, context) isolator.isolation end private # decides which startegy to use for mocking a CLR object. # When the provided subject is an interface it will return a +ClrInterfaceIsolator+ # otherwise it will return a +ClrIsolator+ def get_clr_isolation_strategy(subject) return ClrInterfaceIsolator if subject.respond_to? :class_eval and !subject.respond_to? :new ClrIsolator end end end end
Version data entries
7 entries across 7 versions & 2 rubygems