43 lines
1.4 KiB
Ruby
43 lines
1.4 KiB
Ruby
|
$LOAD_PATH[0,0] = File.join(File.dirname(__FILE__), '..', 'lib')
|
||
|
require 'mongo'
|
||
|
require 'test/unit'
|
||
|
|
||
|
# 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
|
||
|
db = Connection.new(@@host, @@port, :slave_ok => true).db('ruby-mongo-demo')
|
||
|
!db.master?
|
||
|
end
|
||
|
|
||
|
if self.connect_to_slave
|
||
|
puts "Connected to slave; running slave tests."
|
||
|
|
||
|
def test_connect_to_slave
|
||
|
assert_raise Mongo::ConfigurationError do
|
||
|
@db = Connection.new(@@host, @@port, :slave_ok => false).db('ruby-mongo-demo')
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def test_slave_ok_sent_to_queries
|
||
|
@db = Connection.new(@@host, @@port, :slave_ok => true).db('ruby-mongo-demo')
|
||
|
@coll = @db['test-collection']
|
||
|
@cursor = @coll.find({})
|
||
|
assert_equal true, @cursor.query.instance_variable_get(:@slave_ok)
|
||
|
end
|
||
|
else
|
||
|
puts "Not connected to slave; skipping slave connection tests."
|
||
|
|
||
|
def test_slave_ok_false_on_queries
|
||
|
@db = Connection.new(@@host, @@port).db('ruby-mongo-demo')
|
||
|
@coll = @db['test-collection']
|
||
|
@cursor = @coll.find({})
|
||
|
assert_nil @cursor.query.instance_variable_get(:@slave_ok)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
end
|