From 90ae5f054e64012a79850495dca89859333a0bab Mon Sep 17 00:00:00 2001 From: Dezer Date: Sun, 1 Jan 2023 21:55:38 +0200 Subject: [PATCH] Add provider for fakerphp/faker --- composer.json | 3 +- src/Faker/FakerEnumProvider.php | 78 +++++++++++++++++++ tests/Unit/Faker/EnumFixture.php | 18 +++++ .../Unit/Faker/FakerEnumProviderUnitTest.php | 49 ++++++++++++ 4 files changed, 147 insertions(+), 1 deletion(-) create mode 100644 src/Faker/FakerEnumProvider.php create mode 100644 tests/Unit/Faker/EnumFixture.php create mode 100644 tests/Unit/Faker/FakerEnumProviderUnitTest.php diff --git a/composer.json b/composer.json index 2513db7..ebb120f 100644 --- a/composer.json +++ b/composer.json @@ -31,6 +31,7 @@ "require-dev": { "phpunit/phpunit": "^9.5", "squizlabs/php_codesniffer": "1.*", - "vimeo/psalm": "^4.6.2 || ^5.2" + "vimeo/psalm": "^4.6.2 || ^5.2", + "fakerphp/faker": "^1.21" } } diff --git a/src/Faker/FakerEnumProvider.php b/src/Faker/FakerEnumProvider.php new file mode 100644 index 0000000..2ee2ed1 --- /dev/null +++ b/src/Faker/FakerEnumProvider.php @@ -0,0 +1,78 @@ +faker->randomEnum(EnumFixture::class); + + self::assertContains($value->getKey(), EnumFixture::keys()); + self::assertContains($value->getValue(), EnumFixture::toArray()); + } + + public function testSuccessCanFakeEnumValue(): void + { + /** @var EnumFixture $value */ + $value = $this->faker->randomEnumValue(EnumFixture::class); + + self::assertContains($value, EnumFixture::toArray()); + } + + public function testSuccessCanFakeEnumKey(): void + { + /** @var EnumFixture $value */ + $value = $this->faker->randomEnumKey(EnumFixture::class); + + self::assertContains($value, EnumFixture::keys()); + } + + protected function setUp(): void + { + parent::setUp(); + + $this->faker = Factory::create(); + $this->faker->addProvider(FakerEnumProvider::class); + } +} \ No newline at end of file