php-src/ext/random/tests/03_randomizer/methods/pickArrayKeys_error.phpt
Tim Düsterhus f7d426cca6
Unify structure for ext/random's randomizer tests (#9410)
* Unify structure for ext/random's engine tests (2)

This makes adjustments that were missed in
2d6a883b3a.

* Add `engines.inc` for ext/random tests

* Unify structure for ext/random's randomizer tests
2022-08-31 19:22:39 +02:00

49 lines
1.3 KiB
PHP

--TEST--
Random: Randomizer: pickArrayKeys(): Parameters are correctly validated
--FILE--
<?php
use Random\Randomizer;
function randomizer(): Randomizer
{
return new Randomizer();
}
try {
var_dump(randomizer()->pickArrayKeys("foo", 2));
} catch (TypeError $e) {
echo $e->getMessage(), PHP_EOL;
}
try {
var_dump(randomizer()->pickArrayKeys([], 0));
} catch (ValueError $e) {
echo $e->getMessage(), PHP_EOL;
}
try {
var_dump(randomizer()->pickArrayKeys(range(1, 3), 0));
} catch (ValueError $e) {
echo $e->getMessage(), PHP_EOL;
}
try {
var_dump(randomizer()->pickArrayKeys(range(1, 3), -1));
} catch (ValueError $e) {
echo $e->getMessage(), PHP_EOL;
}
try {
var_dump(randomizer()->pickArrayKeys(range(1, 3), 10));
} catch (ValueError $e) {
echo $e->getMessage(), PHP_EOL;
}
?>
--EXPECTF--
Random\Randomizer::pickArrayKeys(): Argument #1 ($array) must be of type array, string given
Random\Randomizer::pickArrayKeys(): Argument #1 ($array) cannot be empty
Random\Randomizer::pickArrayKeys(): Argument #2 ($num) must be between 1 and the number of elements in argument #1 ($array)
Random\Randomizer::pickArrayKeys(): Argument #2 ($num) must be between 1 and the number of elements in argument #1 ($array)
Random\Randomizer::pickArrayKeys(): Argument #2 ($num) must be between 1 and the number of elements in argument #1 ($array)