Skip to content

Commit 7894107

Browse files
committed
Get rid of GenderEnum in tests
1 parent 8384dcf commit 7894107

File tree

7 files changed

+72
-92
lines changed

7 files changed

+72
-92
lines changed

tests/DependencyInjection/CompilerPass/TaggedEnumCollectorCompilerPassTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
use Symfony\Component\DependencyInjection\Reference;
1010
use Yokai\EnumBundle\DependencyInjection\CompilerPass\TaggedEnumCollectorCompilerPass;
1111
use Yokai\EnumBundle\EnumRegistry;
12-
use Yokai\EnumBundle\Tests\Fixtures\GenderEnum;
12+
use Yokai\EnumBundle\Tests\Fixtures\StateEnum;
1313
use Yokai\EnumBundle\Tests\Fixtures\TypeEnum;
1414

1515
/**
@@ -30,7 +30,7 @@ public function testCollectEnums(): void
3030
{
3131
$container = new ContainerBuilder();
3232
$container->register('yokai_enum.enum_registry', EnumRegistry::class);
33-
$container->register('enum.gender', GenderEnum::class)
33+
$container->register('enum.state', StateEnum::class)
3434
->addTag('yokai_enum.enum');
3535
$container->register('enum.type', TypeEnum::class)
3636
->addTag('yokai_enum.enum');
@@ -39,7 +39,7 @@ public function testCollectEnums(): void
3939

4040
$registry = $container->getDefinition('yokai_enum.enum_registry');
4141
self::assertEquals([
42-
['add', [new Reference('enum.gender')]],
42+
['add', [new Reference('enum.state')]],
4343
['add', [new Reference('enum.type')]],
4444
], $registry->getMethodCalls());
4545
}

tests/EnumRegistryTest.php

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
use Yokai\EnumBundle\EnumRegistry;
99
use Yokai\EnumBundle\Exception\InvalidArgumentException;
1010
use Yokai\EnumBundle\Exception\LogicException;
11-
use Yokai\EnumBundle\Tests\Fixtures\GenderEnum;
1211
use Yokai\EnumBundle\Tests\Fixtures\StateEnum;
1312
use Yokai\EnumBundle\Tests\Fixtures\SubscriptionEnum;
1413
use Yokai\EnumBundle\Tests\Fixtures\TypeEnum;
@@ -22,43 +21,39 @@ public function testAddDuplicatedException(): void
2221
{
2322
$this->expectException(LogicException::class);
2423
$registry = new EnumRegistry();
25-
$registry->add(new GenderEnum());
26-
$registry->add(new GenderEnum());
24+
$registry->add(new StateEnum());
25+
$registry->add(new StateEnum());
2726
}
2827

2928
public function testGetInvalidException(): void
3029
{
3130
$this->expectException(InvalidArgumentException::class);
3231
$registry = new EnumRegistry();
33-
$registry->add(new GenderEnum());
32+
$registry->add(new StateEnum());
3433
$registry->get('type');
3534
}
3635

3736
public function testAddNominal(): void
3837
{
3938
$translator = new Translator([]);
40-
$gender = new GenderEnum();
41-
$state = new StateEnum($translator);
39+
$state = new StateEnum();
4240
$subscription = new SubscriptionEnum($translator);
4341
$type = new TypeEnum();
4442

4543
$registry = new EnumRegistry();
46-
$registry->add($gender);
4744
$registry->add($state);
4845
$registry->add($subscription);
4946
$registry->add($type);
5047

51-
self::assertTrue($registry->has(GenderEnum::class));
52-
self::assertTrue($registry->has('state'));
48+
self::assertTrue($registry->has(StateEnum::class));
5349
self::assertTrue($registry->has('subscription'));
5450
self::assertTrue($registry->has('type'));
5551

56-
self::assertSame($gender, $registry->get(GenderEnum::class));
57-
self::assertSame($state, $registry->get('state'));
52+
self::assertSame($state, $registry->get(StateEnum::class));
5853
self::assertSame($subscription, $registry->get('subscription'));
5954
self::assertSame($type, $registry->get('type'));
6055
self::assertSame(
61-
[GenderEnum::class => $gender, 'state' => $state, 'subscription' => $subscription, 'type' => $type],
56+
[StateEnum::class => $state, 'subscription' => $subscription, 'type' => $type],
6257
$registry->all()
6358
);
6459
}

tests/Fixtures/GenderEnum.php

Lines changed: 0 additions & 51 deletions
This file was deleted.

tests/Fixtures/StateEnum.php

Lines changed: 37 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,48 @@
44

55
namespace Yokai\EnumBundle\Tests\Fixtures;
66

7-
use Symfony\Contracts\Translation\TranslatorInterface;
8-
use Yokai\EnumBundle\TranslatedEnum;
7+
use Yokai\EnumBundle\EnumInterface;
8+
use Yokai\EnumBundle\Exception\InvalidArgumentException;
99

1010
/**
1111
* @author Yann Eugoné <[email protected]>
1212
*/
13-
class StateEnum extends TranslatedEnum
13+
class StateEnum implements EnumInterface
1414
{
15-
public function __construct(TranslatorInterface $translator)
15+
/**
16+
* @inheritDoc
17+
*/
18+
public function getName(): string
1619
{
17-
parent::__construct('state', ['new', 'validated', 'disabled'], $translator, 'choice.state.%s');
20+
return __CLASS__;
21+
}
22+
23+
/**
24+
* @inheritDoc
25+
*/
26+
public function getValues(): array
27+
{
28+
return \array_values($this->getChoices());
29+
}
30+
31+
/**
32+
* @inheritDoc
33+
*/
34+
public function getChoices(): array
35+
{
36+
return ['New' => 'new', 'Validated' => 'validated', 'Disabled' => 'disabled'];
37+
}
38+
39+
/**
40+
* @inheritdoc
41+
*/
42+
public function getLabel($value): string
43+
{
44+
$choices = $this->getChoices();
45+
if (!isset($choices[$value])) {
46+
throw InvalidArgumentException::enumMissingValue($this, $value);
47+
}
48+
49+
return $choices[$value];
1850
}
1951
}

