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