spec/onstomp/full_stacks/onstomp_spec.rb in onstomp-1.0.6 vs spec/onstomp/full_stacks/onstomp_spec.rb in onstomp-1.0.7

- old
+ new

@@ -8,9 +8,62 @@ body.encode(encoding) else body end end + + describe "Failing on connect" do + let(:broker) { + TestBroker.new 10101 + } + before :each do + broker.start + end + after :each do + broker.stop + end + + it "raises an error when the TCP/IP connection is refused" do + broker.stop + client = OnStomp::Client.new('stomp://localhost:10101') + lambda do + client.connect + end.should raise_error + end + + it "raises an error if the connection is closed while writing the CONNECT frame" do + broker.session_class = TestBroker::SessionCloseBeforeConnect + client = OnStomp::Client.new('stomp://localhost:10101') + lambda do + client.connect + end.should raise_error + end + + it "raises an error if the connection is closed while waiting for the CONNECTED frame" do + broker.session_class = TestBroker::SessionCloseAfterConnect + client = OnStomp::Client.new('stomp://localhost:10101') + lambda do + client.connect + end.should raise_error + end + + it "raises an error if the connection times out before receiving a CONNECTED frame" do + broker.session_class = TestBroker::SessionTimeoutAfterConnect + client = OnStomp::Client.new('stomp://localhost:10101') + client.read_timeout = 1 + lambda do + client.connect + end.should raise_error(OnStomp::ConnectionTimeoutError) + end + + it "raises an error if the broker does not respond with CONNECTED" do + broker.session_class = TestBroker::SessionBadFrameAfterConnect + client = OnStomp::Client.new('stomp://localhost:10101') + lambda do + client.connect + end.should raise_error(OnStomp::ConnectFailedError) + end + end describe "STOMP 1.0" do let(:broker) { TestBroker.new 10101 }