/** * @depends testCreateFromFactory */ public function testConsonants(LocaleInterface $en) { $filler = $en->getConsonants(); $this->assertNotEmpty($filler); }
/** * Converts the following characters in the string and returns it: * * C, c, E - any consonant (Upper case, lower case, any) * V, v, F - any vowel (Upper case, lower case, any) * L, l, V - any letter (Upper case, lower case, any) * X - 1-9 * x - 0-9 * H - 0-F * * @param string $str the DSL * @param GeneratorInterface $random */ public function generateRandomAlphanumeric($str, GeneratorInterface $random, LocaleInterface $locale) { $letters = $locale->getLetters(); $consonants = $locale->getConsonants(); $vowels = $locale->getVowels(); $hex = $locale->getHex(); // loop through each character and convert all unescaped X's to 1-9 and // unescaped x's to 0-9. $new_str = SimpleString::create(""); $str = SimpleString::create($str); for ($i = 0; $i < $str->length(); $i++) { switch ($str->charAt($i)) { // Numbers case "X": $new_str->append(round($random->generate(1, 9))); break; case "x": $new_str->append(round($random->generate(0, 9))); break; // Hex // Hex case "H": $new_str->append($hex->charAt(round($random->generate(0, $hex->length()) - 1))); break; // Letters // Letters case "L": $new_str->append($letters->charAt(round($random->generate(0, $letters->length()) - 1))); break; case "l": $new_str->append(\mb_strtolower($letters->charAt(round($random->generate(0, $letters->length()) - 1)))); break; case "D": $bool = round($random->generate(0, 1)); if ($bool === 0) { $new_str->append($letters->charAt(round($random->generate(0, $letters->length()) - 1))); } else { $new_str->append(\mb_strtolower($letters->charAt(round($random->generate(0, $letters->length()) - 1)))); } break; // Consonants // Consonants case "C": $new_str->append($consonants->charAt(round($random->generate(0, $consonants->length()) - 1))); break; case "c": $new_str->append(\mb_strtolower($consonants->charAt(round($random->generate(0, $consonants->length()) - 1)))); break; case "E": $bool = round($random->generate(0, 1)); if ($bool === 0) { $new_str->append($consonants->charAt(round($random->generate(0, $consonants->length()) - 1))); } else { $new_str->append(\mb_strtolower($consonants->charAt(round($random->generate(0, $consonants->length()) - 1)))); } break; // Vowels // Vowels case "V": $new_str->append($vowels->charAt(round($random->generate(0, $vowels->length()) - 1))); break; case "v": $new_str->append(\mb_strtolower($vowels->charAt(round($random->generate(0, $vowels->length()) - 1)))); break; case "F": $bool = round($random->generate(0, 1)); if ($bool === 0) { $new_str->append($vowels->charAt(round($random->generate(0, $vowels->length()) - 1))); } else { $new_str->append(\mb_strtolower($vowels->charAt(round($random->generate(0, $vowels->length()) - 1)))); } break; //space char //space char case "S": case "s": $new_str->append(" "); break; default: $new_str->append($str->charAt($i)); break; } } return (string) $new_str; }