diff --git a/src/Helper/StringHelper.php b/src/Helper/StringHelper.php index 32bff38..7fba47f 100644 --- a/src/Helper/StringHelper.php +++ b/src/Helper/StringHelper.php @@ -46,4 +46,20 @@ public static function plural($number, $forms) } return $number%10==1&&$number%100!=11?$forms[0]:($number%10>=2&&$number%10<=4&&($number%100<10||$number%100>=20)?$forms[1]:$forms[2]); } + + /** + * @param int $length + * @return string + */ + public static function generateRandom($length = 10) + { + $randChars = array(); + $alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'; + $alphabetSize = strlen($alphabet); + while(--$length+1){ + $randChars[] = $alphabet[mt_rand(0, $alphabetSize-1)];; + } + shuffle($randChars); + return implode('', $randChars); + } } \ No newline at end of file diff --git a/tests/Helper/StringHelperTest.php b/tests/Helper/StringHelperTest.php index 998396d..a80f2bb 100644 --- a/tests/Helper/StringHelperTest.php +++ b/tests/Helper/StringHelperTest.php @@ -2,6 +2,8 @@ namespace Utility\Test\Helper; +use Utility\Helper\StringHelper; + class StringHelperTest extends \PHPUnit_Framework_TestCase { public function testCut() @@ -13,4 +15,15 @@ public function testPlural() { } + + public function testGenerateRandom() + { + $string = StringHelper::generateRandom(); + $this->assertEquals(10, strlen($string)); + $this->assertRegExp('/^[a-zA-Z0-9]{10}$/', $string); + + $string = StringHelper::generateRandom(17); + $this->assertEquals(17, strlen($string)); + $this->assertRegExp('/^[a-zA-Z0-9]{17}$/', $string); + } } \ No newline at end of file