OSDN Git Service

Replaced mongrel with thin
[redminele/redminele.git] / ruby / lib / ruby / gems / 1.8 / gems / eventmachine-0.12.10-x86-mswin32-60 / tests / test_queue.rb
diff --git a/ruby/lib/ruby/gems/1.8/gems/eventmachine-0.12.10-x86-mswin32-60/tests/test_queue.rb b/ruby/lib/ruby/gems/1.8/gems/eventmachine-0.12.10-x86-mswin32-60/tests/test_queue.rb
new file mode 100644 (file)
index 0000000..a680533
--- /dev/null
@@ -0,0 +1,44 @@
+$:.unshift "../lib"\r
+require 'eventmachine'\r
+require 'test/unit'\r
+\r
+class TestEventMachineQueue < Test::Unit::TestCase\r
+  def test_queue_push\r
+    s = 0\r
+    EM.run do\r
+      q = EM::Queue.new\r
+      q.push(1)\r
+      EM.next_tick { s = q.size; EM.stop }\r
+    end\r
+    assert_equal 1, s\r
+  end\r
+\r
+  def test_queue_pop\r
+    x,y,z = nil\r
+    EM.run do\r
+      q = EM::Queue.new\r
+      q.push(1,2,3)\r
+      q.pop { |v| x = v }\r
+      q.pop { |v| y = v }\r
+      q.pop { |v| z = v; EM.stop }\r
+    end\r
+    assert_equal 1, x\r
+    assert_equal 2, y\r
+    assert_equal 3, z\r
+  end\r
+\r
+  def test_queue_reactor_thread\r
+    q = EM::Queue.new\r
+\r
+    Thread.new { q.push(1,2,3) }.join\r
+    assert q.empty?\r
+    EM.run { EM.next_tick { EM.stop } }\r
+    assert_equal 3, q.size\r
+\r
+    x = nil\r
+    Thread.new { q.pop { |v| x = v } }.join\r
+    assert_equal nil, x\r
+    EM.run { EM.next_tick { EM.stop } }\r
+    assert_equal 1, x\r
+  end\r
+end\r