]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blob - test/mock.rb
ba6326dbf3930feff354c4b38af3e36f1566083e
[user/henk/code/ruby/rbot.git] / test / mock.rb
1 $:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
2 $:.unshift File.join(File.dirname(__FILE__), '..')
3 require 'rbot/logger'
4 Irc::Bot::LoggerManager.instance.set_level(5)
5
6 module Irc
7 class Bot
8   module Config
9     @@datadir = File.expand_path(File.dirname(__FILE__) + '/../data/rbot')
10     @@coredir = File.expand_path(File.dirname(__FILE__) + '/../lib/rbot/core')
11   end
12 end
13 end
14
15
16 class MockBot
17   attr_reader :filters, :lang, :messages
18   attr_accessor :config
19
20   def initialize
21     @filters = {}
22     @config = {}
23     @lang = Irc::Bot::Language.new(self, 'english')
24     @messages = []
25   end
26
27   def say(target, message)
28     @messages << [target, message]
29   end
30
31   def register_filter(name, &block)
32     @filters[name] = block
33   end
34
35   def filter(name, value)
36     @filters[name].call({text: value})[:text]
37   end
38
39   def nick
40     'bot'
41   end
42
43   def path(*components)
44     File.join('/tmp/rbot-test', *(components.map {|c| c.to_s}))
45   end
46
47   def plugins
48     nil
49   end
50
51   def registry_factory
52     Irc::Bot::Registry.new('mem')
53   end
54 end
55
56
57 class MockMessage
58   attr_reader :message
59   attr_reader :replies
60   attr_reader :channel
61   attr_reader :replyto
62   attr_reader :sourcenick
63
64   def initialize(message='', source='user')
65     @message = message
66     @sourcenick = source
67     @replyto = source
68     @channel = Irc::Channel.new('#test', '', ['bob'], server: nil)
69     @replies = []
70   end
71
72   def reply(message)
73     @replies << message
74   end
75
76   def okay
77     reply 'okay'
78   end
79
80   def public?
81     true
82   end
83
84   def private?
85     false
86   end
87 end
88
89