]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blob - test/plugins/test_rot13.rb
plugin(rot13): test assert added
[user/henk/code/ruby/rbot.git] / test / plugins / test_rot13.rb
1 $:.unshift File.join(File.dirname(__FILE__), '../lib')
2
3 module Irc
4 class Bot
5   module Config
6     @@datadir = File.expand_path(File.dirname($0) + '/../data/rbot')
7     @@coredir = File.expand_path(File.dirname($0) + '/../lib/rbot/core')
8   end
9 end
10 end
11
12 require 'test/unit'
13 require 'rbot/ircbot'
14 require 'rbot/registry'
15 require 'rbot/plugins'
16
17
18 class MockBot
19   attr_reader :filters
20   def initialize
21     @filters = {}
22   end
23
24   def register_filter(name, &block)
25     @filters[name] = block
26   end
27
28   def filter(name, value)
29     @filters[name].call({text: value})[:text]
30   end
31
32   def path
33     ''
34   end
35
36   def registry_factory
37     Irc::Bot::Registry.new('tc')
38   end
39 end
40
41
42 class MockMessage
43   attr_reader :messages
44
45   def initialize
46     @messages = []
47   end
48
49   def reply(message)
50     @messages << message
51   end
52 end
53
54
55 class PluginTest < Test::Unit::TestCase
56   def setup
57     manager = Irc::Bot::Plugins.manager
58     manager.bot_associate(MockBot.new)
59     manager.load_botmodule_file('./data/rbot/plugins/rot13.rb')
60     @plugin = manager.get_plugin('rot')
61   end
62
63   def test_rot13
64     assert_not_nil(@plugin)
65     assert_equal(@plugin.help(nil), "rot13 <string> => encode <string> to rot13 or back")
66     m = MockMessage.new
67     @plugin.rot13(m, {string: 'Hello World'})
68     assert_equal(m.messages.first, 'Uryyb Jbeyq')
69   end
70 end