1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
# frozen_string_literal: true
# rubocop:todo all
require 'spec_helper'
describe Mongo::Cluster::Topology::Unknown do
let(:monitoring) do
Mongo::Monitoring.new(monitoring: false)
end
# Cluster needs a topology and topology needs a cluster...
# This temporary cluster is used for topology construction.
let(:temp_cluster) do
double('temp cluster').tap do |cluster|
allow(cluster).to receive(:servers_list).and_return([])
end
end
let(:topology) do
described_class.new({}, monitoring, temp_cluster)
end
describe '#initialize' do
let(:topology) do
Mongo::Cluster::Topology::Unknown.new(
{replica_set_name: 'foo'},
monitoring, temp_cluster)
end
it 'does not accept RS name' do
expect do
topology
end.to raise_error(ArgumentError, 'Topology Mongo::Cluster::Topology::Unknown cannot have the :replica_set_name option set')
end
end
describe '.servers' do
let(:servers) do
topology.servers([ double('mongos'), double('standalone') ])
end
it 'returns an empty array' do
expect(servers).to eq([ ])
end
end
describe '.replica_set?' do
it 'returns false' do
expect(topology).to_not be_replica_set
end
end
describe '.sharded?' do
it 'returns false' do
expect(topology).not_to be_sharded
end
end
describe '.single?' do
it 'returns false' do
expect(topology).not_to be_single
end
end
describe '.unknown?' do
it 'returns true' do
expect(topology.unknown?).to be(true)
end
end
describe '#has_readable_servers?' do
it 'returns false' do
expect(topology).to_not have_readable_server(nil, nil)
end
end
describe '#has_writable_servers?' do
it 'returns false' do
expect(topology).to_not have_writable_server(nil)
end
end
describe '#summary' do
require_no_linting
let(:desc) do
Mongo::Server::Description.new(Mongo::Address.new('127.0.0.2:27017'))
end
it 'renders correctly' do
expect(topology).to receive(:server_descriptions).and_return({desc.address.to_s => desc})
expect(topology.summary).to eq('Unknown[127.0.0.2:27017]')
end
end
end
|