diff options
author | Toshiaki Asai <toshi.alternative@gmail.com> | 2015-08-26 14:27:43 +0900 |
---|---|---|
committer | Toshiaki Asai <toshi.alternative@gmail.com> | 2015-08-26 23:06:46 +0900 |
commit | 5551f7360398e46525e9d54553e441a6a713fb6d (patch) | |
tree | f8f7a331e4ec648cdb39c7a61baf182878565031 /test/core | |
parent | 9dcab42a88652c0969d4fcb8fb8c3f028a6683ea (diff) | |
download | mikutter-5551f7360398e46525e9d54553e441a6a713fb6d.tar.gz |
pluggaloidを使う
Diffstat (limited to 'test/core')
-rw-r--r-- | test/core/test_event.rb | 132 | ||||
-rw-r--r-- | test/core/test_event_filter.rb | 65 | ||||
-rw-r--r-- | test/core/test_event_listener.rb | 60 | ||||
-rw-r--r-- | test/core/test_plugin.rb | 117 |
4 files changed, 0 insertions, 374 deletions
diff --git a/test/core/test_event.rb b/test/core/test_event.rb deleted file mode 100644 index 81331dcb..00000000 --- a/test/core/test_event.rb +++ /dev/null @@ -1,132 +0,0 @@ -# -*- coding: utf-8 -*- - -require File.expand_path(File.dirname(__FILE__) + '/../helper') - -Dir.chdir(File.expand_path(File.dirname(__FILE__) + '/../core')) -$LOAD_PATH.push '.' -require 'utils' - -miquire :lib, 'test_unit_extensions' -miquire :core, 'event', 'event_listener', 'event_filter' - -class TC_Event < Test::Unit::TestCase - def setup - Event.clear! - end - - def wait - while !Delayer.empty? - Delayer.run - end - end - - must "register" do - assert_instance_of Event, Event[:register_test] - assert Event[:register_test].eql? Event[:register_test] - assert_raise(ArgumentError) { - Event["fail"] } - end - - must "priority" do - assert_kind_of Symbol, Event[:prio1].priority - Event[:prio1].options[:priority] = :ui_response - assert_equal :ui_response, Event[:prio1].priority - end - - must "call event with filtering" do - r = 0 - EventListener.new(Event[:call_event]) do |v| - r = v end - event = Event[:call_event].call(1) - assert_equal Event[:call_event], event, 'Event#call は self を返す' - wait - assert_equal 1, r, 'イベントを呼び出すことができる' - r = 0 - EventFilter.new(Event[:call_event]) do |v| - [v + 1] end - event = Event[:call_event].call(1) - assert_equal Event[:call_event], event, 'Event#call は self を返す' - wait - assert_equal 2, r, 'フィルタがあるイベントを呼び出すことができる' - end - - must "call event with filtering in another thread" do - Event.filter_another_thread = true - r = 0 - EventListener.new(Event[:call_event]) do |v| - r = v end - event = Event[:call_event].call(1) - assert_equal Event[:call_event], event, 'Event#call は self を返す' - Delayer.run while not Delayer.empty? - assert_equal 1, r, 'フィルタを別スレッドで実行する設定の時、フィルタのないイベントを呼び出すことができる' - r = 0 - EventFilter.new(Event[:call_event]) do |v| - [v + 1] end - event = Event[:call_event].call(1) - assert_equal Event[:call_event], event, 'Event#call は self を返す' - wait - assert_equal 2, r, 'フィルタがバックグラウンドスレッドで実行される' - end - - must "called event raises exception" do - r = 0 - EventListener.new(Event[:call_event]) do |v| - r = v - raise end - event = Event[:call_event].call(1) - assert_equal Event[:call_event], event, 'Event#call は self を返す' - assert_raise('イベント中で例外が起こった時、Delayer#runがその例外を投げる') { - wait } - assert_equal(1, r) - r = 0 - EventFilter.new(Event[:call_event]) do |v| - [v + 1] end - event = Event[:call_event].call(1) - assert_equal Event[:call_event], event, 'Event#call は self を返す' - assert_raise('フィルタがあるイベント中で例外が起こった時、Delayer#runがその例外を投げる') { - wait } - assert_equal(2, r) - r = 0 - EventFilter.new(Event[:call_event]) do |v| - raise - [v] end - event = Event[:call_event].call(1) - assert_equal Event[:call_event], event, 'Event#call は self を返す' - assert_raise('フィルタで例外が起こった場合、EventListenerは実行されず、Delayer#runがその例外を投げる') { - wait } - assert_equal(0, r) - - end - - must "call event with filter raises exception in another thread" do - Event.filter_another_thread = true - r = 0 - exception = Class.new(RuntimeError) - EventListener.new(Event[:call_event]) do |v| - r = v - raise exception end - event = Event[:call_event].call(1) - assert_equal Event[:call_event], event, 'Event#call は self を返す' - assert_raise(exception, 'イベント中で例外が起こった時、Delayer#runがその例外を投げる') { - wait } - assert_equal(1, r) - r = 0 - EventFilter.new(Event[:call_event]) do |v| - [v + 1] end - event = Event[:call_event].call(1) - assert_equal Event[:call_event], event, 'Event#call は self を返す' - assert_raise(exception, 'フィルタがあるイベント中で例外が起こった時、Delayer#runがその例外を投げる') { - wait } - assert_equal(2, r) - r = 0 - filter_exception = Class.new(RuntimeError) - EventFilter.new(Event[:call_event]) do |v| - raise filter_exception - [v] end - event = Event[:call_event].call(1) - assert_equal Event[:call_event], event, 'Event#call は self を返す' - assert_raise(filter_exception, 'フィルタで例外が起こった場合、EventListenerは実行されず、Delayer#runがその例外を投げる') { - wait } - assert_equal(0, r) - end -end diff --git a/test/core/test_event_filter.rb b/test/core/test_event_filter.rb deleted file mode 100644 index 248cebed..00000000 --- a/test/core/test_event_filter.rb +++ /dev/null @@ -1,65 +0,0 @@ -# -*- coding: utf-8 -*- - -require File.expand_path(File.dirname(__FILE__) + '/../helper') - -Dir.chdir(File.expand_path(File.dirname(__FILE__) + '/../core')) -$LOAD_PATH.push '.' -require 'utils' - -miquire :lib, 'test_unit_extensions' -miquire :core, 'event_filter', 'event_listener' - -class TC_EventFilter < Test::Unit::TestCase - def setup - Event.clear! - end - - must "start listening" do - value = d_value = sum = d_sum = 0 - increase = EventListener.new(Event[:increase]) { |v| - value += v - d_value -= v - sum += v - } - decrease = EventListener.new(Event[:decrease]) { |v| - value -= v - d_value += v - d_sum += v - } - EventFilter.new(Event[:increase]){ |v| [v * 2] } - Event[:increase].call(1) - Delayer.run while not Delayer.empty? - assert_equal(2, value) - assert_equal(-2, d_value) - - Event[:decrease].call(2) - Event[:increase].call(3) - Delayer.run while not Delayer.empty? - assert_equal(6, value) - assert_equal(-6, d_value) - - assert_equal(8, sum) - assert_equal(2, d_sum) - end - - must "cancel" do - EventFilter.new(Event[:increase]){ |v| [v * 2] } - result = Event[:increase].filtering(1) - assert_equal([2], result) - - EventFilter.new(Event[:increase]){ |v| [v * 2] } - result = Event[:increase].filtering(1) - assert_equal([4], result) - - e1 = EventFilter.new(Event[:increase]){ |v| EventFilter.cancel! } - result = Event[:increase].filtering(1) - assert_equal(false, result) - - e1.detach - - EventFilter.new(Event[:increase]){ |v, &cont| cont.call([v*3]) } - result = Event[:increase].filtering(1) - assert_equal([12], result) - end -end - diff --git a/test/core/test_event_listener.rb b/test/core/test_event_listener.rb deleted file mode 100644 index 1eb78e38..00000000 --- a/test/core/test_event_listener.rb +++ /dev/null @@ -1,60 +0,0 @@ -# -*- coding: utf-8 -*- - -require File.expand_path(File.dirname(__FILE__) + '/../helper') - -Dir.chdir(File.expand_path(File.dirname(__FILE__) + '/../core')) -$LOAD_PATH.push '.' -require 'utils' - -miquire :lib, 'test_unit_extensions' -miquire :core, 'event_listener' - -class TC_EventListener < Test::Unit::TestCase - def setup - Event.clear! - end - - must "start listening" do - value = d_value = sum = d_sum = 0 - increase = EventListener.new(Event[:increase]) { |v| - value += v - d_value -= v - sum += v - } - decrease = EventListener.new(Event[:decrease]) { |v| - value -= v - d_value += v - d_sum += v - } - Event[:increase].call(1) - Delayer.run while not Delayer.empty? - assert_equal(1, value) - assert_equal(-1, d_value) - - Event[:decrease].call(2) - Event[:increase].call(3) - Delayer.run while not Delayer.empty? - assert_equal(2, value) - assert_equal(-2, d_value) - - assert_equal(4, sum) - assert_equal(2, d_sum) - end - - must "event stop" do - value = 0 - EventListener.new(Event[:stop_test]) { |v, &stop| - stop.call if (v % 2) == 0 - } - EventListener.new(Event[:stop_test]) { |v| - value += v - } - Event[:stop_test].call(1) - Event[:stop_test].call(2) - Event[:stop_test].call(3) - Event[:stop_test].call(4) - Delayer.run while not Delayer.empty? - assert_equal(4, value) - end -end - diff --git a/test/core/test_plugin.rb b/test/core/test_plugin.rb deleted file mode 100644 index 69084d0e..00000000 --- a/test/core/test_plugin.rb +++ /dev/null @@ -1,117 +0,0 @@ -# -*- coding: utf-8 -*- - -require File.expand_path(File.dirname(__FILE__) + '/../helper') - -miquire :core, 'plugin' - -class TC_Plugin < Test::Unit::TestCase - def setup - Plugin.clear! - end - - must "basic plugin" do - sum = 0 - Plugin.create(:event) do - on_increase do |v| - sum += v end - - filter_increase do |v| - [v * 2] - end - end - Event[:increase].call(1) - Delayer.run while not Delayer.empty? - assert_equal(2, sum) - end - - must "uninstall" do - sum = 0 - Plugin.create(:event) do - on_increase do |v| - sum += v end - filter_increase do |v| - [v * 2] - end - end - Plugin.create(:event).uninstall - Event[:increase].call(1) - Delayer.run while not Delayer.empty? - assert_equal(0, sum) - end - - must "detach" do - sum = 0 - event = filter = nil - Plugin.create(:event) do - event = on_increase do |v| - sum += v end - filter = filter_increase do |v| - [v * 2] - end - end - Event[:increase].call(1) - Delayer.run while not Delayer.empty? - assert_equal(2, sum) - - Plugin.create(:event).detach filter - Event[:increase].call(1) - Delayer.run while not Delayer.empty? - assert_equal(3, sum) - - Plugin.create(:event).detach event - Event[:increase].call(1) - Delayer.run while not Delayer.empty? - assert_equal(3, sum) - end - - must "get plugin list" do - assert_equal([], Plugin.plugin_list) - Plugin.create(:plugin_0) - assert_equal([:plugin_0], Plugin.plugin_list) - Plugin.create(:plugin_1) - assert_equal([:plugin_0, :plugin_1], Plugin.plugin_list) - end - - must "dsl method defevent" do - Plugin.create :defevent do - defevent :increase, prototype: [Integer] end - assert_equal([Integer], Event[:increase].options[:prototype]) - assert_equal(Plugin[:defevent], Event[:increase].options[:plugin]) - end - - must "unload hook" do - value = 0 - Plugin.create(:unload) { - on_unload { - value += 2 } - on_unload { - value += 1 } } - assert_equal(value, 0) - Plugin.create(:unload).uninstall - assert_equal(value, 3) - end - - must "simple dsl" do - Plugin.create :dsl_def do - defdsl :twice do |number| - number * 2 - end - end - - dsl_use = Plugin.create(:dsl_use) - assert_equal(4, dsl_use.twice(2)) - assert_equal(0, dsl_use.twice(0)) - assert_equal(-26, dsl_use.twice(-13)) - end - - must "callback dsl" do - Plugin.create :dsl_def do - defdsl :rejector do |value, &condition| - value.reject(&condition) - end - end - - dsl_use = Plugin.create(:dsl_use) - assert_equal([2, 4, 6], dsl_use.rejector(1..6){ |d| 0 != (d & 1) }) - end -end |