diff --git a/src/Faker/Provider/ja_JP/Person.php b/src/Faker/Provider/ja_JP/Person.php old mode 100644 new mode 100755 index ce95426b..d3e9a2ee --- a/src/Faker/Provider/ja_JP/Person.php +++ b/src/Faker/Provider/ja_JP/Person.php @@ -29,4 +29,57 @@ class Person extends \Faker\Provider\Person '三宅', '村山', '山田', '吉本' ); + + protected static $kanaFormats = array( + '{{lastKanaName}} {{firstKanaName}}' + ); + + protected static $firstKanaName = array( + 'アキラ', 'アケミ', 'アスカ', 'オサム', + 'カナ', 'キョウスケ', 'ケンイチ', 'クミコ', + 'ジュン', 'ソウタロウ', + 'タロウ', 'チヨ', 'トモミ', 'トモヤ', + 'ナオキ', 'ナオコ', + 'ハナコ', 'ヒロシ', + 'ミツル', 'モモコ', + 'ユミコ', 'リカ', + ); + + protected static $lastKanaName = array( + 'アオタ', 'イダカ', 'ウノ', 'エコダ', 'オオガキ', + 'カノウ', 'キジマ', 'クドウ', 'コイズミ', + 'ササダ', 'スズキ', 'スギヤマ', + 'タナベ', 'ツダ', + 'ナギサ', 'ナカツガワ', 'ニシノソノ', + 'ハラダ', 'ハマダ', 'ヒロカワ', 'フジモト', + 'ミヤケ', 'ムラヤマ', + 'ヤマダ', 'ヨシモト' + ); + + /** + * @example 'アオタ アキラ' + */ + public function kanaName() + { + $format = static::randomElement(static::$kanaFormats); + + return $this->generator->parse($format); + } + + /** + * @example 'アオタ' + */ + public static function firstKanaName() + { + return static::randomElement(static::$firstKanaName); + } + + /** + * @example 'アキラ' + */ + public static function lastKanaName() + { + return static::randomElement(static::$lastKanaName); + } + } diff --git a/test/Faker/Provider/ja_JP/PersonTest.php b/test/Faker/Provider/ja_JP/PersonTest.php new file mode 100755 index 00000000..0f1ac62b --- /dev/null +++ b/test/Faker/Provider/ja_JP/PersonTest.php @@ -0,0 +1,38 @@ +addProvider(new Person($faker)); + $faker->seed(1); + + $this->assertEquals('アオタ ナオコ', $faker->kanaName()); + } + + public function testFirstKanaNameReturnsTomomi() + { + $faker = new Generator(); + $faker->addProvider(new Person($faker)); + $faker->seed(1); + + $this->assertEquals('トモミ', $faker->firstKanaName); + } + + public function testLastKanaNameReturnsNagisa() + { + $faker = new Generator(); + $faker->addProvider(new Person($faker)); + $faker->seed(1); + + $this->assertEquals('ナギサ', $faker->lastKanaName); + } + +} \ No newline at end of file