require File.expand_path(File.dirname(__FILE__) + '/spec_helper') describe "Chatterbot::Tweet" do describe "#tweet" do before(:each) do @bot = test_bot end it "calls require_login when tweeting" do @bot.should_receive(:require_login).and_return(false) @bot.tweet "tweet test!" end it "calls client.update with the right values" do bot = test_bot bot.should_receive(:require_login).and_return(true) bot.stub!(:client).and_return(mock(Twitter::Client)) bot.stub!(:debug_mode?).and_return(false) test_str = "test!" bot.client.should_receive(:update).with(test_str, {}) bot.tweet test_str end it "doesn't tweet when debug_mode? is set" do bot = test_bot bot.should_receive(:require_login).and_return(true) bot.stub!(:client).and_return(mock(Twitter::Client)) bot.stub!(:debug_mode?).and_return(true) bot.client.should_not_receive(:update) bot.tweet "no tweet!" end end describe "#reply" do it "calls require_login when replying" do bot = test_bot bot.should_receive(:require_login).and_return(false) bot.reply "reply test!", {"id" => 100} end it "calls client.update with the right values" do bot = test_bot bot.should_receive(:require_login).and_return(true) bot.stub!(:client).and_return(mock(Twitter::Client)) bot.stub!(:debug_mode?).and_return(false) test_str = "test!" s = { :id => 100 } bot.client.should_receive(:update).with(test_str, {:in_reply_to_status_id => 100}) bot.reply test_str, s end it "doesn't reply when debug_mode? is set" do bot = test_bot bot.should_receive(:require_login).and_return(true) bot.stub!(:client).and_return(mock(Twitter::Client)) bot.stub!(:debug_mode?).and_return(true) bot.client.should_not_receive(:update) bot.reply "no reply test!", {:id => 100} end end end