aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2015-08-09 22:00:52 +0900
committerKazuki Yamaguchi <k@rhe.jp>2015-08-13 22:23:05 +0900
commit0616e680865d5c5d82f7547c1e38b348c945591c (patch)
tree93a92832fe568930eaa6017951b63dfa4e84c5f8
parent3d580b40e398487e3c6c4edbd50b0d7ad29514b1 (diff)
downloadplum-0616e680865d5c5d82f7547c1e38b348c945591c.tar.gz
event_emitter: add test cases
-rw-r--r--test/plum/test_event_emitter.rb31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/plum/test_event_emitter.rb b/test/plum/test_event_emitter.rb
new file mode 100644
index 0000000..01d6001
--- /dev/null
+++ b/test/plum/test_event_emitter.rb
@@ -0,0 +1,31 @@
+require "test_helper"
+
+using BinaryString
+class EventEmitterTest < Minitest::Test
+ def test_simple
+ ret = nil
+ emitter = new_emitter
+ emitter.on(:event) {|arg| ret = arg }
+ emitter.callback(:event, 123)
+ assert_equal(123, ret)
+ end
+
+ def test_multiple
+ ret1 = nil; ret2 = nil
+ emitter = new_emitter
+ emitter.on(:event) {|arg| ret1 = arg }
+ emitter.on(:event) {|arg| ret2 = arg }
+ emitter.callback(:event, 123)
+ assert_equal(123, ret1)
+ assert_equal(123, ret2)
+ end
+
+ private
+ def new_emitter
+ klass = Class.new {
+ include EventEmitter
+ public *EventEmitter.private_instance_methods
+ }
+ klass.new
+ end
+end