mirror of
https://github.com/macintoshplus/mongo-php-driver.git
synced 2026-03-24 08:52:14 +01:00
* Implement ClientEncryption::encryptExpression() Define algorithm and query type constants for range preview * Handle BSON encoding exceptions in encrypt/decrypt Note that it is not possible to write a test for decrypt() since Binary instances always encode to BSON.
43 lines
1.1 KiB
PHP
43 lines
1.1 KiB
PHP
--TEST--
|
|
MongoDB\Driver\ClientEncryption::encryptExpression() BSON encoding errors
|
|
--SKIPIF--
|
|
<?php require __DIR__ . "/../utils/basic-skipif.inc"; ?>
|
|
<?php skip_if_not_libmongocrypt(); ?>
|
|
--FILE--
|
|
<?php
|
|
|
|
require_once __DIR__ . "/../utils/basic.inc";
|
|
|
|
$manager = create_test_manager();
|
|
|
|
$clientEncryption = $manager->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->encryptExpression(new SerializableError());
|
|
}, RuntimeException::class), "\n";
|
|
|
|
echo throws(function() use ($clientEncryption) {
|
|
$clientEncryption->encryptExpression([], ['keyId' => new SerializableError()]);
|
|
}, RuntimeException::class), "\n";
|
|
|
|
?>
|
|
===DONE===
|
|
<?php exit(0); ?>
|
|
--EXPECTF--
|
|
OK: Got RuntimeException
|
|
bsonSerialize() error
|
|
OK: Got RuntimeException
|
|
bsonSerialize() error
|
|
===DONE===
|