Sha256: 60b96fa41a6dbc2f8b07021eace2c08575fe5925fd7d8128f31c6d2b67718c2b
Contents?: true
Size: 1.8 KB
Versions: 1
Compression:
Stored size: 1.8 KB
Contents
require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') describe Ray::DSL do before :each do @runner = Ray::DSL::EventRunner.new @obj = Object.new @obj.extend Ray::DSL::EventListener @obj.extend Ray::DSL::EventRaiser @obj.extend Ray::Matchers @obj.listener_runner = @runner @obj.raiser_runner = @runner end it "should send events with the same arguments and name as in #on" do count = 0 @obj.on :right_event, "danger", "bar" do |*args| args.should == ["danger", "bar"] count += 1 end [:right_event, :wrong_event].each do |name| @obj.raise_event(name) @obj.raise_event(name, "bar") @obj.raise_event(name, "danger") @obj.raise_event(name, "danger", "bar") end @runner.run count.should == 1 end it "should use === to see if an event can be raised" do true_matcher = mock('true_matcher') true_matcher.should_receive(:===).and_return(true) false_matcher = mock('false_matcher') false_matcher.should_receive(:===).and_return(false) worked = nil @obj.on :event, true_matcher do worked.should_not == false worked = true end @obj.on :event, false_matcher do worked = false end @obj.raise_event(:event, :argument) @runner.run worked.should be_true end it "should pass the arguments of the event to the block" do @obj.on :foo do |*args| args.should == ["a", "b", "c"] end @obj.raise_event(:foo, "a", "b", "c") @runner.run end it "should send events with more arguments than #on if they match" do count = 0 @obj.on :foo do count += 1 end @obj.raise_event(:foo, "blabla") @obj.raise_event(:foo) @obj.raise_event(:foo, :error, 3, "read") @runner.run count.should == 3 end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
ray-0.0.1 | spec/ray/event_spec.rb |