tests/Form/Extension/EnumTypeGuesserTest.php

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
use Yokai\EnumBundle\EnumRegistry;
1717
use Yokai\EnumBundle\Form\Extension\EnumTypeGuesser;
1818
use Yokai\EnumBundle\Form\Type\EnumType;
19-
use Yokai\EnumBundle\Tests\Fixtures\GenderEnum;
19+
use Yokai\EnumBundle\Tests\Fixtures\StateEnum;
2020
use Yokai\EnumBundle\Tests\Form\TestExtension;
2121
use Yokai\EnumBundle\Validator\Constraints\Enum;
2222

@@ -50,17 +50,17 @@ class EnumTypeGuesserTest extends TypeTestCase
5050
protected function setUp(): void
5151
{
5252
$this->enumRegistry = new EnumRegistry();
53-
$this->enumRegistry->add(new GenderEnum());
53+
$this->enumRegistry->add(new StateEnum());
5454

5555
$metadata = new ClassMetadata(self::TEST_CLASS);
56-
$metadata->addPropertyConstraint(self::TEST_PROPERTY_DIRECT, new Enum(['enum' => GenderEnum::class]));
56+
$metadata->addPropertyConstraint(self::TEST_PROPERTY_DIRECT, new Enum(['enum' => StateEnum::class]));
5757
if (class_exists(Compound::class)) {
5858
$metadata->addPropertyConstraint(
5959
self::TEST_PROPERTY_COMPOUND,
6060
new class extends Compound {
6161
protected function getConstraints(array $options): array
6262
{
63-
return [new Enum(['enum' => GenderEnum::class])];
63+
return [new Enum(['enum' => StateEnum::class])];
6464
}
6565
}
6666
);
@@ -79,7 +79,7 @@ public function testGuessTypeDirect(): void
7979
$guess = new TypeGuess(
8080
EnumType::class,
8181
[
82-
'enum' => GenderEnum::class,
82+
'enum' => StateEnum::class,
8383
'multiple' => false,
8484
],
8585
Guess::HIGH_CONFIDENCE
@@ -97,7 +97,7 @@ public function testGuessTypeCompound(): void
9797
$guess = new TypeGuess(
9898
EnumType::class,
9999
[
100-
'enum' => GenderEnum::class,
100+
'enum' => StateEnum::class,
101101
'multiple' => false,
102102
],
103103
Guess::HIGH_CONFIDENCE
@@ -128,7 +128,7 @@ public function testCreateForm(): void
128128
->add(self::TEST_PROPERTY_DIRECT);
129129

130130
self::assertEquals(
131-
['Male' => 'male', 'Female' => 'female'],
131+
['New' => 'new', 'Validated' => 'validated', 'Disabled' => 'disabled'],
132132
$form->get(self::TEST_PROPERTY_DIRECT)->getConfig()->getOption('choices')
133133
);
134134
}

tests/Form/Type/EnumTypeTest.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
use Symfony\Component\OptionsResolver\Exception\MissingOptionsException;
1111
use Yokai\EnumBundle\EnumRegistry;
1212
use Yokai\EnumBundle\Form\Type\EnumType;
13-
use Yokai\EnumBundle\Tests\Fixtures\GenderEnum;
13+
use Yokai\EnumBundle\Tests\Fixtures\StateEnum;
1414
use Yokai\EnumBundle\Tests\Form\TestExtension;
1515

1616
/**
@@ -32,15 +32,18 @@ public function testEnumOptionIsInvalid(): void
3232

3333
public function testEnumOptionValid(): void
3434
{
35-
$form = $this->createForm(GenderEnum::class);
35+
$form = $this->createForm(StateEnum::class);
3636

37-
self::assertEquals(['Male' => 'male', 'Female' => 'female'], $form->getConfig()->getOption('choices'));
37+
self::assertEquals(
38+
['New' => 'new', 'Validated' => 'validated', 'Disabled' => 'disabled'],
39+
$form->getConfig()->getOption('choices')
40+
);
3841
}
3942

4043
protected function getExtensions(): array
4144
{
4245
$enumRegistry = new EnumRegistry();
43-
$enumRegistry->add(new GenderEnum());
46+
$enumRegistry->add(new StateEnum());
4447

4548
return [
4649
new TestExtension($enumRegistry)

tests/Twig/Extension/EnumExtensionTest.php

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
use Twig\Environment;
99
use Twig\Loader\ArrayLoader;
1010
use Yokai\EnumBundle\EnumRegistry;
11-
use Yokai\EnumBundle\Tests\Fixtures\GenderEnum;
1211
use Yokai\EnumBundle\Tests\Fixtures\StateEnum;
12+
use Yokai\EnumBundle\Tests\Fixtures\SubscriptionEnum;
1313
use Yokai\EnumBundle\Tests\Fixtures\TypeEnum;
1414
use Yokai\EnumBundle\Tests\Translator;
1515
use Yokai\EnumBundle\Twig\Extension\EnumExtension;
@@ -39,18 +39,19 @@ public function testEnumLabel(): void
3939
public function testEnumChoices(): void
4040
{
4141
$registry = new EnumRegistry();
42-
$registry->add(new StateEnum(new Translator([
43-
'choice.state.new' => 'Nouveau',
44-
'choice.state.validated' => 'Validé',
45-
'choice.state.disabled' => 'Désactivé',
42+
$registry->add(new SubscriptionEnum(new Translator([
43+
'choice.subscription.none' => 'Aucune',
44+
'choice.subscription.daily' => 'Journalière',
45+
'choice.subscription.weekly' => 'Hebdomadaire',
46+
'choice.subscription.monthly' => 'Mensuelle',
4647
])));
4748

4849
$twig = $this->createEnvironment($registry);
4950

5051
self::assertSame(
51-
'new,Nouveau|validated,Validé|disabled,Désactivé|',
52+
'none,Aucune|daily,Journalière|weekly,Hebdomadaire|monthly,Mensuelle|',
5253
$twig->createTemplate(<<<TWIG
53-
{% for label,value in enum_choices('state') %}{{ value }},{{ label }}|{% endfor %}
54+
{% for label,value in enum_choices('subscription') %}{{ value }},{{ label }}|{% endfor %}
5455
TWIG
5556
)->render([])
5657
);
@@ -59,14 +60,14 @@ public function testEnumChoices(): void
5960
public function testEnumValues(): void
6061
{
6162
$registry = new EnumRegistry();
62-
$registry->add(new GenderEnum());
63+
$registry->add(new StateEnum());
6364

6465
$twig = $this->createEnvironment($registry);
6566

6667
self::assertSame(
67-
'male|female|',
68+
'new|validated|disabled|',
6869
$twig->createTemplate(<<<TWIG
69-
{% for value in enum_values('Yokai\\\\EnumBundle\\\\Tests\\\\Fixtures\\\\GenderEnum') %}{{ value }}|{% endfor %}
70+
{% for value in enum_values('Yokai\\\\EnumBundle\\\\Tests\\\\Fixtures\\\\StateEnum') %}{{ value }}|{% endfor %}
7071
TWIG
7172
)->render([])
7273
);

0 commit comments

Comments
 (0)