--TEST-- MongoDB\Driver\ClientEncryption::__construct() with invalid option types --SKIPIF-- --FILE-- create_test_manager()]; $tests = [ [], ['keyVaultClient' => 'not_an_array_or_object'], [ 'keyVaultNamespace' => 'not_a_namespace', // keyVaultNamespace requires a valid kmsProviders option 'kmsProviders' => ['local' => ['key' => new MongoDB\BSON\Binary(CSFLE_LOCAL_KEY, 0)]], ] + $baseOptions, ['kmsProviders' => 'not_an_array_or_object'] + $baseOptions, ['tlsOptions' => 'not_an_array_or_object'] + $baseOptions, ]; foreach ($tests as $test) { echo throws(function () use ($test) { new MongoDB\Driver\ClientEncryption($test); }, MongoDB\Driver\Exception\InvalidArgumentException::class), "\n\n"; } // PackedArray cannot be serialized as a root document $tests = [ ['kmsProviders' => MongoDB\BSON\PackedArray::fromPHP([])] + $baseOptions, ['tlsOptions' => MongoDB\BSON\PackedArray::fromPHP([])] + $baseOptions, ]; foreach ($tests as $test) { echo throws(function () use ($test) { new MongoDB\Driver\ClientEncryption($test); }, MongoDB\Driver\Exception\UnexpectedValueException::class), "\n\n"; } ?> ===DONE=== --EXPECT-- OK: Got MongoDB\Driver\Exception\InvalidArgumentException The "keyVaultClient" option is required when constructing a ClientEncryption object directly OK: Got MongoDB\Driver\Exception\InvalidArgumentException Expected "keyVaultClient" option to be MongoDB\Driver\Manager, string given OK: Got MongoDB\Driver\Exception\InvalidArgumentException Expected "keyVaultNamespace" option to contain a full collection namespace OK: Got MongoDB\Driver\Exception\InvalidArgumentException Expected "kmsProviders" option to be an array or object, string given OK: Got MongoDB\Driver\Exception\InvalidArgumentException Expected "tlsOptions" option to be an array or object, string given OK: Got MongoDB\Driver\Exception\UnexpectedValueException MongoDB\BSON\PackedArray cannot be serialized as a root document OK: Got MongoDB\Driver\Exception\UnexpectedValueException MongoDB\BSON\PackedArray cannot be serialized as a root document ===DONE===