mongo 2.1.0.beta → 2.1.0.rc0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Rakefile +2 -2
- data/lib/mongo.rb +2 -3
- data/lib/mongo/address.rb +7 -5
- data/lib/mongo/address/unix.rb +2 -2
- data/lib/mongo/auth/ldap/conversation.rb +6 -2
- data/lib/mongo/auth/scram/conversation.rb +8 -2
- data/lib/mongo/auth/user/view.rb +21 -0
- data/lib/mongo/bulk_write.rb +155 -23
- data/lib/mongo/bulk_write/combineable.rb +51 -0
- data/lib/mongo/bulk_write/ordered_combiner.rb +55 -0
- data/lib/mongo/bulk_write/result.rb +61 -8
- data/lib/mongo/bulk_write/result_combiner.rb +117 -0
- data/lib/mongo/bulk_write/transformable.rb +117 -0
- data/lib/mongo/bulk_write/unordered_combiner.rb +52 -0
- data/lib/mongo/bulk_write/validatable.rb +62 -0
- data/lib/mongo/client.rb +7 -3
- data/lib/mongo/cluster.rb +3 -3
- data/lib/mongo/cluster/topology/replica_set.rb +8 -6
- data/lib/mongo/cluster/topology/unknown.rb +5 -2
- data/lib/mongo/collection.rb +75 -4
- data/lib/mongo/collection/view.rb +1 -2
- data/lib/mongo/collection/view/aggregation.rb +13 -8
- data/lib/mongo/collection/view/immutable.rb +6 -6
- data/lib/mongo/collection/view/iterable.rb +13 -4
- data/lib/mongo/collection/view/map_reduce.rb +22 -17
- data/lib/mongo/collection/view/readable.rb +121 -70
- data/lib/mongo/cursor.rb +5 -1
- data/lib/mongo/database.rb +3 -3
- data/lib/mongo/database/view.rb +1 -1
- data/lib/mongo/error.rb +7 -0
- data/lib/mongo/{bulk_write/unordered_bulk_write.rb → error/closed_stream.rb} +12 -21
- data/lib/mongo/{bulk_write/ordered_bulk_write.rb → error/extra_file_chunk.rb} +13 -27
- data/lib/mongo/error/file_not_found.rb +37 -0
- data/lib/mongo/error/invalid_file.rb +2 -2
- data/lib/mongo/error/invalid_file_revision.rb +37 -0
- data/lib/mongo/error/invalid_uri.rb +5 -4
- data/lib/mongo/error/missing_file_chunk.rb +38 -0
- data/lib/mongo/error/operation_failure.rb +1 -1
- data/lib/mongo/error/unchangeable_collection_option.rb +38 -0
- data/lib/mongo/error/unexpected_chunk_length.rb +39 -0
- data/lib/mongo/grid.rb +2 -1
- data/lib/mongo/grid/file.rb +12 -9
- data/lib/mongo/grid/file/chunk.rb +6 -6
- data/lib/mongo/grid/file/{metadata.rb → info.rb} +41 -39
- data/lib/mongo/grid/fs_bucket.rb +441 -0
- data/lib/mongo/grid/stream.rb +64 -0
- data/lib/mongo/grid/stream/read.rb +208 -0
- data/lib/mongo/grid/stream/write.rb +187 -0
- data/lib/mongo/index/view.rb +1 -1
- data/lib/mongo/loggable.rb +34 -57
- data/lib/mongo/logger.rb +16 -78
- data/lib/mongo/monitoring.rb +1 -5
- data/lib/mongo/monitoring/command_log_subscriber.rb +35 -17
- data/lib/mongo/monitoring/event/command_succeeded.rb +20 -1
- data/lib/mongo/monitoring/publishable.rb +22 -12
- data/lib/mongo/operation.rb +3 -6
- data/lib/mongo/operation/commands.rb +24 -0
- data/lib/mongo/operation/{aggregate.rb → commands/aggregate.rb} +3 -41
- data/lib/mongo/operation/{aggregate → commands/aggregate}/result.rb +0 -0
- data/lib/mongo/operation/commands/collections_info.rb +66 -0
- data/lib/mongo/operation/{command.rb → commands/command.rb} +2 -18
- data/lib/mongo/operation/commands/indexes.rb +70 -0
- data/lib/mongo/operation/commands/list_collections.rb +54 -0
- data/lib/mongo/operation/commands/list_collections/result.rb +112 -0
- data/lib/mongo/operation/commands/list_indexes.rb +56 -0
- data/lib/mongo/operation/commands/list_indexes/result.rb +115 -0
- data/lib/mongo/operation/{map_reduce.rb → commands/map_reduce.rb} +3 -41
- data/lib/mongo/operation/{map_reduce → commands/map_reduce}/result.rb +0 -0
- data/lib/mongo/operation/{parallel_scan.rb → commands/parallel_scan.rb} +3 -23
- data/lib/mongo/operation/{parallel_scan → commands/parallel_scan}/result.rb +0 -0
- data/lib/mongo/operation/commands/user_query.rb +69 -0
- data/lib/mongo/operation/commands/users_info.rb +53 -0
- data/lib/mongo/operation/commands/users_info/result.rb +36 -0
- data/lib/mongo/operation/executable.rb +4 -68
- data/lib/mongo/operation/kill_cursors.rb +3 -3
- data/lib/mongo/operation/read.rb +0 -4
- data/lib/mongo/operation/read/get_more.rb +2 -22
- data/lib/mongo/operation/read/query.rb +2 -21
- data/lib/mongo/operation/{read_preferrable.rb → read_preference.rb} +3 -2
- data/lib/mongo/operation/specifiable.rb +24 -0
- data/lib/mongo/operation/write.rb +2 -0
- data/lib/mongo/operation/write/bulk.rb +6 -3
- data/lib/mongo/operation/write/bulk/bulkable.rb +82 -0
- data/lib/mongo/operation/write/bulk/delete.rb +71 -0
- data/lib/mongo/operation/write/bulk/delete/result.rb +74 -0
- data/lib/mongo/operation/write/bulk/insert.rb +96 -0
- data/lib/mongo/operation/write/bulk/insert/result.rb +129 -0
- data/lib/mongo/operation/write/bulk/legacy_mergable.rb +87 -0
- data/lib/mongo/operation/write/bulk/mergable.rb +71 -0
- data/lib/mongo/operation/write/bulk/update.rb +81 -0
- data/lib/mongo/operation/write/bulk/update/result.rb +174 -0
- data/lib/mongo/operation/write/command/create_index.rb +0 -1
- data/lib/mongo/operation/write/command/create_user.rb +0 -1
- data/lib/mongo/operation/write/command/delete.rb +0 -1
- data/lib/mongo/operation/write/command/drop_index.rb +0 -1
- data/lib/mongo/operation/write/command/insert.rb +0 -1
- data/lib/mongo/operation/write/command/remove_user.rb +0 -1
- data/lib/mongo/operation/write/command/update.rb +0 -1
- data/lib/mongo/operation/write/command/update_user.rb +0 -1
- data/lib/mongo/operation/write/command/writable.rb +13 -18
- data/lib/mongo/operation/write/create_index.rb +4 -27
- data/lib/mongo/operation/write/create_user.rb +4 -30
- data/lib/mongo/operation/write/delete.rb +5 -28
- data/lib/mongo/operation/write/drop_index.rb +3 -3
- data/lib/mongo/operation/write/gle.rb +48 -0
- data/lib/mongo/operation/write/idable.rb +5 -0
- data/lib/mongo/operation/write/insert.rb +2 -24
- data/lib/mongo/operation/write/remove_user.rb +4 -27
- data/lib/mongo/operation/write/update.rb +4 -32
- data/lib/mongo/operation/write/update_user.rb +4 -30
- data/lib/mongo/operation/write/write_command_enabled.rb +53 -0
- data/lib/mongo/options/mapper.rb +4 -2
- data/lib/mongo/protocol/delete.rb +68 -3
- data/lib/mongo/protocol/get_more.rb +54 -2
- data/lib/mongo/protocol/insert.rb +59 -1
- data/lib/mongo/protocol/kill_cursors.rb +53 -4
- data/lib/mongo/protocol/message.rb +12 -12
- data/lib/mongo/protocol/query.rb +139 -65
- data/lib/mongo/protocol/reply.rb +69 -1
- data/lib/mongo/protocol/update.rb +70 -1
- data/lib/mongo/server/connection.rb +11 -3
- data/lib/mongo/server/description.rb +29 -0
- data/lib/mongo/server/description/features.rb +2 -1
- data/lib/mongo/server/monitor.rb +2 -2
- data/lib/mongo/server_selector.rb +14 -10
- data/lib/mongo/server_selector/selectable.rb +24 -22
- data/lib/mongo/socket.rb +6 -3
- data/lib/mongo/socket/tcp.rb +2 -2
- data/lib/mongo/socket/unix.rb +5 -8
- data/lib/mongo/uri.rb +243 -139
- data/lib/mongo/version.rb +1 -1
- data/spec/mongo/address/unix_spec.rb +1 -1
- data/spec/mongo/address_spec.rb +25 -0
- data/spec/mongo/auth/ldap/conversation_spec.rb +43 -0
- data/spec/mongo/auth/user/view_spec.rb +26 -1
- data/spec/mongo/bulk_write/ordered_combiner_spec.rb +271 -0
- data/spec/mongo/bulk_write/unordered_combiner_spec.rb +239 -0
- data/spec/mongo/bulk_write_spec.rb +332 -166
- data/spec/mongo/client_spec.rb +25 -0
- data/spec/mongo/cluster/topology/replica_set_spec.rb +2 -0
- data/spec/mongo/collection/view/aggregation_spec.rb +65 -0
- data/spec/mongo/collection/view/immutable_spec.rb +103 -0
- data/spec/mongo/collection/view/map_reduce_spec.rb +98 -3
- data/spec/mongo/collection/view/readable_spec.rb +17 -30
- data/spec/mongo/collection/view_spec.rb +233 -7
- data/spec/mongo/collection_spec.rb +360 -18
- data/spec/mongo/command_monitoring_spec.rb +51 -0
- data/spec/mongo/connection_string_spec.rb +137 -0
- data/spec/mongo/database_spec.rb +27 -11
- data/spec/mongo/grid/file/chunk_spec.rb +5 -5
- data/spec/mongo/grid/file/{metadata_spec.rb → info_spec.rb} +29 -17
- data/spec/mongo/grid/file_spec.rb +8 -8
- data/spec/mongo/grid/fs_bucket_spec.rb +1020 -0
- data/spec/mongo/grid/stream/read_spec.rb +275 -0
- data/spec/mongo/grid/stream/write_spec.rb +440 -0
- data/spec/mongo/grid/stream_spec.rb +48 -0
- data/spec/mongo/gridfs_spec.rb +50 -0
- data/spec/mongo/logger_spec.rb +0 -40
- data/spec/mongo/monitoring/command_log_subscriber_spec.rb +76 -0
- data/spec/mongo/operation/{aggregate_spec.rb → commands/aggregate_spec.rb} +0 -42
- data/spec/mongo/operation/{read → commands}/collections_info_spec.rb +1 -1
- data/spec/mongo/operation/{command_spec.rb → commands/command_spec.rb} +0 -0
- data/spec/mongo/operation/{read → commands}/indexes_spec.rb +1 -1
- data/spec/mongo/operation/{map_reduce_spec.rb → commands/map_reduce_spec.rb} +0 -18
- data/spec/mongo/operation/kill_cursors_spec.rb +1 -1
- data/spec/mongo/operation/{read_preferrable_spec.rb → read_preference_spec.rb} +11 -11
- data/spec/mongo/operation/write/bulk/{bulk_delete_spec.rb → delete_spec.rb} +1 -12
- data/spec/mongo/operation/write/bulk/{bulk_insert_spec.rb → insert_spec.rb} +1 -12
- data/spec/mongo/operation/write/bulk/{bulk_update_spec.rb → update_spec.rb} +1 -12
- data/spec/mongo/operation/write/insert_spec.rb +0 -11
- data/spec/mongo/protocol/kill_cursors_spec.rb +5 -3
- data/spec/mongo/server/description_spec.rb +42 -0
- data/spec/mongo/server/monitor_spec.rb +21 -0
- data/spec/mongo/server_discovery_and_monitoring_spec.rb +1 -0
- data/spec/mongo/server_selection_spec.rb +3 -3
- data/spec/mongo/server_selector/nearest_spec.rb +34 -27
- data/spec/mongo/server_selector/primary_preferred_spec.rb +31 -30
- data/spec/mongo/server_selector/primary_spec.rb +14 -13
- data/spec/mongo/server_selector/secondary_preferred_spec.rb +27 -26
- data/spec/mongo/server_selector/secondary_spec.rb +23 -22
- data/spec/mongo/server_selector_spec.rb +87 -24
- data/spec/mongo/socket/unix_spec.rb +52 -0
- data/spec/mongo/uri_spec.rb +251 -39
- data/spec/spec_helper.rb +11 -4
- data/spec/support/authorization.rb +4 -5
- data/spec/support/command_monitoring.rb +365 -0
- data/spec/support/command_monitoring/bulkWrite.yml +73 -0
- data/spec/support/command_monitoring/command.yml +42 -0
- data/spec/support/command_monitoring/deleteMany.yml +55 -0
- data/spec/support/command_monitoring/deleteOne.yml +55 -0
- data/spec/support/command_monitoring/find.yml +219 -0
- data/spec/support/command_monitoring/insertMany.yml +81 -0
- data/spec/support/command_monitoring/insertOne.yml +51 -0
- data/spec/support/command_monitoring/updateMany.yml +67 -0
- data/spec/support/command_monitoring/updateOne.yml +95 -0
- data/spec/support/connection_string.rb +228 -0
- data/spec/support/connection_string_tests/invalid-uris.yml +193 -0
- data/spec/support/connection_string_tests/valid-auth.yml +256 -0
- data/spec/support/connection_string_tests/valid-host_identifiers.yml +121 -0
- data/spec/support/connection_string_tests/valid-options.yml +30 -0
- data/spec/support/connection_string_tests/valid-unix_socket-absolute.yml +197 -0
- data/spec/support/connection_string_tests/valid-unix_socket-relative.yml +213 -0
- data/spec/support/connection_string_tests/valid-warnings.yml +55 -0
- data/spec/support/crud.rb +3 -1
- data/spec/support/crud/read.rb +14 -10
- data/spec/support/crud/write.rb +36 -9
- data/spec/support/gridfs.rb +637 -0
- data/spec/support/gridfs_tests/delete.yml +157 -0
- data/spec/support/gridfs_tests/download.yml +210 -0
- data/spec/support/gridfs_tests/download_by_name.yml +113 -0
- data/spec/support/gridfs_tests/upload.yml +158 -0
- data/spec/support/sdam/rs/equal_electionids.yml +1 -2
- data/spec/support/sdam/rs/new_primary_new_electionid.yml +0 -3
- data/spec/support/sdam/rs/primary_mismatched_me.yml +37 -0
- data/spec/support/sdam/rs/primary_to_no_primary_mismatched_me.yml +75 -0
- data/spec/support/sdam/rs/secondary_mismatched_me.yml +37 -0
- data/spec/support/sdam/single/direct_connection_rsarbiter.yml +1 -1
- data/spec/support/sdam/single/direct_connection_rsprimary.yml +1 -1
- data/spec/support/sdam/single/direct_connection_rssecondary.yml +1 -1
- data/spec/support/sdam/single/direct_connection_slave.yml +1 -1
- data/spec/support/sdam/single/direct_connection_standalone.yml +1 -1
- data/spec/support/sdam/single/not_ok_response.yml +0 -1
- data/spec/support/server_discovery_and_monitoring.rb +3 -1
- data/spec/support/server_selection.rb +3 -1
- data/spec/support/shared/bulk_write.rb +192 -0
- data/spec/support/shared/server_selector.rb +21 -12
- metadata +147 -57
- metadata.gz.sig +0 -0
- data/lib/mongo/bulk_write/bulk_writable.rb +0 -252
- data/lib/mongo/bulk_write/deletable.rb +0 -57
- data/lib/mongo/bulk_write/insertable.rb +0 -49
- data/lib/mongo/bulk_write/replacable.rb +0 -58
- data/lib/mongo/bulk_write/updatable.rb +0 -69
- data/lib/mongo/grid/fs.rb +0 -146
- data/lib/mongo/operation/list_collections/result.rb +0 -114
- data/lib/mongo/operation/list_indexes/result.rb +0 -118
- data/lib/mongo/operation/read/collections_info.rb +0 -68
- data/lib/mongo/operation/read/indexes.rb +0 -69
- data/lib/mongo/operation/read/list_collections.rb +0 -76
- data/lib/mongo/operation/read/list_indexes.rb +0 -78
- data/lib/mongo/operation/write/bulk/bulk_delete.rb +0 -145
- data/lib/mongo/operation/write/bulk/bulk_delete/result.rb +0 -75
- data/lib/mongo/operation/write/bulk/bulk_insert.rb +0 -132
- data/lib/mongo/operation/write/bulk/bulk_insert/result.rb +0 -130
- data/lib/mongo/operation/write/bulk/bulk_mergable.rb +0 -67
- data/lib/mongo/operation/write/bulk/bulk_update.rb +0 -154
- data/lib/mongo/operation/write/bulk/bulk_update/result.rb +0 -174
- data/lib/mongo/operation/write/bulk/legacy_bulk_mergable.rb +0 -83
- data/spec/mongo/grid/fs_spec.rb +0 -160
- data/spec/mongo/loggable_spec.rb +0 -63
@@ -6,66 +6,125 @@ describe Mongo::ServerSelector do
|
|
6
6
|
|
7
7
|
describe '.get' do
|
8
8
|
|
9
|
-
let(:
|
10
|
-
described_class.get(
|
9
|
+
let(:selector) do
|
10
|
+
described_class.get(:mode => name, :tag_sets => tag_sets)
|
11
11
|
end
|
12
12
|
|
13
|
-
let(:name) { :secondary }
|
14
|
-
let(:tag_sets) { [{ 'test' => 'tag' }] }
|
15
|
-
|
16
13
|
context 'when the mode is primary' do
|
17
|
-
|
14
|
+
|
15
|
+
let(:name) do
|
16
|
+
:primary
|
17
|
+
end
|
18
18
|
|
19
19
|
it 'returns a read preference of class Primary' do
|
20
|
-
expect(
|
20
|
+
expect(selector).to be_a(Mongo::ServerSelector::Primary)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
24
|
context 'when the mode is primary_preferred' do
|
25
|
-
let(:name)
|
25
|
+
let(:name) do
|
26
|
+
:primary_preferred
|
27
|
+
end
|
26
28
|
|
27
29
|
it 'returns a read preference of class PrimaryPreferred' do
|
28
|
-
expect(
|
30
|
+
expect(selector).to be_a(Mongo::ServerSelector::PrimaryPreferred)
|
29
31
|
end
|
30
32
|
end
|
31
33
|
|
32
34
|
context 'when the mode is secondary' do
|
33
|
-
let(:name)
|
35
|
+
let(:name) do
|
36
|
+
:secondary
|
37
|
+
end
|
34
38
|
|
35
39
|
it 'returns a read preference of class Secondary' do
|
36
|
-
expect(
|
40
|
+
expect(selector).to be_a(Mongo::ServerSelector::Secondary)
|
37
41
|
end
|
38
42
|
end
|
39
43
|
|
40
44
|
context 'when the mode is secondary_preferred' do
|
41
|
-
let(:name)
|
45
|
+
let(:name) do
|
46
|
+
:secondary_preferred
|
47
|
+
end
|
42
48
|
|
43
49
|
it 'returns a read preference of class SecondaryPreferred' do
|
44
|
-
expect(
|
50
|
+
expect(selector).to be_a(Mongo::ServerSelector::SecondaryPreferred)
|
45
51
|
end
|
46
52
|
end
|
47
53
|
|
48
54
|
context 'when the mode is nearest' do
|
49
|
-
let(:name)
|
55
|
+
let(:name) do
|
56
|
+
:nearest
|
57
|
+
end
|
50
58
|
|
51
59
|
it 'returns a read preference of class Nearest' do
|
52
|
-
expect(
|
60
|
+
expect(selector).to be_a(Mongo::ServerSelector::Nearest)
|
53
61
|
end
|
54
62
|
end
|
55
63
|
|
56
64
|
context 'when a mode is not provided' do
|
57
|
-
let(:
|
65
|
+
let(:selector) { described_class.get }
|
58
66
|
|
59
67
|
it 'returns a read preference of class Primary' do
|
60
|
-
expect(
|
68
|
+
expect(selector).to be_a(Mongo::ServerSelector::Primary)
|
61
69
|
end
|
62
70
|
end
|
63
71
|
|
64
|
-
context 'when tag sets provided' do
|
65
|
-
|
72
|
+
context 'when tag sets are provided' do
|
73
|
+
|
74
|
+
let(:selector) do
|
75
|
+
described_class.get(:mode => :secondary, :tag_sets => tag_sets)
|
76
|
+
end
|
77
|
+
|
78
|
+
let(:tag_sets) do
|
79
|
+
[{ 'test' => 'tag' }]
|
80
|
+
end
|
66
81
|
|
67
82
|
it 'sets tag sets on the read preference object' do
|
68
|
-
expect(
|
83
|
+
expect(selector.tag_sets).to eq(tag_sets)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
context 'when server_selection_timeout is specified' do
|
88
|
+
|
89
|
+
let(:selector) do
|
90
|
+
described_class.get(:mode => :secondary, :server_selection_timeout => 1)
|
91
|
+
end
|
92
|
+
|
93
|
+
it 'sets server selection timeout on the read preference object' do
|
94
|
+
expect(selector.server_selection_timeout).to eq(1)
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
context 'when server_selection_timeout is not specified' do
|
99
|
+
|
100
|
+
let(:selector) do
|
101
|
+
described_class.get(:mode => :secondary)
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'sets server selection timeout to the default' do
|
105
|
+
expect(selector.server_selection_timeout).to eq(Mongo::ServerSelector::SERVER_SELECTION_TIMEOUT)
|
106
|
+
end
|
107
|
+
end
|
108
|
+
|
109
|
+
context 'when local_threshold is specified' do
|
110
|
+
|
111
|
+
let(:selector) do
|
112
|
+
described_class.get(:mode => :secondary, :local_threshold => 0.010)
|
113
|
+
end
|
114
|
+
|
115
|
+
it 'sets local_threshold on the read preference object' do
|
116
|
+
expect(selector.local_threshold).to eq(0.010)
|
117
|
+
end
|
118
|
+
end
|
119
|
+
|
120
|
+
context 'when local_threshold is not specified' do
|
121
|
+
|
122
|
+
let(:selector) do
|
123
|
+
described_class.get(:mode => :secondary)
|
124
|
+
end
|
125
|
+
|
126
|
+
it 'sets local threshold to the default' do
|
127
|
+
expect(selector.local_threshold).to eq(Mongo::ServerSelector::LOCAL_THRESHOLD)
|
69
128
|
end
|
70
129
|
end
|
71
130
|
end
|
@@ -74,7 +133,9 @@ describe Mongo::ServerSelector do
|
|
74
133
|
|
75
134
|
context 'when #select returns a list of nils' do
|
76
135
|
|
77
|
-
let(:servers)
|
136
|
+
let(:servers) do
|
137
|
+
[ server(:primary) ]
|
138
|
+
end
|
78
139
|
|
79
140
|
let(:cluster) do
|
80
141
|
double('cluster').tap do |c|
|
@@ -86,7 +147,7 @@ describe Mongo::ServerSelector do
|
|
86
147
|
end
|
87
148
|
|
88
149
|
let(:read_pref) do
|
89
|
-
described_class.get(
|
150
|
+
described_class.get(mode: :primary, server_selection_timeout: 0.1).tap do |pref|
|
90
151
|
allow(pref).to receive(:select).and_return([ nil, nil ])
|
91
152
|
end
|
92
153
|
end
|
@@ -103,7 +164,9 @@ describe Mongo::ServerSelector do
|
|
103
164
|
|
104
165
|
context 'when cluster#servers is empty' do
|
105
166
|
|
106
|
-
let(:servers)
|
167
|
+
let(:servers) do
|
168
|
+
[]
|
169
|
+
end
|
107
170
|
|
108
171
|
let(:cluster) do
|
109
172
|
double('cluster').tap do |c|
|
@@ -115,7 +178,7 @@ describe Mongo::ServerSelector do
|
|
115
178
|
end
|
116
179
|
|
117
180
|
let(:read_pref) do
|
118
|
-
described_class.get(
|
181
|
+
described_class.get(mode: :primary, server_selection_timeout: 0.1)
|
119
182
|
end
|
120
183
|
|
121
184
|
it 'raises a NoServerAvailable error' do
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Mongo::Socket::Unix do
|
4
|
+
|
5
|
+
let(:socket) do
|
6
|
+
described_class.new("/tmp/mongodb-27017.sock", 5)
|
7
|
+
end
|
8
|
+
|
9
|
+
describe '#connect!' do
|
10
|
+
|
11
|
+
before do
|
12
|
+
socket.connect!
|
13
|
+
end
|
14
|
+
|
15
|
+
after do
|
16
|
+
socket.close
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'connects to the server' do
|
20
|
+
expect(socket).to be_alive
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#alive?' do
|
25
|
+
|
26
|
+
context 'when the socket is connected' do
|
27
|
+
|
28
|
+
before do
|
29
|
+
socket.connect!
|
30
|
+
end
|
31
|
+
|
32
|
+
after do
|
33
|
+
socket.close
|
34
|
+
end
|
35
|
+
|
36
|
+
it 'returns true' do
|
37
|
+
expect(socket).to be_alive
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'when the socket is not connected' do
|
42
|
+
|
43
|
+
before do
|
44
|
+
socket.close
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'raises error' do
|
48
|
+
expect { socket.alive? }.to raise_error(IOError)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
data/spec/mongo/uri_spec.rb
CHANGED
@@ -4,6 +4,217 @@ describe Mongo::URI do
|
|
4
4
|
let(:scheme) { 'mongodb://' }
|
5
5
|
let(:uri) { described_class.new(string) }
|
6
6
|
|
7
|
+
describe 'invalid uris' do
|
8
|
+
|
9
|
+
context 'string is not uri' do
|
10
|
+
|
11
|
+
let(:string) { 'tyler' }
|
12
|
+
|
13
|
+
it 'raises an error' do
|
14
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
context 'empty string' do
|
19
|
+
|
20
|
+
let(:string) { '' }
|
21
|
+
|
22
|
+
it 'raises an error' do
|
23
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context 'mongo://localhost:27017' do
|
28
|
+
|
29
|
+
let(:string) { 'mongo://localhost:27017' }
|
30
|
+
|
31
|
+
it 'raises an error' do
|
32
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
context 'mongodb://' do
|
37
|
+
|
38
|
+
let(:string) { 'mongodb://' }
|
39
|
+
|
40
|
+
it 'raises an error' do
|
41
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context 'mongodb://localhost::27017' do
|
46
|
+
|
47
|
+
let(:string) { 'mongodb://localhost::27017' }
|
48
|
+
|
49
|
+
it 'raises an error' do
|
50
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context 'mongodb://localhost::27017/' do
|
55
|
+
|
56
|
+
let(:string) { 'mongodb://localhost::27017/' }
|
57
|
+
|
58
|
+
it 'raises an error' do
|
59
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
context 'mongodb://::' do
|
64
|
+
|
65
|
+
let(:string) { 'mongodb://::' }
|
66
|
+
|
67
|
+
it 'raises an error' do
|
68
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
context 'mongodb://localhost,localhost::' do
|
73
|
+
|
74
|
+
let(:string) { 'mongodb://localhost,localhost::' }
|
75
|
+
|
76
|
+
it 'raises an error' do
|
77
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
context 'mongodb://localhost::27017,abc' do
|
82
|
+
|
83
|
+
let(:string) { 'mongodb://localhost::27017,abc' }
|
84
|
+
|
85
|
+
it 'raises an error' do
|
86
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
context 'mongodb://localhost:-1' do
|
91
|
+
|
92
|
+
let(:string) { 'mongodb://localhost:-1' }
|
93
|
+
|
94
|
+
it 'raises an error' do
|
95
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
context 'mongodb://localhost:0/' do
|
100
|
+
|
101
|
+
let(:string) { 'mongodb://localhost:0/' }
|
102
|
+
|
103
|
+
it 'raises an error' do
|
104
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
105
|
+
end
|
106
|
+
end
|
107
|
+
|
108
|
+
context 'mongodb://localhost:65536' do
|
109
|
+
|
110
|
+
let(:string) { 'mongodb://localhost:65536' }
|
111
|
+
|
112
|
+
it 'raises an error' do
|
113
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
114
|
+
end
|
115
|
+
end
|
116
|
+
|
117
|
+
context 'mongodb://localhost:foo' do
|
118
|
+
|
119
|
+
let(:string) { 'mongodb://localhost:foo' }
|
120
|
+
|
121
|
+
it 'raises an error' do
|
122
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
context 'mongodb://[::1]:-1' do
|
127
|
+
|
128
|
+
let(:string) { 'mongodb://[::1]:-1' }
|
129
|
+
|
130
|
+
it 'raises an error' do
|
131
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
132
|
+
end
|
133
|
+
end
|
134
|
+
|
135
|
+
context 'mongodb://[::1]:0/' do
|
136
|
+
|
137
|
+
let(:string) { 'mongodb://[::1]:0/' }
|
138
|
+
|
139
|
+
it 'raises an error' do
|
140
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
141
|
+
end
|
142
|
+
end
|
143
|
+
|
144
|
+
context 'mongodb://[::1]:65536' do
|
145
|
+
|
146
|
+
let(:string) { 'mongodb://[::1]:65536' }
|
147
|
+
|
148
|
+
it 'raises an error' do
|
149
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
150
|
+
end
|
151
|
+
end
|
152
|
+
|
153
|
+
context 'mongodb://[::1]:65536/' do
|
154
|
+
|
155
|
+
let(:string) { 'mongodb://[::1]:65536/' }
|
156
|
+
|
157
|
+
it 'raises an error' do
|
158
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
context 'mongodb://[::1]:foo' do
|
163
|
+
|
164
|
+
let(:string) { 'mongodb://[::1]:foo' }
|
165
|
+
|
166
|
+
it 'raises an error' do
|
167
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
168
|
+
end
|
169
|
+
end
|
170
|
+
|
171
|
+
context 'mongodb://example.com?w=1' do
|
172
|
+
|
173
|
+
let(:string) { 'mongodb://example.com?w=1' }
|
174
|
+
|
175
|
+
it 'raises an error' do
|
176
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
177
|
+
end
|
178
|
+
end
|
179
|
+
|
180
|
+
context 'mongodb://example.com/?w' do
|
181
|
+
|
182
|
+
let(:string) { 'mongodb://example.com/?w' }
|
183
|
+
|
184
|
+
it 'raises an error' do
|
185
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
context 'mongodb://alice:foo:bar@127.0.0.1' do
|
190
|
+
|
191
|
+
let(:string) { 'mongodb://alice:foo:bar@127.0.0.1' }
|
192
|
+
|
193
|
+
it 'raises an error' do
|
194
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
195
|
+
end
|
196
|
+
end
|
197
|
+
|
198
|
+
context 'mongodb://alice@@127.0.0.1' do
|
199
|
+
|
200
|
+
let(:string) { 'mongodb://alice@@127.0.0.1' }
|
201
|
+
|
202
|
+
it 'raises an error' do
|
203
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
204
|
+
end
|
205
|
+
end
|
206
|
+
|
207
|
+
context 'mongodb://alice@foo:bar@127.0.0.1' do
|
208
|
+
|
209
|
+
let(:string) { 'mongodb://alice@foo:bar@127.0.0.1' }
|
210
|
+
|
211
|
+
it 'raises an error' do
|
212
|
+
expect { uri }.to raise_error(Mongo::Error::InvalidURI)
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
end
|
217
|
+
|
7
218
|
describe '#initialize' do
|
8
219
|
context 'string is not uri' do
|
9
220
|
let(:string) { 'tyler' }
|
@@ -49,7 +260,7 @@ describe Mongo::URI do
|
|
49
260
|
end
|
50
261
|
|
51
262
|
context 'unix socket server' do
|
52
|
-
let(:servers) { '
|
263
|
+
let(:servers) { '%2Ftmp%2Fmongodb-27017.sock' }
|
53
264
|
|
54
265
|
it 'returns an array with the parsed server' do
|
55
266
|
expect(uri.servers).to eq([servers])
|
@@ -138,7 +349,7 @@ describe Mongo::URI do
|
|
138
349
|
end
|
139
350
|
end
|
140
351
|
|
141
|
-
describe '#
|
352
|
+
describe '#uri_options' do
|
142
353
|
let(:servers) { 'localhost' }
|
143
354
|
let(:string) { "#{scheme}#{servers}/?#{options}" }
|
144
355
|
|
@@ -146,7 +357,7 @@ describe Mongo::URI do
|
|
146
357
|
let(:string) { "#{scheme}#{servers}" }
|
147
358
|
|
148
359
|
it 'returns an empty hash' do
|
149
|
-
expect(uri.
|
360
|
+
expect(uri.uri_options).to be_empty
|
150
361
|
end
|
151
362
|
end
|
152
363
|
|
@@ -157,7 +368,7 @@ describe Mongo::URI do
|
|
157
368
|
let(:concern) { { :w => 1 } }
|
158
369
|
|
159
370
|
it 'sets the write concern options' do
|
160
|
-
expect(uri.
|
371
|
+
expect(uri.uri_options[:write]).to eq(concern)
|
161
372
|
end
|
162
373
|
end
|
163
374
|
|
@@ -166,7 +377,7 @@ describe Mongo::URI do
|
|
166
377
|
let(:concern) { { :w => :majority } }
|
167
378
|
|
168
379
|
it 'sets the write concern options' do
|
169
|
-
expect(uri.
|
380
|
+
expect(uri.uri_options[:write]).to eq(concern)
|
170
381
|
end
|
171
382
|
end
|
172
383
|
|
@@ -175,7 +386,7 @@ describe Mongo::URI do
|
|
175
386
|
let(:concern) { { :j => true } }
|
176
387
|
|
177
388
|
it 'sets the write concern options' do
|
178
|
-
expect(uri.
|
389
|
+
expect(uri.uri_options[:write]).to eq(concern)
|
179
390
|
end
|
180
391
|
end
|
181
392
|
|
@@ -184,7 +395,7 @@ describe Mongo::URI do
|
|
184
395
|
let(:concern) { { :fsync => true } }
|
185
396
|
|
186
397
|
it 'sets the write concern options' do
|
187
|
-
expect(uri.
|
398
|
+
expect(uri.uri_options[:write]).to eq(concern)
|
188
399
|
end
|
189
400
|
end
|
190
401
|
|
@@ -194,7 +405,7 @@ describe Mongo::URI do
|
|
194
405
|
let(:concern) { { :w => 2, :timeout => timeout } }
|
195
406
|
|
196
407
|
it 'sets the write concern options' do
|
197
|
-
expect(uri.
|
408
|
+
expect(uri.uri_options[:write]).to eq(concern)
|
198
409
|
end
|
199
410
|
end
|
200
411
|
end
|
@@ -207,7 +418,7 @@ describe Mongo::URI do
|
|
207
418
|
let(:read) { { :mode => :primary } }
|
208
419
|
|
209
420
|
it 'sets the read preference' do
|
210
|
-
expect(uri.
|
421
|
+
expect(uri.uri_options[:read]).to eq(read)
|
211
422
|
end
|
212
423
|
end
|
213
424
|
|
@@ -216,7 +427,7 @@ describe Mongo::URI do
|
|
216
427
|
let(:read) { { :mode => :primary_preferred } }
|
217
428
|
|
218
429
|
it 'sets the read preference' do
|
219
|
-
expect(uri.
|
430
|
+
expect(uri.uri_options[:read]).to eq(read)
|
220
431
|
end
|
221
432
|
end
|
222
433
|
|
@@ -225,7 +436,7 @@ describe Mongo::URI do
|
|
225
436
|
let(:read) { { :mode => :secondary } }
|
226
437
|
|
227
438
|
it 'sets the read preference' do
|
228
|
-
expect(uri.
|
439
|
+
expect(uri.uri_options[:read]).to eq(read)
|
229
440
|
end
|
230
441
|
end
|
231
442
|
|
@@ -234,7 +445,7 @@ describe Mongo::URI do
|
|
234
445
|
let(:read) { { :mode => :secondary_preferred } }
|
235
446
|
|
236
447
|
it 'sets the read preference' do
|
237
|
-
expect(uri.
|
448
|
+
expect(uri.uri_options[:read]).to eq(read)
|
238
449
|
end
|
239
450
|
end
|
240
451
|
|
@@ -243,7 +454,7 @@ describe Mongo::URI do
|
|
243
454
|
let(:read) { { :mode => :nearest } }
|
244
455
|
|
245
456
|
it 'sets the read preference' do
|
246
|
-
expect(uri.
|
457
|
+
expect(uri.uri_options[:read]).to eq(read)
|
247
458
|
end
|
248
459
|
end
|
249
460
|
end
|
@@ -260,7 +471,7 @@ describe Mongo::URI do
|
|
260
471
|
end
|
261
472
|
|
262
473
|
it 'sets the read preference tag set' do
|
263
|
-
expect(uri.
|
474
|
+
expect(uri.uri_options[:read]).to eq(read)
|
264
475
|
end
|
265
476
|
end
|
266
477
|
|
@@ -274,7 +485,7 @@ describe Mongo::URI do
|
|
274
485
|
end
|
275
486
|
|
276
487
|
it 'sets the read preference tag sets' do
|
277
|
-
expect(uri.
|
488
|
+
expect(uri.uri_options[:read]).to eq(read)
|
278
489
|
end
|
279
490
|
end
|
280
491
|
end
|
@@ -284,7 +495,7 @@ describe Mongo::URI do
|
|
284
495
|
let(:options) { "replicaSet=#{rs_name}" }
|
285
496
|
|
286
497
|
it 'sets the replica set option' do
|
287
|
-
expect(uri.
|
498
|
+
expect(uri.uri_options[:replica_set]).to eq(rs_name)
|
288
499
|
end
|
289
500
|
end
|
290
501
|
|
@@ -293,28 +504,29 @@ describe Mongo::URI do
|
|
293
504
|
|
294
505
|
context 'plain' do
|
295
506
|
let(:mechanism) { 'PLAIN' }
|
296
|
-
let(:
|
507
|
+
let(:expected) { :plain }
|
297
508
|
|
298
509
|
it 'sets the auth mechanism to :plain' do
|
299
|
-
expect(uri.
|
510
|
+
expect(uri.uri_options[:auth_mech]).to eq(expected)
|
300
511
|
end
|
301
512
|
end
|
302
513
|
|
303
514
|
context 'mongodb-cr' do
|
304
515
|
let(:mechanism) { 'MONGODB-CR' }
|
305
|
-
let(:
|
516
|
+
let(:expected) { :mongodb_cr }
|
306
517
|
|
307
518
|
it 'sets the auth mechanism to :mongodb_cr' do
|
308
|
-
expect(uri.
|
519
|
+
expect(uri.uri_options[:auth_mech]).to eq(expected)
|
309
520
|
end
|
310
521
|
end
|
311
522
|
|
312
523
|
context 'gssapi' do
|
313
524
|
let(:mechanism) { 'GSSAPI' }
|
314
|
-
let(:
|
525
|
+
let(:expected) { :gssapi }
|
526
|
+
|
315
527
|
|
316
528
|
it 'sets the auth mechanism to :gssapi' do
|
317
|
-
expect(uri.
|
529
|
+
expect(uri.uri_options[:auth_mech]).to eq(expected)
|
318
530
|
end
|
319
531
|
end
|
320
532
|
end
|
@@ -327,7 +539,7 @@ describe Mongo::URI do
|
|
327
539
|
let(:auth) { { :source => 'foo' } }
|
328
540
|
|
329
541
|
it 'sets the auth source to the database' do
|
330
|
-
expect(uri.
|
542
|
+
expect(uri.uri_options[:auth]).to eq(auth)
|
331
543
|
end
|
332
544
|
end
|
333
545
|
|
@@ -336,7 +548,7 @@ describe Mongo::URI do
|
|
336
548
|
let(:auth) { { :source => :external } }
|
337
549
|
|
338
550
|
it 'sets the auth source to :external' do
|
339
|
-
expect(uri.
|
551
|
+
expect(uri.uri_options[:auth]).to eq(auth)
|
340
552
|
end
|
341
553
|
end
|
342
554
|
end
|
@@ -354,7 +566,7 @@ describe Mongo::URI do
|
|
354
566
|
end
|
355
567
|
|
356
568
|
it 'sets the auth mechanism properties' do
|
357
|
-
expect(uri.
|
569
|
+
expect(uri.uri_options[:auth]).to eq(auth)
|
358
570
|
end
|
359
571
|
end
|
360
572
|
|
@@ -369,7 +581,7 @@ describe Mongo::URI do
|
|
369
581
|
end
|
370
582
|
|
371
583
|
it 'sets the auth mechanism properties' do
|
372
|
-
expect(uri.
|
584
|
+
expect(uri.uri_options[:auth]).to eq(auth)
|
373
585
|
end
|
374
586
|
end
|
375
587
|
|
@@ -384,7 +596,7 @@ describe Mongo::URI do
|
|
384
596
|
end
|
385
597
|
|
386
598
|
it 'sets the auth mechanism properties' do
|
387
|
-
expect(uri.
|
599
|
+
expect(uri.uri_options[:auth]).to eq(auth)
|
388
600
|
end
|
389
601
|
end
|
390
602
|
|
@@ -406,7 +618,7 @@ describe Mongo::URI do
|
|
406
618
|
end
|
407
619
|
|
408
620
|
it 'sets the auth mechanism properties' do
|
409
|
-
expect(uri.
|
621
|
+
expect(uri.uri_options[:auth]).to eq(auth)
|
410
622
|
end
|
411
623
|
end
|
412
624
|
end
|
@@ -415,7 +627,7 @@ describe Mongo::URI do
|
|
415
627
|
let(:options) { "connectTimeoutMS=4567" }
|
416
628
|
|
417
629
|
it 'sets the the connect timeout' do
|
418
|
-
expect(uri.
|
630
|
+
expect(uri.uri_options[:connect_timeout]).to eq(4.567)
|
419
631
|
end
|
420
632
|
end
|
421
633
|
|
@@ -423,7 +635,7 @@ describe Mongo::URI do
|
|
423
635
|
let(:options) { "socketTimeoutMS=8910" }
|
424
636
|
|
425
637
|
it 'sets the socket timeout' do
|
426
|
-
expect(uri.
|
638
|
+
expect(uri.uri_options[:socket_timeout]).to eq(8.910)
|
427
639
|
end
|
428
640
|
end
|
429
641
|
|
@@ -432,7 +644,7 @@ describe Mongo::URI do
|
|
432
644
|
let(:options) { "serverSelectionTimeoutMS=3561" }
|
433
645
|
|
434
646
|
it 'sets the the connect timeout' do
|
435
|
-
expect(uri.
|
647
|
+
expect(uri.uri_options[:server_selection_timeout]).to eq(3.561)
|
436
648
|
end
|
437
649
|
end
|
438
650
|
|
@@ -441,7 +653,7 @@ describe Mongo::URI do
|
|
441
653
|
let(:options) { "localThresholdMS=3561" }
|
442
654
|
|
443
655
|
it 'sets the the connect timeout' do
|
444
|
-
expect(uri.
|
656
|
+
expect(uri.uri_options[:local_threshold]).to eq(3.561)
|
445
657
|
end
|
446
658
|
end
|
447
659
|
|
@@ -451,7 +663,7 @@ describe Mongo::URI do
|
|
451
663
|
let(:options) { "maxPoolSize=#{max_pool_size}" }
|
452
664
|
|
453
665
|
it 'sets the max pool size option' do
|
454
|
-
expect(uri.
|
666
|
+
expect(uri.uri_options[:max_pool_size]).to eq(max_pool_size)
|
455
667
|
end
|
456
668
|
end
|
457
669
|
|
@@ -461,7 +673,7 @@ describe Mongo::URI do
|
|
461
673
|
let(:options) { "minPoolSize=#{min_pool_size}" }
|
462
674
|
|
463
675
|
it 'sets the min pool size option' do
|
464
|
-
expect(uri.
|
676
|
+
expect(uri.uri_options[:min_pool_size]).to eq(min_pool_size)
|
465
677
|
end
|
466
678
|
end
|
467
679
|
|
@@ -471,7 +683,7 @@ describe Mongo::URI do
|
|
471
683
|
let(:options) { "waitQueueTimeoutMS=#{wait_queue_timeout}" }
|
472
684
|
|
473
685
|
it 'sets the wait queue timeout option' do
|
474
|
-
expect(uri.
|
686
|
+
expect(uri.uri_options[:wait_queue_timeout]).to eq(0.5)
|
475
687
|
end
|
476
688
|
end
|
477
689
|
|
@@ -482,7 +694,7 @@ describe Mongo::URI do
|
|
482
694
|
let(:ssl) { true }
|
483
695
|
|
484
696
|
it 'sets the ssl option to true' do
|
485
|
-
expect(uri.
|
697
|
+
expect(uri.uri_options[:ssl]).to be true
|
486
698
|
end
|
487
699
|
end
|
488
700
|
|
@@ -490,7 +702,7 @@ describe Mongo::URI do
|
|
490
702
|
let(:ssl) { false }
|
491
703
|
|
492
704
|
it 'sets the ssl option to false' do
|
493
|
-
expect(uri.
|
705
|
+
expect(uri.uri_options[:ssl]).to be false
|
494
706
|
end
|
495
707
|
end
|
496
708
|
end
|
@@ -499,7 +711,7 @@ describe Mongo::URI do
|
|
499
711
|
let(:options) { 'w=1&ssl=true' }
|
500
712
|
|
501
713
|
it 'do not overshadow top level options' do
|
502
|
-
expect(uri.
|
714
|
+
expect(uri.uri_options).not_to be_empty
|
503
715
|
end
|
504
716
|
end
|
505
717
|
|
@@ -508,7 +720,7 @@ describe Mongo::URI do
|
|
508
720
|
let(:options) { 'invalidOption=10' }
|
509
721
|
|
510
722
|
let(:uri_options) do
|
511
|
-
uri.
|
723
|
+
uri.uri_options
|
512
724
|
end
|
513
725
|
|
514
726
|
it 'does not raise an exception' do
|