@@ -7,66 +7,75 @@ defmodule Mongo.TopologyDescriptionTest do
7
7
single_server = [ "localhost:27017" ]
8
8
9
9
opts = [
10
- read_preference: ReadPreference . defaults ( % { mode: :secondary } )
10
+ read_preference: ReadPreference . primary ( % { mode: :secondary } )
11
11
]
12
- assert { :ok , single_server } = = TopologyDescription . select_servers ( single ( ) , :read , opts )
12
+ assert { :ok , { ^ single_server , _ } } = TopologyDescription . select_servers ( single ( ) , :read , opts )
13
13
14
- assert { :ok , single_server } == TopologyDescription . select_servers ( single ( ) , :write )
14
+ assert { :ok , { ^ single_server , _ } } = TopologyDescription . select_servers ( single ( ) , :write )
15
15
16
16
opts = [
17
- read_preference: ReadPreference . defaults ( % { mode: :nearest } )
17
+ read_preference: ReadPreference . primary ( % { mode: :nearest } )
18
18
]
19
- assert { :ok , single_server } == TopologyDescription . select_servers ( single ( ) , :read , opts )
19
+ assert { :ok , { ^ single_server , _ } } = TopologyDescription . select_servers ( single ( ) , :read , opts )
20
20
end
21
21
22
22
test "replica set server selection" do
23
23
all_hosts = [ "localhost:27018" , "localhost:27019" , "localhost:27020" ]
24
24
master = "localhost:27018"
25
+ seconardaries = List . delete ( all_hosts , master )
25
26
26
27
opts = [
27
- read_preference: ReadPreference . defaults ( % { mode: :secondary } )
28
+ read_preference: ReadPreference . primary ( % { mode: :secondary } )
28
29
]
29
- assert { :ok , List . delete ( all_hosts , master ) } == TopologyDescription . select_servers ( repl_set_with_master ( ) , :read , opts )
30
+ { :ok , { [ server ] , _ } } = TopologyDescription . select_servers ( repl_set_with_master ( ) , :read , opts )
31
+
32
+ assert Enum . any? ( seconardaries , fn sec -> sec == server end )
30
33
31
34
opts = [
32
- read_preference: ReadPreference . defaults ( % { mode: :primary } )
35
+ read_preference: ReadPreference . primary ( % { mode: :primary } )
33
36
]
34
- assert { :ok , [ master ] } = = TopologyDescription . select_servers ( repl_set_with_master ( ) , :read , opts )
37
+ assert { :ok , { [ master ] , _ } } = TopologyDescription . select_servers ( repl_set_with_master ( ) , :read , opts )
35
38
36
39
opts = [
37
- read_preference: ReadPreference . defaults ( % { mode: :primary_preferred } )
40
+ read_preference: ReadPreference . primary ( % { mode: :primary_preferred } )
38
41
]
39
- assert { :ok , [ master ] } = = TopologyDescription . select_servers ( repl_set_with_master ( ) , :read , opts )
42
+ assert { :ok , { [ master ] , _ } } = TopologyDescription . select_servers ( repl_set_with_master ( ) , :read , opts )
40
43
41
44
opts = [
42
- read_preference: ReadPreference . defaults ( % { mode: :primary_preferred } )
45
+ read_preference: ReadPreference . primary ( % { mode: :primary_preferred } )
43
46
]
44
- assert { :ok , List . delete ( all_hosts , master ) } == TopologyDescription . select_servers ( repl_set_no_master ( ) , :read , opts )
47
+ { :ok , { [ server ] , _ } } = TopologyDescription . select_servers ( repl_set_no_master ( ) , :read , opts )
48
+ assert Enum . any? ( seconardaries , fn sec -> sec == server end )
45
49
46
50
47
51
opts = [
48
- read_preference: ReadPreference . defaults ( % { mode: :nearest } )
52
+ read_preference: ReadPreference . primary ( % { mode: :nearest } )
49
53
]
50
- assert { :ok , all_hosts } == TopologyDescription . select_servers ( repl_set_with_master ( ) , :read , opts )
54
+ { :ok , { [ server ] , _ } } = TopologyDescription . select_servers ( repl_set_with_master ( ) , :read , opts )
55
+ assert Enum . any? ( all_hosts , fn sec -> sec == server end )
51
56
52
57
opts = [
53
- read_preference: ReadPreference . defaults ( % { mode: :secondary } )
58
+ read_preference: ReadPreference . primary ( % { mode: :secondary } )
54
59
]
55
- assert { :ok , List . delete ( all_hosts , master ) } == TopologyDescription . select_servers ( repl_set_no_master ( ) , :read , opts )
60
+ { :ok , { [ server ] , _ } } = TopologyDescription . select_servers ( repl_set_no_master ( ) , :read , opts )
61
+ assert Enum . any? ( seconardaries , fn sec -> sec == server end )
56
62
57
63
opts = [
58
- read_preference: ReadPreference . defaults ( % { mode: :secondary_preferred } )
64
+ read_preference: ReadPreference . primary ( % { mode: :secondary_preferred } )
59
65
]
60
- assert { :ok , List . delete ( all_hosts , master ) } == TopologyDescription . select_servers ( repl_set_with_master ( ) , :read , opts )
66
+ { :ok , { [ server ] , _ } } = TopologyDescription . select_servers ( repl_set_with_master ( ) , :read , opts )
67
+ assert Enum . any? ( seconardaries , fn sec -> sec == server end )
61
68
62
- assert { :ok , [ master ] } = = TopologyDescription . select_servers ( repl_set_only_master ( ) , :read , opts )
69
+ assert { :ok , { [ ^ master ] , _ } } = TopologyDescription . select_servers ( repl_set_only_master ( ) , :read , opts )
63
70
64
- assert { :ok , List . delete ( all_hosts , master ) } == TopologyDescription . select_servers ( repl_set_no_master ( ) , :read , opts )
71
+ { :ok , { [ server ] , _ } } = TopologyDescription . select_servers ( repl_set_no_master ( ) , :read , opts )
72
+ assert Enum . any? ( seconardaries , fn sec -> sec == server end )
65
73
66
74
opts = [
67
- read_preference: ReadPreference . defaults ( % { mode: :nearest } )
75
+ read_preference: ReadPreference . primary ( % { mode: :nearest } )
68
76
]
69
- assert { :ok , all_hosts } == TopologyDescription . select_servers ( repl_set_no_master ( ) , :read , opts )
77
+ { :ok , { [ server ] , _ } } = TopologyDescription . select_servers ( repl_set_no_master ( ) , :read , opts )
78
+ assert Enum . any? ( all_hosts , fn sec -> sec == server end )
70
79
71
80
end
72
81
@@ -76,6 +85,6 @@ defmodule Mongo.TopologyDescriptionTest do
76
85
opts = [
77
86
read_preference: % { mode: :secondary }
78
87
]
79
- assert { :ok , single_server } = = TopologyDescription . select_servers ( single ( ) , :read , opts )
88
+ assert { :ok , { ^ single_server , _ } } = TopologyDescription . select_servers ( single ( ) , :read , opts )
80
89
end
81
90
end
0 commit comments