From 1ae4ff4bd375879be8999f209cd0788797f5b5b6 Mon Sep 17 00:00:00 2001 From: Baptiste Date: Wed, 26 Jun 2024 15:29:45 +0200 Subject: [PATCH] Reproducer issue with constructor models no isset check --- tests/AutoMapperTest.php | 12 ++ tests/Fixtures/ComposeModels/BlkioLimit.php | 10 ++ tests/Fixtures/ComposeModels/BlkioWeight.php | 10 ++ tests/Fixtures/ComposeModels/Compose.php | 20 ++++ tests/Fixtures/ComposeModels/Config.php | 10 ++ .../Fixtures/ComposeModels/ConfigExternal.php | 13 ++ tests/Fixtures/ComposeModels/Deployment.php | 10 ++ .../ComposeModels/DeploymentPlacement.php | 16 +++ .../DeploymentPlacementPreferencesItem.php | 10 ++ .../ComposeModels/DeploymentResources.php | 10 ++ .../DeploymentResourcesLimits.php | 10 ++ .../DeploymentResourcesReservations.php | 10 ++ .../ComposeModels/DeploymentRestartPolicy.php | 10 ++ .../DeploymentRollbackConfig.php | 10 ++ .../DeploymentRollbackConfigOrderEnum.php | 9 ++ .../ComposeModels/DeploymentUpdateConfig.php | 10 ++ .../DeploymentUpdateConfigOrderEnum.php | 9 ++ tests/Fixtures/ComposeModels/Development.php | 13 ++ .../ComposeModels/DevelopmentWatchItem.php | 16 +++ .../DevelopmentWatchItemActionEnum.php | 10 ++ tests/Fixtures/ComposeModels/DevicesItem.php | 18 +++ tests/Fixtures/ComposeModels/EnvFileItem.php | 10 ++ .../ComposeModels/GenericResourcesItem.php | 10 ++ ...nericResourcesItemDiscreteResourceSpec.php | 10 ++ tests/Fixtures/ComposeModels/Healthcheck.php | 10 ++ tests/Fixtures/ComposeModels/Network.php | 10 ++ .../ComposeModels/NetworkExternal.php | 13 ++ tests/Fixtures/ComposeModels/NetworkIpam.php | 15 +++ .../ComposeModels/NetworkIpamConfigItem.php | 10 ++ tests/Fixtures/ComposeModels/Secret.php | 10 ++ .../Fixtures/ComposeModels/SecretExternal.php | 10 ++ tests/Fixtures/ComposeModels/Service.php | 112 ++++++++++++++++++ .../ComposeModels/ServiceBlkioConfig.php | 22 ++++ tests/Fixtures/ComposeModels/ServiceBuild.php | 39 ++++++ .../ComposeModels/ServiceCgroupEnum.php | 9 ++ .../ServiceConfigOrSecretItem.php | 10 ++ .../ComposeModels/ServiceCredentialSpec.php | 10 ++ .../ComposeModels/ServiceDependsOn.php | 10 ++ .../ServiceDependsOnConditionEnum.php | 10 ++ .../Fixtures/ComposeModels/ServiceExtends.php | 10 ++ .../Fixtures/ComposeModels/ServiceLogging.php | 10 ++ .../ComposeModels/ServiceNetworks.php | 20 ++++ .../ComposeModels/ServicePortsItem.php | 10 ++ .../ComposeModels/ServicePullPolicyEnum.php | 12 ++ .../ComposeModels/ServiceVolumesItem.php | 10 ++ .../ComposeModels/ServiceVolumesItemBind.php | 10 ++ .../ServiceVolumesItemBindSelinuxEnum.php | 8 ++ .../ComposeModels/ServiceVolumesItemTmpfs.php | 10 ++ .../ServiceVolumesItemVolume.php | 10 ++ tests/Fixtures/ComposeModels/Ulimits.php | 10 ++ tests/Fixtures/ComposeModels/Volume.php | 10 ++ .../Fixtures/ComposeModels/VolumeExternal.php | 13 ++ tests/Fixtures/ComposeModels/_Include.php | 10 ++ .../ComposeModels/docker-starter-compose.yaml | 94 +++++++++++++++ 54 files changed, 823 insertions(+) create mode 100644 tests/Fixtures/ComposeModels/BlkioLimit.php create mode 100644 tests/Fixtures/ComposeModels/BlkioWeight.php create mode 100644 tests/Fixtures/ComposeModels/Compose.php create mode 100644 tests/Fixtures/ComposeModels/Config.php create mode 100644 tests/Fixtures/ComposeModels/ConfigExternal.php create mode 100644 tests/Fixtures/ComposeModels/Deployment.php create mode 100644 tests/Fixtures/ComposeModels/DeploymentPlacement.php create mode 100644 tests/Fixtures/ComposeModels/DeploymentPlacementPreferencesItem.php create mode 100644 tests/Fixtures/ComposeModels/DeploymentResources.php create mode 100644 tests/Fixtures/ComposeModels/DeploymentResourcesLimits.php create mode 100644 tests/Fixtures/ComposeModels/DeploymentResourcesReservations.php create mode 100644 tests/Fixtures/ComposeModels/DeploymentRestartPolicy.php create mode 100644 tests/Fixtures/ComposeModels/DeploymentRollbackConfig.php create mode 100644 tests/Fixtures/ComposeModels/DeploymentRollbackConfigOrderEnum.php create mode 100644 tests/Fixtures/ComposeModels/DeploymentUpdateConfig.php create mode 100644 tests/Fixtures/ComposeModels/DeploymentUpdateConfigOrderEnum.php create mode 100644 tests/Fixtures/ComposeModels/Development.php create mode 100644 tests/Fixtures/ComposeModels/DevelopmentWatchItem.php create mode 100644 tests/Fixtures/ComposeModels/DevelopmentWatchItemActionEnum.php create mode 100644 tests/Fixtures/ComposeModels/DevicesItem.php create mode 100644 tests/Fixtures/ComposeModels/EnvFileItem.php create mode 100644 tests/Fixtures/ComposeModels/GenericResourcesItem.php create mode 100644 tests/Fixtures/ComposeModels/GenericResourcesItemDiscreteResourceSpec.php create mode 100644 tests/Fixtures/ComposeModels/Healthcheck.php create mode 100644 tests/Fixtures/ComposeModels/Network.php create mode 100644 tests/Fixtures/ComposeModels/NetworkExternal.php create mode 100644 tests/Fixtures/ComposeModels/NetworkIpam.php create mode 100644 tests/Fixtures/ComposeModels/NetworkIpamConfigItem.php create mode 100644 tests/Fixtures/ComposeModels/Secret.php create mode 100644 tests/Fixtures/ComposeModels/SecretExternal.php create mode 100644 tests/Fixtures/ComposeModels/Service.php create mode 100644 tests/Fixtures/ComposeModels/ServiceBlkioConfig.php create mode 100644 tests/Fixtures/ComposeModels/ServiceBuild.php create mode 100644 tests/Fixtures/ComposeModels/ServiceCgroupEnum.php create mode 100644 tests/Fixtures/ComposeModels/ServiceConfigOrSecretItem.php create mode 100644 tests/Fixtures/ComposeModels/ServiceCredentialSpec.php create mode 100644 tests/Fixtures/ComposeModels/ServiceDependsOn.php create mode 100644 tests/Fixtures/ComposeModels/ServiceDependsOnConditionEnum.php create mode 100644 tests/Fixtures/ComposeModels/ServiceExtends.php create mode 100644 tests/Fixtures/ComposeModels/ServiceLogging.php create mode 100644 tests/Fixtures/ComposeModels/ServiceNetworks.php create mode 100644 tests/Fixtures/ComposeModels/ServicePortsItem.php create mode 100644 tests/Fixtures/ComposeModels/ServicePullPolicyEnum.php create mode 100644 tests/Fixtures/ComposeModels/ServiceVolumesItem.php create mode 100644 tests/Fixtures/ComposeModels/ServiceVolumesItemBind.php create mode 100644 tests/Fixtures/ComposeModels/ServiceVolumesItemBindSelinuxEnum.php create mode 100644 tests/Fixtures/ComposeModels/ServiceVolumesItemTmpfs.php create mode 100644 tests/Fixtures/ComposeModels/ServiceVolumesItemVolume.php create mode 100644 tests/Fixtures/ComposeModels/Ulimits.php create mode 100644 tests/Fixtures/ComposeModels/Volume.php create mode 100644 tests/Fixtures/ComposeModels/VolumeExternal.php create mode 100644 tests/Fixtures/ComposeModels/_Include.php create mode 100644 tests/Fixtures/ComposeModels/docker-starter-compose.yaml diff --git a/tests/AutoMapperTest.php b/tests/AutoMapperTest.php index 33418c1..47544d5 100644 --- a/tests/AutoMapperTest.php +++ b/tests/AutoMapperTest.php @@ -25,6 +25,7 @@ use AutoMapper\Tests\Fixtures\ClassWithMapToContextAttribute; use AutoMapper\Tests\Fixtures\ClassWithNullablePropertyInConstructor; use AutoMapper\Tests\Fixtures\ClassWithPrivateProperty; +use AutoMapper\Tests\Fixtures\ComposeModels\Compose; use AutoMapper\Tests\Fixtures\ConstructorWithDefaultValues; use AutoMapper\Tests\Fixtures\DifferentSetterGetterType; use AutoMapper\Tests\Fixtures\Dog; @@ -64,6 +65,7 @@ use Symfony\Component\Serializer\NameConverter\AdvancedNameConverterInterface; use Symfony\Component\Uid\Ulid; use Symfony\Component\Uid\Uuid; +use Symfony\Component\Yaml\Yaml; /** * @author Joel Wurtz @@ -1563,4 +1565,14 @@ public function testParamDocBlock(): void 'foo' => ['foo1', 'foo2'], ], $array); } + + public function testComposeSpec(): void + { + $this->buildAutoMapper(); + + $data = Yaml::parse(file_get_contents(__DIR__ . '/Fixtures/ComposeModels/docker-starter-compose.yaml')); + $dockerStarter = $this->autoMapper->map($data, Compose::class); + + dd($dockerStarter); + } } diff --git a/tests/Fixtures/ComposeModels/BlkioLimit.php b/tests/Fixtures/ComposeModels/BlkioLimit.php new file mode 100644 index 0000000..54685d1 --- /dev/null +++ b/tests/Fixtures/ComposeModels/BlkioLimit.php @@ -0,0 +1,10 @@ +|null */ + public array|null $storageOpt = NULL, + public string|null $tmpfs = NULL, + public bool|null $tty = NULL, + public int|null|Ulimits $ulimits = NULL, + public string|null $user = NULL, + public string|null $uts = NULL, + public string|null $usernsMode = NULL, + /** @var string|null|ServiceVolumesItem[]|null */ + public array|null $volumes = NULL, + /** @var string|null[]|null */ + public array|null $volumesFrom = NULL, + public string|null $workingDir = NULL + ) + { + } +} \ No newline at end of file diff --git a/tests/Fixtures/ComposeModels/ServiceBlkioConfig.php b/tests/Fixtures/ComposeModels/ServiceBlkioConfig.php new file mode 100644 index 0000000..5dbb408 --- /dev/null +++ b/tests/Fixtures/ComposeModels/ServiceBlkioConfig.php @@ -0,0 +1,22 @@ +