From 5a5c54bed3f24adc35d32d0dd4c46647afff9e12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20M=C3=B6ller?= Date: Sat, 4 May 2024 14:11:25 +0200 Subject: [PATCH] Enhancement: Extract FieldValueResolutionStrategy interface --- src/FieldResolution/DefaultStrategy.php | 2 +- .../FieldValueResolutionStrategy.php | 33 +++++++++++++++++++ src/FieldResolution/ResolutionStrategy.php | 11 ------- src/FieldResolution/WithOptionalStrategy.php | 2 +- .../WithoutOptionalStrategy.php | 2 +- src/FixtureFactory.php | 6 +++- 6 files changed, 41 insertions(+), 15 deletions(-) create mode 100644 src/FieldResolution/FieldValueResolutionStrategy.php diff --git a/src/FieldResolution/DefaultStrategy.php b/src/FieldResolution/DefaultStrategy.php index 26505655..51378dd2 100644 --- a/src/FieldResolution/DefaultStrategy.php +++ b/src/FieldResolution/DefaultStrategy.php @@ -21,7 +21,7 @@ /** * @internal */ -final class DefaultStrategy implements ResolutionStrategy +final class DefaultStrategy implements FieldValueResolutionStrategy, ResolutionStrategy { public function resolveFieldValue( Generator $faker, diff --git a/src/FieldResolution/FieldValueResolutionStrategy.php b/src/FieldResolution/FieldValueResolutionStrategy.php new file mode 100644 index 00000000..379d93ee --- /dev/null +++ b/src/FieldResolution/FieldValueResolutionStrategy.php @@ -0,0 +1,33 @@ +fieldValueResolutionStrategy = new FieldResolution\DefaultStrategy(); $this->resolutionStrategy = new FieldResolution\DefaultStrategy(); } @@ -239,7 +241,7 @@ public function createOne( ); $fieldValues = \array_map(function (FieldDefinition\Resolvable $fieldDefinition) { - return $this->resolutionStrategy->resolveFieldValue( + return $this->fieldValueResolutionStrategy->resolveFieldValue( $this->faker, $this, $fieldDefinition, @@ -325,6 +327,7 @@ public function withOptional(): self { $instance = clone $this; + $instance->fieldValueResolutionStrategy = new FieldResolution\WithOptionalStrategy(); $instance->resolutionStrategy = new FieldResolution\WithOptionalStrategy(); return $instance; @@ -342,6 +345,7 @@ public function withoutOptional(): self { $instance = clone $this; + $instance->fieldValueResolutionStrategy = new FieldResolution\WithoutOptionalStrategy(); $instance->resolutionStrategy = new FieldResolution\WithoutOptionalStrategy(); return $instance;