Created
September 14, 2009 02:49
-
-
Save jaymcgavren/186461 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require 'spec_helper' | |
require 'managers/basic_game_object_manager' | |
describe 'BasicGameObjectManager' do | |
before :each do | |
@state = Jemini::BaseState.new(mock('Container', :null_object => true), mock('Game', :null_object => true)) | |
@manager = BasicGameObjectManager.new(@state) | |
@state.send(:set_manager, :game_object, @manager) | |
end | |
it "tracks objects added to state" do | |
object = @state.create :GameObject | |
@manager.game_objects.should include(object) | |
end | |
describe "#remove_game_object" do | |
it "calls unload on an object when removing it" do | |
object = @state.create :GameObject, :ReceivesEvents | |
object.on_remove_game_object :before | |
# NoMethodError in 'BasicGameObjectManager#remove_game_object calls unload on an object when removing it' | |
# undefined method `on_remove_game_object' for #<Jemini::GameObject:0x7c3cfaab> | |
object.should_recieve(:before).ordered | |
object.should_receive(:unload).ordered | |
@manager.remove_game_object(object) | |
end | |
it "triggers before and after callbacks for removal" | |
it "deletes all behaviors on an object after removing it" | |
it "removes all listeners on an object after removing it" | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment