summaryrefslogtreecommitdiffstats
path: root/spec/room_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/room_spec.rb')
-rw-r--r--spec/room_spec.rb230
1 files changed, 115 insertions, 115 deletions
diff --git a/spec/room_spec.rb b/spec/room_spec.rb
index c876204..06811a5 100644
--- a/spec/room_spec.rb
+++ b/spec/room_spec.rb
@@ -4,10 +4,10 @@
require 'spec_helper'
#
-describe EvenDoors::Room do
+describe Iotas::Room do
#
before (:all) do
- @spin = EvenDoors::Spin.new 'dom0'
+ @spin = Iotas::Spin.new 'dom0'
end
#
before(:each) do
@@ -15,16 +15,16 @@ describe EvenDoors::Room do
end
#
it "add_spot and add_link correctly" do
- r0 = EvenDoors::Room.new 'room0', @spin
- 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)
+ r0 = Iotas::Room.new 'room0', @spin
+ d0 = Iotas::Door.new 'door0', r0
+ lambda { Iotas::Door.new('door0', r0) }.should raise_error(Iotas::Exception)
+ lambda { r0.add_spot Iotas::Door.new('door1', r0) }.should raise_error(Iotas::Exception)
+ r0.add_link Iotas::Link.new 'door0', 'somewhere'
+ lambda { r0.add_link(Iotas::Link.new('nowhere', 'somewhere')) }.should raise_error(Iotas::Exception)
end
#
it "start! and stop! should work" do
- r0 = EvenDoors::Room.new 'room0', @spin
+ r0 = Iotas::Room.new 'room0', @spin
d0 = Fake.new 'fake', r0
d0.start.should be_nil
d0.stop.should be_nil
@@ -37,11 +37,11 @@ describe EvenDoors::Room do
end
#
it "parent, spin and search_down should be ok" do
- r0 = EvenDoors::Room.new 'r0', @spin
- r1 = EvenDoors::Room.new 'r1', r0
- r2 = EvenDoors::Room.new 'r2', r1
- r3 = EvenDoors::Room.new 'r3', @spin
- r4 = EvenDoors::Room.new 'r4', r3
+ r0 = Iotas::Room.new 'r0', @spin
+ r1 = Iotas::Room.new 'r1', r0
+ r2 = Iotas::Room.new 'r2', r1
+ r3 = Iotas::Room.new 'r3', @spin
+ r4 = Iotas::Room.new 'r4', r3
r2.parent.should be r1
r1.parent.should be r0
r0.parent.should be @spin
@@ -59,64 +59,64 @@ describe EvenDoors::Room do
end
#
it "route error: no source" do
- room = EvenDoors::Room.new 'room', @spin
- p = @spin.require_p EvenDoors::Particle
+ room = Iotas::Room.new 'room', @spin
+ p = @spin.require_p Iotas::Particle
p.set_dst! 'get', 'room/door'
room.send_p p
- p.action.should eql EvenDoors::ACT_ERROR
- p[EvenDoors::FIELD_ERROR_MSG].should eql EvenDoors::ERROR_ROUTE_NS
+ p.action.should eql Iotas::ACT_ERROR
+ p[Iotas::FIELD_ERROR_MSG].should eql Iotas::ERROR_ROUTE_NS
p.dst.should be room.spin
end
#
it "route error: no destination no links" do
- room = EvenDoors::Room.new 'room', @spin
- p = @spin.require_p EvenDoors::Particle
+ room = Iotas::Room.new 'room', @spin
+ p = @spin.require_p Iotas::Particle
p.src = Fake.new 'fake', @spin
room.send_p p
- p.action.should eql EvenDoors::ACT_ERROR
- p[EvenDoors::FIELD_ERROR_MSG].should eql EvenDoors::ERROR_ROUTE_NDNL
+ p.action.should eql Iotas::ACT_ERROR
+ p[Iotas::FIELD_ERROR_MSG].should eql Iotas::ERROR_ROUTE_NDNL
p.dst.should be p.src
end
#
it "route error: top room, wrong room" do
- room0 = EvenDoors::Room.new 'room0', @spin
- room1 = EvenDoors::Room.new 'room1', room0
- p = @spin.require_p EvenDoors::Particle
+ room0 = Iotas::Room.new 'room0', @spin
+ room1 = Iotas::Room.new 'room1', room0
+ p = @spin.require_p Iotas::Particle
p.src = Fake.new 'fake', @spin
p.set_dst! 'get', 'noroom/door'
room1.send_p p
- p.action.should eql EvenDoors::ACT_ERROR
- p[EvenDoors::FIELD_ERROR_MSG].should eql EvenDoors::ERROR_ROUTE_TRWR
+ p.action.should eql Iotas::ACT_ERROR
+ p[Iotas::FIELD_ERROR_MSG].should eql Iotas::ERROR_ROUTE_TRWR
p.dst.should be p.src
end
#
it "route error: right room, wrong door" do
- room = EvenDoors::Room.new 'room', @spin
- p = @spin.require_p EvenDoors::Particle
+ room = Iotas::Room.new 'room', @spin
+ p = @spin.require_p Iotas::Particle
p.src = Fake.new 'fake', @spin
p.set_dst! 'get', 'dom0/room/nodoor'
room.send_p p
- p.action.should eql EvenDoors::ACT_ERROR
- p[EvenDoors::FIELD_ERROR_MSG].should eql EvenDoors::ERROR_ROUTE_RRWD
+ p.action.should eql Iotas::ACT_ERROR
+ p[Iotas::FIELD_ERROR_MSG].should eql Iotas::ERROR_ROUTE_RRWD
p.dst.should be p.src
end
#
it "route error: right room, wrong door (bubble up)" do
- room0 = EvenDoors::Room.new 'room0', @spin
- room1 = EvenDoors::Room.new 'room1', room0
- p = @spin.require_p EvenDoors::Particle
+ room0 = Iotas::Room.new 'room0', @spin
+ room1 = Iotas::Room.new 'room1', room0
+ p = @spin.require_p Iotas::Particle
p.src = Fake.new 'fake', @spin
p.set_dst! 'get', 'dom0/room0/nodoor'
room1.send_p p
- p.action.should eql EvenDoors::ACT_ERROR
- p[EvenDoors::FIELD_ERROR_MSG].should eql EvenDoors::ERROR_ROUTE_RRWD
+ p.action.should eql Iotas::ACT_ERROR
+ p[Iotas::FIELD_ERROR_MSG].should eql Iotas::ERROR_ROUTE_RRWD
p.dst.should be p.src
end
#
it "routing success (direct)" do
- room0 = EvenDoors::Room.new 'room0', @spin
- door0 = EvenDoors::Door.new 'door0', room0
- p = @spin.require_p EvenDoors::Particle
+ room0 = Iotas::Room.new 'room0', @spin
+ door0 = Iotas::Door.new 'door0', room0
+ p = @spin.require_p Iotas::Particle
p.src = Fake.new 'fake', @spin
p.set_dst! 'get', 'door0'
room0.send_p p
@@ -125,10 +125,10 @@ describe EvenDoors::Room do
end
#
it "routing success (bubble up the direct door)" do
- room0 = EvenDoors::Room.new 'room0', @spin
- room1 = EvenDoors::Room.new 'room1', room0
- door0 = EvenDoors::Door.new 'door0', room0
- p = @spin.require_p EvenDoors::Particle
+ room0 = Iotas::Room.new 'room0', @spin
+ room1 = Iotas::Room.new 'room1', room0
+ door0 = Iotas::Door.new 'door0', room0
+ p = @spin.require_p Iotas::Particle
p.src = Fake.new 'fake', @spin
p.set_dst! 'get', 'dom0/room0/door0'
room1.send_p p
@@ -137,13 +137,13 @@ describe EvenDoors::Room do
end
#
it "route success: bubble up x2, drill down x3" do
- room00 = EvenDoors::Room.new 'room00', @spin
- room01 = EvenDoors::Room.new 'room01', room00
- room02 = EvenDoors::Room.new 'room02', room01
- door000 = EvenDoors::Door.new 'door000', room02
- room10 = EvenDoors::Room.new 'room10', @spin
- room11 = EvenDoors::Room.new 'room11', room10
- p = @spin.require_p EvenDoors::Particle
+ room00 = Iotas::Room.new 'room00', @spin
+ room01 = Iotas::Room.new 'room01', room00
+ room02 = Iotas::Room.new 'room02', room01
+ door000 = Iotas::Door.new 'door000', room02
+ room10 = Iotas::Room.new 'room10', @spin
+ room11 = Iotas::Room.new 'room11', room10
+ p = @spin.require_p Iotas::Particle
p.src = Fake.new 'fake', @spin
p.set_dst! 'get', 'dom0/room00/room01/room02/door000'
room11.send_p p
@@ -152,25 +152,25 @@ describe EvenDoors::Room do
end
#
it "route error: bubble up x2 drill down x2" do
- room00 = EvenDoors::Room.new 'room00', @spin
- room01 = EvenDoors::Room.new 'room01', room00
- room02 = EvenDoors::Room.new 'room02', room01
- door000 = EvenDoors::Door.new 'door000', room02
- room10 = EvenDoors::Room.new 'room10', @spin
- room11 = EvenDoors::Room.new 'room11', room10
- p = @spin.require_p EvenDoors::Particle
+ room00 = Iotas::Room.new 'room00', @spin
+ room01 = Iotas::Room.new 'room01', room00
+ room02 = Iotas::Room.new 'room02', room01
+ door000 = Iotas::Door.new 'door000', room02
+ room10 = Iotas::Room.new 'room10', @spin
+ room11 = Iotas::Room.new 'room11', room10
+ p = @spin.require_p Iotas::Particle
p.src = Fake.new 'fake', @spin
p.set_dst! 'get', 'dom0/room00/room01/wrong/door000'
room11.send_p p
- p.action.should eql EvenDoors::ACT_ERROR
- p[EvenDoors::FIELD_ERROR_MSG].should eql EvenDoors::ERROR_ROUTE_DDWR
+ p.action.should eql Iotas::ACT_ERROR
+ p[Iotas::FIELD_ERROR_MSG].should eql Iotas::ERROR_ROUTE_DDWR
p.dst.should be p.src
end
#
it "routing success: no door name -> src" do
- room0 = EvenDoors::Room.new 'room0', @spin
- door0 = EvenDoors::Door.new 'door0', room0
- p = @spin.require_p EvenDoors::Particle
+ room0 = Iotas::Room.new 'room0', @spin
+ door0 = Iotas::Door.new 'door0', room0
+ p = @spin.require_p Iotas::Particle
p.src = door0
p.set_dst! 'get'
room0.send_p p
@@ -179,22 +179,22 @@ describe EvenDoors::Room do
end
#
it "routing success: unconditional link" do
- room0 = EvenDoors::Room.new 'room0', @spin
- door0 = EvenDoors::Door.new 'door0', room0
- door1 = EvenDoors::Door.new 'door1', room0
- room0.add_link EvenDoors::Link.new('door0', 'door1')
- p = @spin.require_p EvenDoors::Particle
+ room0 = Iotas::Room.new 'room0', @spin
+ door0 = Iotas::Door.new 'door0', room0
+ door1 = Iotas::Door.new 'door1', room0
+ room0.add_link Iotas::Link.new('door0', 'door1')
+ p = @spin.require_p Iotas::Particle
door0.send_p p
p.action.should be_nil
p.dst.should be door1
end
#
it "routing success: conditional link" do
- room0 = EvenDoors::Room.new 'room0', @spin
- door0 = EvenDoors::Door.new 'door0', room0
- door1 = EvenDoors::Door.new 'door1', room0
- room0.add_link EvenDoors::Link.new('door0', 'door1', 'fields', 'f0,f1', 'v0v1')
- p = @spin.require_p EvenDoors::Particle
+ room0 = Iotas::Room.new 'room0', @spin
+ door0 = Iotas::Door.new 'door0', room0
+ door1 = Iotas::Door.new 'door1', room0
+ room0.add_link Iotas::Link.new('door0', 'door1', 'fields', 'f0,f1', 'v0v1')
+ p = @spin.require_p Iotas::Particle
p['f0']='v0'
p['f1']='v1'
door0.send_p p
@@ -204,9 +204,9 @@ describe EvenDoors::Room do
end
#
it "routing success: more then one matching link" do
- room0 = EvenDoors::Room.new 'room0', @spin
- door0 = EvenDoors::Door.new 'door0', room0
- class Out < EvenDoors::Door
+ room0 = Iotas::Room.new 'room0', @spin
+ door0 = Iotas::Door.new 'door0', room0
+ class Out < Iotas::Door
attr_reader :ps
def receive_p p
@ps||=[]
@@ -214,9 +214,9 @@ describe EvenDoors::Room do
end
end
door1 = Out.new 'door1', room0
- room0.add_link EvenDoors::Link.new('door0', 'door1')
- room0.add_link EvenDoors::Link.new('door0', 'door1', 'fields', 'f0,f1', 'v0v1')
- p = @spin.require_p EvenDoors::Particle
+ room0.add_link Iotas::Link.new('door0', 'door1')
+ room0.add_link Iotas::Link.new('door0', 'door1', 'fields', 'f0,f1', 'v0v1')
+ p = @spin.require_p Iotas::Particle
p['f0']='v0'
p['f1']='v1'
door0.send_p p
@@ -234,46 +234,46 @@ describe EvenDoors::Room do
end
#
it "system route error: system no destination" do
- room0 = EvenDoors::Room.new 'room0', @spin
- p = @spin.require_p EvenDoors::Particle
+ room0 = Iotas::Room.new 'room0', @spin
+ p = @spin.require_p Iotas::Particle
room0.send_sys_p p
- p.action.should eql EvenDoors::ACT_ERROR
- p[EvenDoors::FIELD_ERROR_MSG].should eql EvenDoors::ERROR_ROUTE_SND
+ p.action.should eql Iotas::ACT_ERROR
+ p[Iotas::FIELD_ERROR_MSG].should eql Iotas::ERROR_ROUTE_SND
end
#
it "system routing success: action only" do
- room0 = EvenDoors::Room.new 'room0', @spin
- p = @spin.require_p EvenDoors::Particle
- p.set_dst! EvenDoors::SYS_ACT_ADD_LINK
+ room0 = Iotas::Room.new 'room0', @spin
+ p = @spin.require_p Iotas::Particle
+ p.set_dst! Iotas::SYS_ACT_ADD_LINK
room0.send_sys_p p
- p.action.should eql EvenDoors::SYS_ACT_ADD_LINK
+ p.action.should eql Iotas::SYS_ACT_ADD_LINK
p.dst.should be room0.spin
end
#
it "system routing success" do
- room0 = EvenDoors::Room.new 'room0', @spin
- door0 = EvenDoors::Door.new 'door0', room0
- p = @spin.require_p EvenDoors::Particle
- p.set_dst! EvenDoors::SYS_ACT_ADD_LINK, 'dom0/room0/door0'
+ room0 = Iotas::Room.new 'room0', @spin
+ door0 = Iotas::Door.new 'door0', room0
+ p = @spin.require_p Iotas::Particle
+ p.set_dst! Iotas::SYS_ACT_ADD_LINK, 'dom0/room0/door0'
room0.send_sys_p p
- p.action.should eql EvenDoors::SYS_ACT_ADD_LINK
+ p.action.should eql Iotas::SYS_ACT_ADD_LINK
p.dst.should be door0
end
#
it "SYS_ACT_ADD_LINK" do
- room0 = EvenDoors::Room.new 'room0', @spin
- door0 = EvenDoors::Door.new 'door0', room0
- door1 = EvenDoors::Door.new 'door1', room0
- p0 = @spin.require_p EvenDoors::Particle
- p0.set_data EvenDoors::LNK_SRC, 'door0'
- p0.set_data EvenDoors::LNK_DSTS, 'door1'
- p0.set_data EvenDoors::LNK_FIELDS, 'fields'
- p0.set_data EvenDoors::LNK_CONDF, 'f0,f1'
- p0.set_data EvenDoors::LNK_CONDV, 'v0v1'
- p0.set_dst! EvenDoors::SYS_ACT_ADD_LINK, room0.path
+ room0 = Iotas::Room.new 'room0', @spin
+ door0 = Iotas::Door.new 'door0', room0
+ door1 = Iotas::Door.new 'door1', room0
+ p0 = @spin.require_p Iotas::Particle
+ p0.set_data Iotas::LNK_SRC, 'door0'
+ p0.set_data Iotas::LNK_DSTS, 'door1'
+ p0.set_data Iotas::LNK_FIELDS, 'fields'
+ p0.set_data Iotas::LNK_CONDF, 'f0,f1'
+ p0.set_data Iotas::LNK_CONDV, 'v0v1'
+ p0.set_dst! Iotas::SYS_ACT_ADD_LINK, room0.path
room0.send_sys_p p0
@spin.spin!
- p = @spin.require_p EvenDoors::Particle
+ p = @spin.require_p Iotas::Particle
p['f0']='v0'
p['f1']='v1'
door0.send_p p
@@ -283,19 +283,19 @@ describe EvenDoors::Room do
end
#
it "room->json->room" do
- r0 = EvenDoors::Room.new 'r0', @spin
- r1 = EvenDoors::Room.new 'r1', r0
- r2 = EvenDoors::Room.new 'r2', r1
- r3 = EvenDoors::Room.new 'r3', r1
- r4 = EvenDoors::Room.new 'r4', r3
- d0 = EvenDoors::Door.new 'd0', r1
- d1 = EvenDoors::Door.new 'd1', r1
- d2 = EvenDoors::Door.new 'd2', r2
- r1.add_link EvenDoors::Link.new('d0', 'd1', 'fields', 'f0,f1', 'v0v1')
- r1.add_link EvenDoors::Link.new('d0', 'd2')
- r1.add_link EvenDoors::Link.new('d1', 'd0')
- r2.add_link EvenDoors::Link.new('d2', 'd1', 'fies', 'f5,f1', 'v9v1')
- rx = EvenDoors::Room.json_create( JSON.load( JSON.generate(r0) ) )
+ r0 = Iotas::Room.new 'r0', @spin
+ r1 = Iotas::Room.new 'r1', r0
+ r2 = Iotas::Room.new 'r2', r1
+ r3 = Iotas::Room.new 'r3', r1
+ r4 = Iotas::Room.new 'r4', r3
+ d0 = Iotas::Door.new 'd0', r1
+ d1 = Iotas::Door.new 'd1', r1
+ d2 = Iotas::Door.new 'd2', r2
+ r1.add_link Iotas::Link.new('d0', 'd1', 'fields', 'f0,f1', 'v0v1')
+ r1.add_link Iotas::Link.new('d0', 'd2')
+ r1.add_link Iotas::Link.new('d1', 'd0')
+ r2.add_link Iotas::Link.new('d2', 'd1', 'fies', 'f5,f1', 'v9v1')
+ rx = Iotas::Room.json_create( JSON.load( JSON.generate(r0) ) )
JSON.generate(r0).should eql JSON.generate(rx)
end#
#