lib/caricature/clr/expectation.rb in caricature-0.7.5 vs lib/caricature/clr/expectation.rb in caricature-0.7.6

- old
+ new

@@ -1,101 +1,101 @@ -module Caricature - - # Syntax for the expectation builder and expectation - # to define an event on the expectation. - module EventExpectationSyntax - - # tell the expectation it needs to raise an event when this method is called - def raise_event(name, *ags, &b) - collected.merge!(:event_name => name, :event_args => ags, :event_handler => b) - self - end - - # raises the events that has been registered on the object at runtime - def raise_subscriptions - collected[:raise_subscriptions] = true - self - end - - end - - - # Adds event support to the expectation - # this is only applicable to clr isolations and not - # to ruby isolations - class Expectation - - include EventExpectationSyntax - - - - # the block that will be used - def event_name - collected[:event_name] - end - - # the arguments that will be used for the event - def event_args - evt_ags = collected[:event_args] - evt_ags.nil? or evt_ags.empty? ? [nil, System::EventArgs.empty] : evt_ags - end - - # the block that will be used# the block that will be used - def event_handler - collected[:event_handler] || lambda { |s,e| } - end - - # the events attached to the context - def events - collected[:events] ||= {} - end - - # Set the registered events for this expectation - def events=(evts) - collected[:events]=evts - end - - # indicates whether this expectation has an event that needs to be raised - def raises_event? - !!collected[:event_name] - end - - # indicates whether this expectation has an event handler to be called - def has_event_handler? - !!collected[:event_handler] - end - - # indicates whether to raise the registered event handlers - def raises_registered? - !!collected[:raise_subscriptions] - end - - def event_recorder(&b) - @event_recorder = b - end - - def to_s #:nodoc: - "<Caricature::Expecation, method_name: #{method_name}, args: #{args}, error args: #{error_args}, event: #{event_name}>" - end - alias :inspect :to_s - - private - - def do_event_raise #:nodoc: - return unless @event_recorder - @event_recorder.call event_name, event_args, event_handler - return unless raises_event? - - ags = event_args - event_handler.call *ags if has_event_handler? - - return unless raises_registered? or not has_event_handler? - events[event_name].each { |evt| call_handler evt, *ags } - end - - def call_handler(evt, *ags) - evt.respond_to?(:call) ? evt.call(*ags) : evt.get_invocation_list.each{|ev| ev.invoke(*ags) } - end - end - - ExpectationBuilder.send :include, EventExpectationSyntax +module Caricature + + # Syntax for the expectation builder and expectation + # to define an event on the expectation. + module EventExpectationSyntax + + # tell the expectation it needs to raise an event when this method is called + def raise_event(name, *ags, &b) + collected.merge!(:event_name => name, :event_args => ags, :event_handler => b) + self + end + + # raises the events that has been registered on the object at runtime + def raise_subscriptions + collected[:raise_subscriptions] = true + self + end + + end + + + # Adds event support to the expectation + # this is only applicable to clr isolations and not + # to ruby isolations + class Expectation + + include EventExpectationSyntax + + + + # the block that will be used + def event_name + collected[:event_name] + end + + # the arguments that will be used for the event + def event_args + evt_ags = collected[:event_args] + evt_ags.nil? or evt_ags.empty? ? [nil, System::EventArgs.empty] : evt_ags + end + + # the block that will be used# the block that will be used + def event_handler + collected[:event_handler] || lambda { |s,e| } + end + + # the events attached to the context + def events + collected[:events] ||= {} + end + + # Set the registered events for this expectation + def events=(evts) + collected[:events]=evts + end + + # indicates whether this expectation has an event that needs to be raised + def raises_event? + !!collected[:event_name] + end + + # indicates whether this expectation has an event handler to be called + def has_event_handler? + !!collected[:event_handler] + end + + # indicates whether to raise the registered event handlers + def raises_registered? + !!collected[:raise_subscriptions] + end + + def event_recorder(&b) + @event_recorder = b + end + + def to_s #:nodoc: + "<Caricature::Expecation, method_name: #{method_name}, args: #{args}, error args: #{error_args}, event: #{event_name}>" + end + alias :inspect :to_s + + private + + def do_event_raise #:nodoc: + return unless @event_recorder + @event_recorder.call event_name, event_args, event_handler + return unless raises_event? + + ags = event_args + event_handler.call *ags if has_event_handler? + + return unless raises_registered? or not has_event_handler? + events[event_name].each { |evt| call_handler evt, *ags } + end + + def call_handler(evt, *ags) + evt.respond_to?(:call) ? evt.call(*ags) : evt.get_invocation_list.each{|ev| ev.invoke(*ags) } + end + end + + ExpectationBuilder.send :include, EventExpectationSyntax end \ No newline at end of file