hydra/test/pipe_test.rb

39 lines
1.2 KiB
Ruby
Raw Normal View History

require 'test_helper'
2010-01-26 18:50:44 +00:00
class PipeTest < Test::Unit::TestCase
2010-01-26 18:50:44 +00:00
context "a pipe" do
setup do
@pipe = Hydra::Pipe.new
end
teardown do
@pipe.close
end
2010-01-26 18:50:44 +00:00
should "be able to write messages" do
child = Process.fork do
2010-01-26 18:50:44 +00:00
@pipe.identify_as_child
assert_equal "Test Message", @pipe.gets.text
@pipe.write Hydra::Messages::TestMessage.new(:text => "Message Received")
@pipe.write Hydra::Messages::TestMessage.new(:text => "Second Message")
2010-01-26 18:50:44 +00:00
end
@pipe.identify_as_parent
@pipe.write Hydra::Messages::TestMessage.new(:text => "Test Message")
assert_equal "Message Received", @pipe.gets.text
assert_equal "Second Message", @pipe.gets.text
Process.wait(child) #ensure it quits, so there is nothing to write to
assert_raise IOError do
@pipe.write Hydra::Messages::TestMessage.new(:text => "anyone there?")
2010-01-26 18:50:44 +00:00
end
end
should "not allow writing if unidentified" do
assert_raise IOError do
@pipe.write Hydra::Messages::TestMessage.new(:text => "Test Message")
2010-01-26 18:50:44 +00:00
end
end
should "not allow reading if unidentified" do
assert_raise IOError do
2010-01-26 18:50:44 +00:00
@pipe.gets
end
end
end
end