Commit 38f7811f authored by Jeremy Mikola's avatar Jeremy Mikola

Fix featureCompatibilityVersion access for 3.4 servers

parent 6523cc6a
...@@ -11,6 +11,7 @@ use MongoDB\Model\BSONDocument; ...@@ -11,6 +11,7 @@ use MongoDB\Model\BSONDocument;
use InvalidArgumentException; use InvalidArgumentException;
use stdClass; use stdClass;
use Traversable; use Traversable;
use UnexpectedValueException;
abstract class FunctionalTestCase extends TestCase abstract class FunctionalTestCase extends TestCase
{ {
...@@ -89,7 +90,17 @@ abstract class FunctionalTestCase extends TestCase ...@@ -89,7 +90,17 @@ abstract class FunctionalTestCase extends TestCase
$cursor->setTypeMap(['root' => 'array', 'document' => 'array']); $cursor->setTypeMap(['root' => 'array', 'document' => 'array']);
$document = current($cursor->toArray()); $document = current($cursor->toArray());
return $document['featureCompatibilityVersion']['version']; // MongoDB 3.6: featureCompatibilityVersion is an embedded document
if (isset($document['featureCompatibilityVersion']['version']) && is_string($document['featureCompatibilityVersion']['version'])) {
return $document['featureCompatibilityVersion']['version'];
}
// MongoDB 3.4: featureCompatibilityVersion is a string
if (isset($document['featureCompatibilityVersion']) && is_string($document['featureCompatibilityVersion'])) {
return $document['featureCompatibilityVersion'];
}
throw new UnexpectedValueException('Could not determine featureCompatibilityVersion');
} }
protected function getPrimaryServer() protected function getPrimaryServer()
...@@ -108,7 +119,11 @@ abstract class FunctionalTestCase extends TestCase ...@@ -108,7 +119,11 @@ abstract class FunctionalTestCase extends TestCase
$cursor->setTypeMap(['root' => 'array', 'document' => 'array']); $cursor->setTypeMap(['root' => 'array', 'document' => 'array']);
$document = current($cursor->toArray()); $document = current($cursor->toArray());
return $document['version']; if (isset($document['version']) && is_string($document['version'])) {
return $document['version'];
}
throw new UnexpectedValueException('Could not determine server version');
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment