2009-12-01 18:49:57 +00:00
|
|
|
require 'test/test_helper'
|
2009-10-15 16:23:29 +00:00
|
|
|
|
|
|
|
# NOTE: these tests are run only if we can connect to a single MongoDB in slave mode.
|
|
|
|
class SlaveConnectionTest < Test::Unit::TestCase
|
|
|
|
include Mongo
|
|
|
|
|
|
|
|
def self.connect_to_slave
|
|
|
|
@@host = ENV['MONGO_RUBY_DRIVER_HOST'] || 'localhost'
|
|
|
|
@@port = ENV['MONGO_RUBY_DRIVER_PORT'] || Connection::DEFAULT_PORT
|
2009-11-23 20:20:05 +00:00
|
|
|
conn = Connection.new(@@host, @@port, :slave_ok => true)
|
2010-08-04 22:18:55 +00:00
|
|
|
response = conn['admin'].command(:ismaster => 1)
|
2010-08-05 12:58:11 +00:00
|
|
|
Mongo::Support.ok?(response) && response['ismaster'] != 1
|
2009-10-15 16:23:29 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
if self.connect_to_slave
|
|
|
|
puts "Connected to slave; running slave tests."
|
|
|
|
|
|
|
|
def test_connect_to_slave
|
2010-08-04 22:12:25 +00:00
|
|
|
assert_raise Mongo::ConnectionFailure do
|
2009-10-15 16:23:29 +00:00
|
|
|
@db = Connection.new(@@host, @@port, :slave_ok => false).db('ruby-mongo-demo')
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
def test_slave_ok_sent_to_queries
|
2010-08-04 22:12:25 +00:00
|
|
|
@con = Connection.new(@@host, @@port, :slave_ok => true)
|
|
|
|
assert_equal true, @con.slave_ok?
|
2009-10-15 16:23:29 +00:00
|
|
|
end
|
|
|
|
else
|
|
|
|
puts "Not connected to slave; skipping slave connection tests."
|
|
|
|
|
|
|
|
def test_slave_ok_false_on_queries
|
2009-11-23 20:20:05 +00:00
|
|
|
@conn = Connection.new(@@host, @@port)
|
|
|
|
assert !@conn.slave_ok?
|
2009-10-15 16:23:29 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|