Skip to content

Commit 32c3c6c

Browse files
committed
JAVA-2084: Implement server discovery and monitoring specification tests
1 parent 062a2bb commit 32c3c6c

File tree

55 files changed

+3282
-2
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+3282
-2
lines changed

build.gradle

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ sourceSets {
4848
test {
4949
groovy { srcDirs = ['src/test'] }
5050
java { srcDirs = ['src/test', 'src/examples'] }
51+
resources {
52+
srcDir 'src/test-resources'
53+
}
5154
}
5255
util.java { srcDirs = ['src/util'] }
5356
}

src/main/com/mongodb/ServerMonitor.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,7 @@ private ServerDescription lookupServerDescription(final DBPort connection) throw
239239
}
240240

241241
@SuppressWarnings("unchecked")
242-
ServerDescription createDescription(final CommandResult commandResult, final ServerVersion serverVersion,
242+
static ServerDescription createDescription(final CommandResult commandResult, final ServerVersion serverVersion,
243243
final long averageLatencyNanos) {
244244
return ServerDescription.builder()
245245
.state(ServerConnectionState.Connected)
@@ -265,7 +265,7 @@ ServerDescription createDescription(final CommandResult commandResult, final Ser
265265
.ok(commandResult.ok()).build();
266266
}
267267

268-
private Set<String> listToSet(final List<String> list) {
268+
private static Set<String> listToSet(final List<String> list) {
269269
if (list == null || list.isEmpty()) {
270270
return Collections.emptySet();
271271
} else {
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
{
2+
"description": "Discover arbiters",
3+
"phases": [
4+
{
5+
"outcome": {
6+
"servers": {
7+
"a:27017": {
8+
"setName": "rs",
9+
"type": "RSPrimary"
10+
},
11+
"b:27017": {
12+
"setName": null,
13+
"type": "Unknown"
14+
}
15+
},
16+
"setName": "rs",
17+
"topologyType": "ReplicaSetWithPrimary"
18+
},
19+
"responses": [
20+
[
21+
"a:27017",
22+
{
23+
"arbiters": [
24+
"b:27017"
25+
],
26+
"hosts": [
27+
"a:27017"
28+
],
29+
"ismaster": true,
30+
"ok": 1,
31+
"setName": "rs"
32+
}
33+
]
34+
]
35+
}
36+
],
37+
"uri": "mongodb://a/?replicaSet=rs"
38+
}
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
{
2+
"description": "Discover passives",
3+
"phases": [
4+
{
5+
"outcome": {
6+
"servers": {
7+
"a:27017": {
8+
"setName": "rs",
9+
"type": "RSPrimary"
10+
},
11+
"b:27017": {
12+
"setName": null,
13+
"type": "Unknown"
14+
}
15+
},
16+
"setName": "rs",
17+
"topologyType": "ReplicaSetWithPrimary"
18+
},
19+
"responses": [
20+
[
21+
"a:27017",
22+
{
23+
"hosts": [
24+
"a:27017"
25+
],
26+
"ismaster": true,
27+
"ok": 1,
28+
"passives": [
29+
"b:27017"
30+
],
31+
"setName": "rs"
32+
}
33+
]
34+
]
35+
},
36+
{
37+
"outcome": {
38+
"servers": {
39+
"a:27017": {
40+
"setName": "rs",
41+
"type": "RSPrimary"
42+
},
43+
"b:27017": {
44+
"setName": "rs",
45+
"type": "RSSecondary"
46+
}
47+
},
48+
"setName": "rs",
49+
"topologyType": "ReplicaSetWithPrimary"
50+
},
51+
"responses": [
52+
[
53+
"b:27017",
54+
{
55+
"hosts": [
56+
"a:27017"
57+
],
58+
"ismaster": false,
59+
"ok": 1,
60+
"passive": true,
61+
"passives": [
62+
"b:27017"
63+
],
64+
"secondary": true,
65+
"setName": "rs"
66+
}
67+
]
68+
]
69+
}
70+
],
71+
"uri": "mongodb://a/?replicaSet=rs"
72+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"description": "Replica set discovery from primary",
3+
"phases": [
4+
{
5+
"outcome": {
6+
"servers": {
7+
"a:27017": {
8+
"setName": "rs",
9+
"type": "RSPrimary"
10+
},
11+
"b:27017": {
12+
"setName": null,
13+
"type": "Unknown"
14+
}
15+
},
16+
"setName": "rs",
17+
"topologyType": "ReplicaSetWithPrimary"
18+
},
19+
"responses": [
20+
[
21+
"a:27017",
22+
{
23+
"hosts": [
24+
"a:27017",
25+
"b:27017"
26+
],
27+
"ismaster": true,
28+
"ok": 1,
29+
"setName": "rs"
30+
}
31+
]
32+
]
33+
}
34+
],
35+
"uri": "mongodb://a/?replicaSet=rs"
36+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
{
2+
"description": "Replica set discovery from secondary",
3+
"phases": [
4+
{
5+
"outcome": {
6+
"servers": {
7+
"a:27017": {
8+
"setName": null,
9+
"type": "Unknown"
10+
},
11+
"b:27017": {
12+
"setName": "rs",
13+
"type": "RSSecondary"
14+
}
15+
},
16+
"setName": "rs",
17+
"topologyType": "ReplicaSetNoPrimary"
18+
},
19+
"responses": [
20+
[
21+
"b:27017",
22+
{
23+
"hosts": [
24+
"a:27017",
25+
"b:27017"
26+
],
27+
"ismaster": false,
28+
"ok": 1,
29+
"secondary": true,
30+
"setName": "rs"
31+
}
32+
]
33+
]
34+
}
35+
],
36+
"uri": "mongodb://b/?replicaSet=rs"
37+
}
Lines changed: 163 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,163 @@
1+
{
2+
"description": "Replica set discovery",
3+
"phases": [
4+
{
5+
"outcome": {
6+
"servers": {
7+
"a:27017": {
8+
"setName": "rs",
9+
"type": "RSSecondary"
10+
},
11+
"b:27017": {
12+
"setName": null,
13+
"type": "Unknown"
14+
},
15+
"c:27017": {
16+
"setName": null,
17+
"type": "Unknown"
18+
}
19+
},
20+
"setName": "rs",
21+
"topologyType": "ReplicaSetNoPrimary"
22+
},
23+
"responses": [
24+
[
25+
"a:27017",
26+
{
27+
"hosts": [
28+
"a:27017",
29+
"b:27017",
30+
"c:27017"
31+
],
32+
"ismaster": false,
33+
"ok": 1,
34+
"secondary": true,
35+
"setName": "rs"
36+
}
37+
]
38+
]
39+
},
40+
{
41+
"outcome": {
42+
"servers": {
43+
"a:27017": {
44+
"setName": "rs",
45+
"type": "RSSecondary"
46+
},
47+
"b:27017": {
48+
"setName": "rs",
49+
"type": "RSSecondary"
50+
},
51+
"c:27017": {
52+
"setName": null,
53+
"type": "Unknown"
54+
},
55+
"d:27017": {
56+
"setName": null,
57+
"type": "PossiblePrimary"
58+
}
59+
},
60+
"setName": "rs",
61+
"topologyType": "ReplicaSetNoPrimary"
62+
},
63+
"responses": [
64+
[
65+
"b:27017",
66+
{
67+
"hosts": [
68+
"b:27017",
69+
"c:27017",
70+
"d:27017"
71+
],
72+
"ismaster": false,
73+
"ok": 1,
74+
"primary": "d:27017",
75+
"secondary": true,
76+
"setName": "rs"
77+
}
78+
]
79+
]
80+
},
81+
{
82+
"outcome": {
83+
"servers": {
84+
"b:27017": {
85+
"setName": "rs",
86+
"type": "RSSecondary"
87+
},
88+
"c:27017": {
89+
"setName": null,
90+
"type": "Unknown"
91+
},
92+
"d:27017": {
93+
"setName": "rs",
94+
"type": "RSPrimary"
95+
},
96+
"e:27017": {
97+
"setName": null,
98+
"type": "Unknown"
99+
}
100+
},
101+
"setName": "rs",
102+
"topologyType": "ReplicaSetWithPrimary"
103+
},
104+
"responses": [
105+
[
106+
"d:27017",
107+
{
108+
"hosts": [
109+
"b:27017",
110+
"c:27017",
111+
"d:27017",
112+
"e:27017"
113+
],
114+
"ismaster": true,
115+
"ok": 1,
116+
"setName": "rs"
117+
}
118+
]
119+
]
120+
},
121+
{
122+
"outcome": {
123+
"servers": {
124+
"b:27017": {
125+
"setName": "rs",
126+
"type": "RSSecondary"
127+
},
128+
"c:27017": {
129+
"setName": "rs",
130+
"type": "RSSecondary"
131+
},
132+
"d:27017": {
133+
"setName": "rs",
134+
"type": "RSPrimary"
135+
},
136+
"e:27017": {
137+
"setName": null,
138+
"type": "Unknown"
139+
}
140+
},
141+
"setName": "rs",
142+
"topologyType": "ReplicaSetWithPrimary"
143+
},
144+
"responses": [
145+
[
146+
"c:27017",
147+
{
148+
"hosts": [
149+
"a:27017",
150+
"b:27017",
151+
"c:27017"
152+
],
153+
"ismaster": false,
154+
"ok": 1,
155+
"secondary": true,
156+
"setName": "rs"
157+
}
158+
]
159+
]
160+
}
161+
],
162+
"uri": "mongodb://a/?replicaSet=rs"
163+
}

0 commit comments

Comments
 (0)