diff options
author | Jérémy Zurcher <jeremy@asynk.ch> | 2012-05-08 23:44:27 +0200 |
---|---|---|
committer | Jérémy Zurcher <jeremy@asynk.ch> | 2012-05-08 23:44:27 +0200 |
commit | b1a00d554d32d3c96faaa127b51763fa224bdae6 (patch) | |
tree | f68f26273c289e976e0d76c264dbc16c0962f21f /spec/evendoors_spec.rb | |
parent | 565060421d086fdc8e5f58179b45181b11b5cd63 (diff) | |
download | edoors-ruby-b1a00d554d32d3c96faaa127b51763fa224bdae6.zip edoors-ruby-b1a00d554d32d3c96faaa127b51763fa224bdae6.tar.gz |
specs: cover basic Room methods
Diffstat (limited to 'spec/evendoors_spec.rb')
-rw-r--r-- | spec/evendoors_spec.rb | 51 |
1 files changed, 50 insertions, 1 deletions
diff --git a/spec/evendoors_spec.rb b/spec/evendoors_spec.rb index 51e193e..250a230 100644 --- a/spec/evendoors_spec.rb +++ b/spec/evendoors_spec.rb @@ -12,7 +12,11 @@ end require 'evendoors' # class Fake - attr_reader :p, :sp + attr_accessor :parent + attr_reader :p, :sp, :start, :stop + def name + "myname" + end def process_p p @p = p end @@ -27,6 +31,12 @@ class Fake end def add_spot p end + def start! + @start=true + end + def stop! + @stop=true + end end # describe EvenDoors do @@ -401,4 +411,43 @@ describe EvenDoors do # end # + describe EvenDoors::Board do + # + it "add_spot and add_link correctly" do + r0 = EvenDoors::Room.new 'room0', nil + d0 = EvenDoors::Door.new 'door0', r0 + lambda { EvenDoors::Door.new('door0', r0) }.should raise_error(EvenDoors::Exception) + lambda { r0.add_spot EvenDoors::Door.new('door1', r0) }.should raise_error(EvenDoors::Exception) + r0.add_link EvenDoors::Link.new 'door0', 'somewhere' + lambda { r0.add_link(EvenDoors::Link.new('nowhere', 'somewhere')) }.should raise_error(EvenDoors::Exception) + end + # + it "start! and stop! should work" do + r0 = EvenDoors::Room.new 'room0', nil + d0 = Fake.new + r0.add_spot d0 + d0.start.should be_nil + d0.stop.should be_nil + r0.start! + d0.start.should be_true + d0.stop.should be_nil + r0.stop! + d0.start.should be_true + d0.stop.should be_true + end + # + it "parent and space should be ok" do + s = EvenDoors::Space.new 'space' + r0 = EvenDoors::Room.new 'r0', s + r1 = EvenDoors::Room.new 'r0', r0 + r2 = EvenDoors::Room.new 'r0', r1 + r2.parent.should be r1 + r1.parent.should be r0 + r0.parent.should be s + r0.space.should be s + r1.space.should be s + r2.space.should be s + end + # + end end |