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;
use InvalidArgumentException;
use stdClass;
use Traversable;
use UnexpectedValueException;
abstract class FunctionalTestCase extends TestCase
{
......@@ -89,9 +90,19 @@ abstract class FunctionalTestCase extends TestCase
$cursor->setTypeMap(['root' => 'array', 'document' => 'array']);
$document = current($cursor->toArray());
// 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()
{
return $this->manager->selectServer(new ReadPreference(ReadPreference::RP_PRIMARY));
......@@ -108,9 +119,13 @@ abstract class FunctionalTestCase extends TestCase
$cursor->setTypeMap(['root' => 'array', 'document' => 'array']);
$document = current($cursor->toArray());
if (isset($document['version']) && is_string($document['version'])) {
return $document['version'];
}
throw new UnexpectedValueException('Could not determine server version');
}
/**
* Normalizes a BSON document or array for use with assertEquals().
*
......
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