Skip to content

Commit

Permalink
Fix tests (#3698)
Browse files Browse the repository at this point in the history
* Use symfony/serializer >=4.4.9-5.0.9 to fix issues

symfony/symfony#34455
symfony/symfony#36601

* Lowest + legacy test suite missing git

* fix Symfony 5 router generate with reference type
  • Loading branch information
soyuka committed Sep 1, 2020
1 parent af3e305 commit 2c87089
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 8 deletions.
1 change: 1 addition & 0 deletions .github/workflows/ci.yml
Expand Up @@ -829,6 +829,7 @@ jobs:
- name: Install system packages
run: |
apk add \
git \
unzip \
- name: Cache mongodb PHP extension build
uses: actions/cache@v2
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Expand Up @@ -22,7 +22,7 @@
"symfony/http-kernel": "^4.3.7 || ^5.0",
"symfony/property-access": "^3.4 || ^4.0 || ^5.0",
"symfony/property-info": "^3.4 || ^4.0 || ^5.0",
"symfony/serializer": "^4.4 || ^5.0",
"symfony/serializer": "^4.4.9 || ^5.0.9",
"symfony/web-link": "^4.1 || ^5.0",
"willdurand/negotiation": "^2.0.3"
},
Expand Down
3 changes: 2 additions & 1 deletion src/Bridge/Symfony/Routing/IriConverter.php
Expand Up @@ -18,6 +18,7 @@
use ApiPlatform\Core\Api\IriConverterInterface;
use ApiPlatform\Core\Api\OperationType;
use ApiPlatform\Core\Api\ResourceClassResolverInterface;
use ApiPlatform\Core\Api\UrlGeneratorInterface;
use ApiPlatform\Core\DataProvider\ItemDataProviderInterface;
use ApiPlatform\Core\DataProvider\OperationDataProviderTrait;
use ApiPlatform\Core\DataProvider\SubresourceDataProviderInterface;
Expand Down Expand Up @@ -200,6 +201,6 @@ private function getReferenceType(string $resourceClass, ?int $referenceType): ?
$referenceType = $metadata->getAttribute('url_generation_strategy');
}

return $referenceType;
return $referenceType ?? UrlGeneratorInterface::ABS_PATH;
}
}
12 changes: 6 additions & 6 deletions tests/Bridge/Symfony/Routing/IriConverterTest.php
Expand Up @@ -144,7 +144,7 @@ public function testGetIriFromResourceClass()
$routeNameResolverProphecy->getRouteName(Dummy::class, OperationType::COLLECTION)->willReturn('dummies');

$routerProphecy = $this->prophesize(RouterInterface::class);
$routerProphecy->generate('dummies', [], null)->willReturn('/dummies');
$routerProphecy->generate('dummies', [], UrlGeneratorInterface::ABS_PATH)->willReturn('/dummies');

$converter = $this->getIriConverter($routerProphecy, $routeNameResolverProphecy);
$this->assertEquals($converter->getIriFromResourceClass(Dummy::class), '/dummies');
Expand Down Expand Up @@ -174,7 +174,7 @@ public function testNotAbleToGenerateGetIriFromResourceClass()
$routeNameResolverProphecy->getRouteName(Dummy::class, OperationType::COLLECTION)->willReturn('dummies');

$routerProphecy = $this->prophesize(RouterInterface::class);
$routerProphecy->generate('dummies', [], null)->willThrow(new RouteNotFoundException());
$routerProphecy->generate('dummies', [], UrlGeneratorInterface::ABS_PATH)->willThrow(new RouteNotFoundException());

$converter = $this->getIriConverter($routerProphecy, $routeNameResolverProphecy);
$converter->getIriFromResourceClass(Dummy::class);
Expand All @@ -186,7 +186,7 @@ public function testGetSubresourceIriFromResourceClass()
$routeNameResolverProphecy->getRouteName(Dummy::class, OperationType::SUBRESOURCE, Argument::type('array'))->willReturn('api_dummies_related_dummies_get_subresource');

$routerProphecy = $this->prophesize(RouterInterface::class);
$routerProphecy->generate('api_dummies_related_dummies_get_subresource', ['id' => 1], null)->willReturn('/dummies/1/related_dummies');
$routerProphecy->generate('api_dummies_related_dummies_get_subresource', ['id' => 1], UrlGeneratorInterface::ABS_PATH)->willReturn('/dummies/1/related_dummies');

$converter = $this->getIriConverter($routerProphecy, $routeNameResolverProphecy);
$this->assertEquals($converter->getSubresourceIriFromResourceClass(Dummy::class, ['subresource_identifiers' => ['id' => 1], 'subresource_resources' => [RelatedDummy::class => 1]]), '/dummies/1/related_dummies');
Expand All @@ -201,7 +201,7 @@ public function testNotAbleToGenerateGetSubresourceIriFromResourceClass()
$routeNameResolverProphecy->getRouteName(Dummy::class, OperationType::SUBRESOURCE, Argument::type('array'))->willReturn('dummies');

$routerProphecy = $this->prophesize(RouterInterface::class);
$routerProphecy->generate('dummies', ['id' => 1], null)->willThrow(new RouteNotFoundException());
$routerProphecy->generate('dummies', ['id' => 1], UrlGeneratorInterface::ABS_PATH)->willThrow(new RouteNotFoundException());

$converter = $this->getIriConverter($routerProphecy, $routeNameResolverProphecy);
$converter->getSubresourceIriFromResourceClass(Dummy::class, ['subresource_identifiers' => ['id' => 1], 'subresource_resources' => [RelatedDummy::class => 1]]);
Expand All @@ -213,7 +213,7 @@ public function testGetItemIriFromResourceClass()
$routeNameResolverProphecy->getRouteName(Dummy::class, OperationType::ITEM)->willReturn('api_dummies_get_item');

$routerProphecy = $this->prophesize(RouterInterface::class);
$routerProphecy->generate('api_dummies_get_item', ['id' => 1], null)->willReturn('/dummies/1');
$routerProphecy->generate('api_dummies_get_item', ['id' => 1], UrlGeneratorInterface::ABS_PATH)->willReturn('/dummies/1');

$converter = $this->getIriConverter($routerProphecy, $routeNameResolverProphecy);
$this->assertEquals($converter->getItemIriFromResourceClass(Dummy::class, ['id' => 1]), '/dummies/1');
Expand Down Expand Up @@ -243,7 +243,7 @@ public function testNotAbleToGenerateGetItemIriFromResourceClass()
$routeNameResolverProphecy->getRouteName(Dummy::class, OperationType::ITEM)->willReturn('dummies');

$routerProphecy = $this->prophesize(RouterInterface::class);
$routerProphecy->generate('dummies', ['id' => 1], null)->willThrow(new RouteNotFoundException());
$routerProphecy->generate('dummies', ['id' => 1], UrlGeneratorInterface::ABS_PATH)->willThrow(new RouteNotFoundException());

$converter = $this->getIriConverter($routerProphecy, $routeNameResolverProphecy);
$converter->getItemIriFromResourceClass(Dummy::class, ['id' => 1]);
Expand Down

0 comments on commit 2c87089

Please sign in to comment.