Skip to content

Commit e29a10b

Browse files
committed
Refactor test to check whether explain output has expected elements.
1 parent ffcad32 commit e29a10b

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

tests/MongoDB.Driver.Legacy.Tests/Linq/ExplainTests.cs

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,16 @@ public void TestExplainFromLinqQueryEqualsExplainFromCursor()
4747
var linqExplain = _collection.AsQueryable<C>().Where(c => c.X == 2 && c.Y == 1).Take(1).Explain();
4848
var queryExplain = _collection.FindAs<C>(Query.And(Query.EQ("X", 2), Query.EQ("Y", 1))).SetLimit(1).Explain();
4949

50-
// prior to 3.0.0 this is just a smoke test because the explain output did not have much that could be compared
51-
if (CoreTestConfiguration.ServerVersion >= new SemanticVersion(3, 0, 0))
50+
// not all versions and/or topologies of the server return a queryPlanner.parsedQuery element in the explain result
51+
if (linqExplain.Contains("queryPlanner"))
5252
{
53-
var linqQuery = linqExplain["queryPlanner"]["parsedQuery"];
54-
var findQuery = queryExplain["queryPlanner"]["parsedQuery"];
53+
if (linqExplain["queryPlanner"].AsBsonDocument.Contains("parsedQuery"))
54+
{
55+
var linqQuery = linqExplain["queryPlanner"]["parsedQuery"];
56+
var findQuery = queryExplain["queryPlanner"]["parsedQuery"];
5557

56-
Assert.Equal(linqQuery, findQuery);
58+
Assert.Equal(linqQuery, findQuery);
59+
}
5760
}
5861
}
5962

@@ -63,13 +66,16 @@ public void TestVerboseExplainFromLinqQueryEqualsVerboseExplainFromCursor()
6366
var linqExplain = _collection.AsQueryable<C>().Where(c => c.X == 2 && c.Y == 1).Take(1).Explain(true);
6467
var queryExplain = _collection.FindAs<C>(Query.And(Query.EQ("X", 2), Query.EQ("Y", 1))).SetLimit(1).Explain(true);
6568

66-
// prior to 3.0.0 this is just a smoke test because the explain output did not have much that could be compared
67-
if (CoreTestConfiguration.ServerVersion >= new SemanticVersion(3, 0, 0))
69+
// not all versions and/or topologies of the server return a queryPlanner.parsedQuery element in the explain result
70+
if (linqExplain.Contains("queryPlanner"))
6871
{
69-
var linqQuery = linqExplain["queryPlanner"]["parsedQuery"];
70-
var findQuery = queryExplain["queryPlanner"]["parsedQuery"];
72+
if (linqExplain["queryPlanner"].AsBsonDocument.Contains("parsedQuery"))
73+
{
74+
var linqQuery = linqExplain["queryPlanner"]["parsedQuery"];
75+
var findQuery = queryExplain["queryPlanner"]["parsedQuery"];
7176

72-
Assert.Equal(linqQuery, findQuery);
77+
Assert.Equal(linqQuery, findQuery);
78+
}
7379
}
7480
}
7581

0 commit comments

Comments
 (0)