mirror of
https://github.com/Karaka-Management/phpOMS.git
synced 2026-01-22 22:38:41 +00:00
Add more rng tests
This commit is contained in:
parent
52d8b17914
commit
527d6521ac
|
|
@ -48,27 +48,20 @@ class File
|
|||
/**
|
||||
* Get a random file extension.
|
||||
*
|
||||
* @param array<array<string>> $source Source array for possible extensions
|
||||
* @param DistributionType|int $distribution Distribution type for the extensions
|
||||
* @param array<array<string>> $source Source array for possible extensions
|
||||
*
|
||||
* @return false|array
|
||||
* @return string
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public static function generateExtension($source = null, $distribution = DistributionType::UNIFORM)
|
||||
public static function generateExtension(array $source = null) : string
|
||||
{
|
||||
if ($source === null) {
|
||||
$source = self::$extensions;
|
||||
}
|
||||
|
||||
switch ($distribution) {
|
||||
case DistributionType::UNIFORM:
|
||||
$key = \rand(0, \count($source) - 1);
|
||||
break;
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
$key = \rand(0, \count($source) - 1);
|
||||
|
||||
return $source[$key][0];
|
||||
return $source[$key][\rand(0, \count($source[$key]) - 1)];
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,36 +28,46 @@ class Phone
|
|||
/**
|
||||
* Get a random phone number.
|
||||
*
|
||||
* @param bool $isInt This number uses a country code
|
||||
* @param array $layout Number layout
|
||||
* @param array $countries Country codes
|
||||
* @param bool $isInt This number uses a country code
|
||||
* @param string $struct Number layout
|
||||
* @param array<null|array> $size Digits per placeholder [min, max]
|
||||
* @param array|null $countries Country codes
|
||||
*
|
||||
* @return \DateTime
|
||||
* @return string
|
||||
*
|
||||
* @since 1.0.0
|
||||
*/
|
||||
public static function generatePhone(
|
||||
$isInt = true,
|
||||
$layout = [
|
||||
'struct' => '+$1 ($2) $3-$4',
|
||||
'size' => [null, [3, 4], [3, 5], [3, 8],],],
|
||||
$countries = null
|
||||
) {
|
||||
$numberString = $layout['struct'];
|
||||
bool $isInt = true,
|
||||
string $struct = '+$1 ($2) $3-$4',
|
||||
array $size = [null, [3, 4], [3, 5], [3, 8],],
|
||||
array $countries = null
|
||||
) : string
|
||||
{
|
||||
$numberString = $struct;
|
||||
|
||||
if ($isInt) {
|
||||
if ($countries === null) {
|
||||
$countries = ['de' => 49, 'us' => 1];
|
||||
}
|
||||
|
||||
$numberString = \str_replace('$1', $countries[array_keys($countries)[rand(0, \count($countries))]], $numberString);
|
||||
$numberString = \str_replace(
|
||||
'$1',
|
||||
$countries[\array_keys($countries)[\rand(0, \count($countries) - 1)]],
|
||||
$numberString
|
||||
);
|
||||
}
|
||||
|
||||
$numberParts = substr_count($layout['struct'], '$');
|
||||
$numberParts = \substr_count($struct, '$');
|
||||
|
||||
for ($i = ($isInt ? 2 : 1); $i < $numberParts; ++$i) {
|
||||
for ($i = ($isInt ? 2 : 1); $i <= $numberParts; ++$i) {
|
||||
$numberString = \str_replace(
|
||||
'$' . $i, StringUtils::generateString($layout['size'][$i - 1][0], $layout['size'][$i - 1][1], '0123456789'),
|
||||
'$' . $i,
|
||||
StringUtils::generateString(
|
||||
$size[$i - 1][0],
|
||||
$size[$i - 1][1],
|
||||
'0123456789'
|
||||
),
|
||||
$numberString
|
||||
);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ use phpOMS\Utils\RnG\File;
|
|||
|
||||
class FileTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
public function testPlaceholder()
|
||||
public function testRnGExtension()
|
||||
{
|
||||
self::markTestIncomplete();
|
||||
self::assertRegExp('/^[a-z]{2,5}$/', File::generateExtension());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,8 +17,8 @@ use phpOMS\Utils\RnG\Phone;
|
|||
|
||||
class PhoneTest extends \PHPUnit\Framework\TestCase
|
||||
{
|
||||
public function testPlaceholder()
|
||||
public function testRnG()
|
||||
{
|
||||
self::markTestIncomplete();
|
||||
self::assertRegExp('/^\+\d{1,2} \(\d{3,4}\) \d{3,5}\-\d{3,8}$/', Phone::generatePhone());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user