Sha256: 3227228997550786c996d745330d09d28eeba9fbba635c43fe021e17d4012ea2

Contents?: true

Size: 1.08 KB

Versions: 2

Compression:

Stored size: 1.08 KB

Contents

require 'test_helper'

class MqueueTest < MiniTest::Unit::TestCase
  def setup
    @queue_name = "/test-queue"
    @queue = POSIX::Mqueue.new(@queue_name)
  end

  def teardown
    @queue.unlink
  end

  def test_send_and_receive_single_message
    @queue.send "hello"
    assert_equal "hello", @queue.receive
  end

  def test_send_and_receive_multiple_messages
    @queue.send "hello"
    @queue.send "world"

    assert_equal "hello", @queue.receive
    assert_equal "world", @queue.receive
  end

  def test_receiver_blocks
    @queue.send "hello"

    assert_equal "hello", @queue.receive

    fork { POSIX::Mqueue.new(@queue_name).send("world") }

    assert_equal "world", @queue.receive
  end

  def test_multiple_queues
    @queue.send "hello"

    other = POSIX::Mqueue.new("/other-test-queue")
    other.send "world"

    assert_equal "world", other.receive
    assert_equal "hello", @queue.receive

    other.unlink
  end

  # def test_send_raises_exception_instead_of_blocking
  #   10.times { @queue.send "walrus" }

  #   assert_raises Exception do
  #     @queue.send "hi"
  #   end
  # end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
posix-mqueue-0.0.3 test/mqueue_test.rb
posix-mqueue-0.0.2 test/mqueue_test.rb