42 lines
963 B
Ruby
42 lines
963 B
Ruby
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
require './test/replica_sets/rs_test_helper'
|
|
|
|
class ReadPreferenceTest < Test::Unit::TestCase
|
|
include Mongo
|
|
|
|
def setup
|
|
@conn = ReplSetConnection.new([RS.host, RS.ports[0], RS.host, RS.ports[1]], :read => :secondary, :pool_size => 50)
|
|
@db = @conn.db(MONGO_TEST_DB)
|
|
@db.drop_collection("test-sets")
|
|
end
|
|
|
|
def test_query_tagged
|
|
col = @db['mongo-test']
|
|
|
|
col.insert({:a => 1}, :safe => {:w => 3})
|
|
col.find_one({}, :read => {:db => "main"})
|
|
col.find_one({}, :read => {:dc => "ny"})
|
|
col.find_one({}, :read => {:dc => "sf"})
|
|
|
|
assert_raise Mongo::NodeWithTagsNotFound do
|
|
col.find_one({}, :read => {:foo => "bar"})
|
|
end
|
|
|
|
threads = []
|
|
100.times do
|
|
threads << Thread.new do
|
|
col.find_one({}, :read => {:dc => "sf"})
|
|
end
|
|
end
|
|
|
|
threads.each {|t| t.join }
|
|
|
|
col.remove
|
|
end
|
|
|
|
def teardown
|
|
RS.restart_killed_nodes
|
|
end
|
|
|
|
end
|