|
14 | 14 | namespace Zenstruck\Foundry\Tests\Integration\Faker; |
15 | 15 |
|
16 | 16 | use PHPUnit\Framework\Attributes\AfterClass; |
| 17 | +use PHPUnit\Framework\Attributes\Before; |
17 | 18 | use PHPUnit\Framework\Attributes\BeforeClass; |
18 | 19 | use Zenstruck\Foundry\FakerAdapter; |
19 | 20 |
|
20 | | -trait ResetFakerTestTrait |
21 | | -{ |
22 | | - private static ?string $savedServerSeed = null; |
23 | | - private static ?string $savedEnvSeed = null; |
24 | | - private static ?string $savedGetEnvSeed = null; |
25 | | - |
26 | | - private static ?int $currentSeed = null; |
27 | | - |
28 | | - #[BeforeClass(10)] |
29 | | - public static function __saveAndResetFakerSeed(): void |
| 21 | +if (\method_exists(Before::class, '__construct')) { // @phpstan-ignore function.alreadyNarrowedType |
| 22 | + trait ResetFakerTestTrait |
30 | 23 | { |
31 | | - self::$savedServerSeed = $_SERVER['FOUNDRY_FAKER_SEED'] ?? null; |
32 | | - self::$savedEnvSeed = $_ENV['FOUNDRY_FAKER_SEED'] ?? null; |
33 | | - self::$savedGetEnvSeed = \getenv('FOUNDRY_FAKER_SEED') ?: null; |
| 24 | + private static ?string $savedServerSeed = null; |
| 25 | + private static ?string $savedEnvSeed = null; |
| 26 | + private static ?string $savedGetEnvSeed = null; |
34 | 27 |
|
35 | | - $_SERVER['FOUNDRY_FAKER_SEED'] = null; |
36 | | - $_ENV['FOUNDRY_FAKER_SEED'] = null; |
37 | | - \putenv('FOUNDRY_FAKER_SEED'); |
| 28 | + private static ?int $currentSeed = null; |
38 | 29 |
|
39 | | - FakerAdapter::resetFakerSeed(); |
40 | | - } |
| 30 | + #[BeforeClass(10)] |
| 31 | + public static function __saveAndResetFakerSeed(): void |
| 32 | + { |
| 33 | + self::$savedServerSeed = $_SERVER['FOUNDRY_FAKER_SEED'] ?? null; |
| 34 | + self::$savedEnvSeed = $_ENV['FOUNDRY_FAKER_SEED'] ?? null; |
| 35 | + self::$savedGetEnvSeed = \getenv('FOUNDRY_FAKER_SEED') ?: null; |
41 | 36 |
|
42 | | - #[AfterClass(-10)] |
43 | | - public static function __restoreFakerSeed(): void |
44 | | - { |
45 | | - $_SERVER['FOUNDRY_FAKER_SEED'] = self::$savedServerSeed; |
46 | | - $_ENV['FOUNDRY_FAKER_SEED'] = self::$savedEnvSeed; |
47 | | - if (null === self::$savedGetEnvSeed) { |
| 37 | + $_SERVER['FOUNDRY_FAKER_SEED'] = null; |
| 38 | + $_ENV['FOUNDRY_FAKER_SEED'] = null; |
48 | 39 | \putenv('FOUNDRY_FAKER_SEED'); |
49 | | - } else { |
50 | | - \putenv('FOUNDRY_FAKER_SEED='.self::$savedGetEnvSeed); |
| 40 | + |
| 41 | + FakerAdapter::resetFakerSeed(); |
51 | 42 | } |
52 | 43 |
|
53 | | - $savedValue = self::$savedServerSeed ?? self::$savedEnvSeed ?? self::$savedGetEnvSeed; |
54 | | - FakerAdapter::resetFakerSeed($savedValue ? (int) $savedValue : null); |
| 44 | + #[AfterClass(-10)] |
| 45 | + public static function __restoreFakerSeed(): void |
| 46 | + { |
| 47 | + $_SERVER['FOUNDRY_FAKER_SEED'] = self::$savedServerSeed; |
| 48 | + $_ENV['FOUNDRY_FAKER_SEED'] = self::$savedEnvSeed; |
| 49 | + if (null === self::$savedGetEnvSeed) { |
| 50 | + \putenv('FOUNDRY_FAKER_SEED'); |
| 51 | + } else { |
| 52 | + \putenv('FOUNDRY_FAKER_SEED='.self::$savedGetEnvSeed); |
| 53 | + } |
| 54 | + |
| 55 | + $savedValue = self::$savedServerSeed ?? self::$savedEnvSeed ?? self::$savedGetEnvSeed; |
| 56 | + FakerAdapter::resetFakerSeed($savedValue ? (int) $savedValue : null); |
| 57 | + } |
| 58 | + } |
| 59 | +} else { |
| 60 | + trait ResetFakerTestTrait |
| 61 | + { |
55 | 62 | } |
56 | 63 | } |
0 commit comments