jacius / rebirth

High-level game framework, built on Rubygame & OpenGL. (On hold)

This URL has Read+Write access

jacius (author)
Wed Feb 25 22:56:58 -0800 2009
commit  5aaeedc86182aecbff26ed71178805826127bd08
tree    8c79ccecc4ecf93d65e5af486064880b084de9a8
parent  ef6da6925979b82eaf4cd3f7095ec16f5ec7b20a
rebirth / spec / event_manager_spec.rb
100644 50 lines (34 sloc) 0.995 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# Prefer local library over installed version.
$:.unshift( File.join( File.dirname(__FILE__), "..", "lib" ) )
 
require 'rebirth'
include Rebirth
 
HasEventHandler = Rubygame::EventHandler::HasEventHandler
 
include Rubygame::EventTriggers
include Rubygame::EventActions
 
 
# Monkeypatch to allow resetting EventManager.
class EventManager
  def self.reset
    @@instance = new
    return nil
  end
end
 
 
describe EventManager do
  
  before :each do
    EventManager.reset
    @evm = EventManager.instance
  end
 
  it "should be a singleton class" do
    @evm.should be_kind_of(Singleton)
  end
 
  it "should accept pushed events" do
    lambda { @evm.push(:myevent) }.should_not raise_error
  end
 
  it "should have event handler" do
    @evm.should be_kind_of(HasEventHandler)
  end
 
  it "should handle queued events on update" do
    @evm.make_magic_hooks( YesTrigger.new => proc{ throw :handled } )
    @evm.push(:myevent)
 
    lambda { @evm.update }.should throw_symbol(:handled)
  end
 
end