--TEST-- MongoDB\Driver\ClientEncryption::encrypt() BSON encoding errors --SKIPIF-- --FILE-- createClientEncryption([ 'keyVaultNamespace' => CSFLE_KEY_VAULT_NS, 'kmsProviders' => ['local' => ['key' => new MongoDB\BSON\Binary(CSFLE_LOCAL_KEY, 0)]], ]); class SerializableError implements MongoDB\BSON\Serializable { #[\ReturnTypeWillChange] public function bsonSerialize() { throw new RuntimeException('bsonSerialize() error'); } } echo throws(function() use ($clientEncryption) { $clientEncryption->encrypt(new SerializableError()); }, RuntimeException::class), "\n"; echo throws(function() use ($clientEncryption) { $clientEncryption->encrypt('top-secret', ['keyId' => new SerializableError()]); }, RuntimeException::class), "\n"; ?> ===DONE=== --EXPECTF-- OK: Got RuntimeException bsonSerialize() error OK: Got RuntimeException bsonSerialize() error ===DONE===