Sha256: 2c99358e59070e4e7364d3ed033ebf084fe5e179e7b5055f8e7b5c85ceda1bb4
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
describe Noam::Listener do def make_message(message) ['test', 'source', 'event', message].to_json end class MockTcpSocket def queue @queue ||= Queue.new end def read_nonblock(size) if size == ::Noam::Message::MESSAGE_LENGTH_STRING_SIZE 1 else queue.pop end end def close; end end let!(:listener) { described_class.new } let(:mock_socket) { MockTcpSocket.new } before do TCPServer.any_instance.stubs(:accept).returns(mock_socket) IO.stubs(:select).returns(true) end describe '#connected?' do it 'returns true if the connection is open' do mock_socket.queue << make_message('message') listener.stop expect(listener.connected?).to be_truthy end it 'returns false if a read has failed' do mock_socket.stubs(:read_nonblock).raises(EOFError.new) listener.stop expect(listener.connected?).to be_falsey end end describe '#take' do it 'returns the next message from the queue' do mock_socket.queue << make_message('message') listener.stop expect(listener.take.value).to eq('message') end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
noam_lemma-0.2.1.3 | spec/noam_lemma/listener_spec.rb |