-$:.unshift File.join(File.dirname(__FILE__), '../lib')
-
-module Irc
-class Bot
- module Config
- @@datadir = File.expand_path(File.dirname($0) + '/../data/rbot')
- @@coredir = File.expand_path(File.dirname($0) + '/../lib/rbot/core')
- end
-end
-end
+$:.unshift File.join(File.dirname(__FILE__), '..', '..', 'lib')
+$:.unshift File.join(File.dirname(__FILE__), '..', '..')
require 'test/unit'
+require 'test/mock'
+
require 'rbot/ircbot'
require 'rbot/registry'
require 'rbot/plugins'
-class MockBot
- attr_reader :filters
- def initialize
- @filters = {}
- end
-
- def register_filter(name, &block)
- @filters[name] = block
- end
-
- def path
- ''
- end
-
- def registry_factory
- Irc::Bot::Registry.new('dbm')
- end
-end
-
-
class PluginTest < Test::Unit::TestCase
def setup
- Irc::Bot::Plugins.manager.bot_associate(MockBot.new)
-
- # @plugin = RotPlugin.new(MockBot.new)
- # require ''
- plugin_module = Module.new
- fname = './data/rbot/plugins/rot13.rb'
- bindtextdomain_to(plugin_module, "rbot-#{File.basename(fname, '.rb')}")
- plugin_string = IO.read(fname)
- plugin_module.module_eval(plugin_string, fname)
+ manager = Irc::Bot::Plugins.manager
+ manager.bot_associate(MockBot.new)
+ manager.load_botmodule_file('./data/rbot/plugins/rot13.rb')
+ @plugin = manager.get_plugin('rot')
end
def test_rot13
- plugins = Irc::Bot::Plugins.manager.botmodules[:Plugin]
- assert_equal(plugins.size, 1)
- rot13 = plugins.first
-
- assert_equal(rot13.help(nil), "rot13 <string> => encode <string> to rot13 or back")
+ assert_not_nil(@plugin)
+ assert_equal(@plugin.help(nil), "rot13 <string> => encode <string> to rot13 or back")
+ m = MockMessage.new
+ @plugin.rot13(m, {string: 'Hello World'})
+ assert_equal(m.replies.first, 'Uryyb Jbeyq')
end
end