]> git.netwichtig.de Git - user/henk/code/ruby/rbot.git/blobdiff - test/mock.rb
tests: mocked bot and messages added, added points tests
[user/henk/code/ruby/rbot.git] / test / mock.rb
diff --git a/test/mock.rb b/test/mock.rb
new file mode 100644 (file)
index 0000000..f1ce92d
--- /dev/null
@@ -0,0 +1,71 @@
+$:.unshift File.join(File.dirname(__FILE__), '..', 'lib')
+$:.unshift File.join(File.dirname(__FILE__), '..')
+
+
+module Irc
+class Bot
+  module Config
+    @@datadir = File.expand_path(File.dirname(__FILE__) + '/../data/rbot')
+    @@coredir = File.expand_path(File.dirname(__FILE__) + '/../lib/rbot/core')
+  end
+end
+end
+
+
+class MockBot
+  attr_reader :filters, :lang
+
+  def initialize
+    @filters = {}
+    @lang = Irc::Bot::Language.new(self, 'english')
+  end
+
+  def register_filter(name, &block)
+    @filters[name] = block
+  end
+
+  def filter(name, value)
+    @filters[name].call({text: value})[:text]
+  end
+
+  def nick
+    'bot'
+  end
+
+  def path(*components)
+    File.join('/tmp/rbot-test', *(components.map {|c| c.to_s}))
+  end
+
+  def plugins
+    nil
+  end
+
+  def registry_factory
+    Irc::Bot::Registry.new('mem')
+  end
+end
+
+
+class MockMessage
+  attr_reader :message
+  attr_reader :replies
+  attr_reader :channel
+  attr_reader :sourcenick
+
+  def initialize(message='', source='user')
+    @message = message
+    @sourcenick = source
+    @channel = Irc::Channel.new('#test', '', [], server: nil)
+    @replies = []
+  end
+
+  def reply(message)
+    @replies << message
+  end
+
+  def public?
+    true
+  end
+end
+
+