diff --git a/src/Faker/Provider/Base.php b/src/Faker/Provider/Base.php index b8ada960..1938de3f 100644 --- a/src/Faker/Provider/Base.php +++ b/src/Faker/Provider/Base.php @@ -167,7 +167,11 @@ class Base */ public static function randomElement($array = array('a', 'b', 'c')) { - return $array ? $array[self::randomKey($array)] : null; + if (!$array) { + return null; + } + $elements = static::randomElements($array, 1); + return $elements[0]; } /** diff --git a/test/Faker/Provider/BaseTest.php b/test/Faker/Provider/BaseTest.php index 80fcb0d5..fbf89e43 100644 --- a/test/Faker/Provider/BaseTest.php +++ b/test/Faker/Provider/BaseTest.php @@ -84,6 +84,11 @@ class BaseTest extends \PHPUnit_Framework_TestCase $this->assertTrue(strpos($lowercaseLetters, BaseProvider::randomLetter()) !== false); } + public function testRandomElementReturnsNullWhenArrayEmpty() + { + $this->assertNull(BaseProvider::randomElement(array())); + } + public function testRandomElementReturnsElementFromArray() { $elements = array('23', 'e', 32, '#');