@@ -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