diff --git a/.circleci/config.yml b/.circleci/config.yml index e2b41b4698d..ce6cf82559c 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -13,6 +13,10 @@ reusable-steps: run: name: Disable Xdebug PHP extension command: sudo rm /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini + - &install-doctrine-mongodb-odm + run: + name: Install Doctrine MongoDB ODM + command: composer require --prefer-dist --no-progress --no-suggest --no-update --ansi doctrine/mongodb-odm:^2.0.0@beta doctrine/mongodb-odm-bundle:^4.0.0@beta - &install-php-extensions run: name: Install PHP extensions @@ -134,6 +138,7 @@ jobs: - *disable-php-memory-limit - *install-php-extensions - *update-composer + - *install-doctrine-mongodb-odm - *update-project-dependencies - *save-composer-cache-by-revision - *save-composer-cache-by-branch diff --git a/.travis.yml b/.travis.yml index a498f03d141..0c1bb25b372 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,10 +8,6 @@ cache: jobs: include: - php: '7.1' - env: NO_UNIT_TESTS=true - before_install: - - composer remove --dev ext-mongodb doctrine/mongodb-odm doctrine/mongodb-odm-bundle - - sed -i '33,39d' tests/Fixtures/app/config/config_common.yml - php: '7.2' - php: '7.3' - php: '7.3' @@ -46,12 +42,15 @@ before_install: - if [[ $APP_ENV = 'elasticsearch' ]]; then curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.0.deb && sudo dpkg -i --force-confnew elasticsearch-6.5.0.deb && sudo service elasticsearch restart; fi - - phpenv config-rm xdebug.ini || echo "xdebug not available" - echo "memory_limit=-1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini - - echo "extension=mongodb.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini + - if [[ $APP_ENV = 'mongodb' ]]; then + echo "extension=mongodb.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/mongodb.ini; + fi + - phpenv config-rm xdebug.ini || echo "xdebug not available" - export PATH="$PATH:$HOME/.composer/vendor/bin" install: + - if [[ $APP_ENV = 'mongodb' ]]; then composer require --prefer-dist --no-progress --no-suggest --no-update --ansi doctrine/mongodb-odm:^2.0.0@beta doctrine/mongodb-odm-bundle:^4.0.0@beta; fi - if [[ $deps = 'low' ]]; then composer update --prefer-dist --no-progress --no-suggest --prefer-stable --prefer-lowest --ansi; else @@ -60,11 +59,10 @@ install: script: - tests/Fixtures/app/console cache:clear - - if [[ $NO_UNIT_TESTS != true ]]; then - vendor/bin/phpunit; - fi - if [[ $APP_ENV = 'mongodb' ]]; then vendor/bin/phpunit -c phpunit.mongo.xml; + else + vendor/bin/phpunit; fi - tests/Fixtures/app/console cache:clear - if [[ $APP_ENV = 'postgres' ]]; then diff --git a/composer.json b/composer.json index 228872a2b1d..fb69c1d3e1c 100644 --- a/composer.json +++ b/composer.json @@ -35,8 +35,6 @@ "doctrine/annotations": "^1.2", "doctrine/doctrine-bundle": "^1.8", "doctrine/doctrine-cache-bundle": "^1.3.5", - "doctrine/mongodb-odm": "^2.0.0@beta", - "doctrine/mongodb-odm-bundle": "^4.0.0@beta", "doctrine/orm": "^2.6.3", "elasticsearch/elasticsearch": "^6.0", "friendsofsymfony/user-bundle": "^2.2@dev", diff --git a/phpunit.mongo.xml b/phpunit.mongo.xml index 23112a197ce..ee2ce7fb67b 100644 --- a/phpunit.mongo.xml +++ b/phpunit.mongo.xml @@ -13,7 +13,7 @@ - + diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 10f0d89101d..aa9fd425f41 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -37,4 +37,10 @@ + + + + mongodb + + diff --git a/tests/Bridge/Doctrine/Common/Util/IdentifierManagerTraitTest.php b/tests/Bridge/Doctrine/Common/Util/IdentifierManagerTraitTest.php index 88c65109d17..ce0f1f11e83 100644 --- a/tests/Bridge/Doctrine/Common/Util/IdentifierManagerTraitTest.php +++ b/tests/Bridge/Doctrine/Common/Util/IdentifierManagerTraitTest.php @@ -70,6 +70,7 @@ public function testSingleIdentifier() /** * @group legacy + * @group mongodb */ public function testSingleDocumentIdentifier() { diff --git a/tests/Bridge/Doctrine/MongoDbOdm/CollectionDataProviderTest.php b/tests/Bridge/Doctrine/MongoDbOdm/CollectionDataProviderTest.php index d77c2770a78..001e4d997a8 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/CollectionDataProviderTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/CollectionDataProviderTest.php @@ -27,6 +27,8 @@ use PHPUnit\Framework\TestCase; /** + * @group mongodb + * * @author Alan Poulain */ class CollectionDataProviderTest extends TestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/Extension/FilterExtensionTest.php b/tests/Bridge/Doctrine/MongoDbOdm/Extension/FilterExtensionTest.php index 1a8ba45c61a..f0f3e8f841c 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/Extension/FilterExtensionTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/Extension/FilterExtensionTest.php @@ -24,6 +24,8 @@ use Psr\Container\ContainerInterface; /** + * @group mongodb + * * @author Alan Poulain */ class FilterExtensionTest extends TestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/Extension/OrderExtensionTest.php b/tests/Bridge/Doctrine/MongoDbOdm/Extension/OrderExtensionTest.php index 83eb238f046..1bb035e7278 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/Extension/OrderExtensionTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/Extension/OrderExtensionTest.php @@ -25,6 +25,8 @@ use PHPUnit\Framework\TestCase; /** + * @group mongodb + * * @author Alan Poulain */ class OrderExtensionTest extends TestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/Extension/PaginationExtensionTest.php b/tests/Bridge/Doctrine/MongoDbOdm/Extension/PaginationExtensionTest.php index 68f23f90d88..00fd4304674 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/Extension/PaginationExtensionTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/Extension/PaginationExtensionTest.php @@ -34,6 +34,8 @@ use PHPUnit\Framework\TestCase; /** + * @group mongodb + * * @author Alan Poulain */ class PaginationExtensionTest extends TestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/Filter/BooleanFilterTest.php b/tests/Bridge/Doctrine/MongoDbOdm/Filter/BooleanFilterTest.php index 21c704223fc..5cf86939f60 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/Filter/BooleanFilterTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/Filter/BooleanFilterTest.php @@ -18,6 +18,8 @@ use ApiPlatform\Core\Tests\Bridge\Doctrine\Common\Filter\BooleanFilterTestTrait; /** + * @group mongodb + * * @author Alan Poulain */ class BooleanFilterTest extends DoctrineMongoDbOdmFilterTestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/Filter/DateFilterTest.php b/tests/Bridge/Doctrine/MongoDbOdm/Filter/DateFilterTest.php index 62e785b779b..45105ea2458 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/Filter/DateFilterTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/Filter/DateFilterTest.php @@ -19,6 +19,8 @@ use MongoDB\BSON\UTCDateTime; /** + * @group mongodb + * * @author Alan Poulain */ class DateFilterTest extends DoctrineMongoDbOdmFilterTestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilterTest.php b/tests/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilterTest.php index 6b8c87ae052..e2350e1e5d5 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilterTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/Filter/ExistsFilterTest.php @@ -18,6 +18,8 @@ use ApiPlatform\Core\Tests\Bridge\Doctrine\Common\Filter\ExistsFilterTestTrait; /** + * @group mongodb + * * @author Alan Poulain */ class ExistsFilterTest extends DoctrineMongoDbOdmFilterTestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/Filter/NumericFilterTest.php b/tests/Bridge/Doctrine/MongoDbOdm/Filter/NumericFilterTest.php index deacd1bce27..f606bf9240c 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/Filter/NumericFilterTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/Filter/NumericFilterTest.php @@ -18,6 +18,8 @@ use ApiPlatform\Core\Tests\Bridge\Doctrine\Common\Filter\NumericFilterTestTrait; /** + * @group mongodb + * * @author Alan Poulain */ class NumericFilterTest extends DoctrineMongoDbOdmFilterTestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/Filter/OrderFilterTest.php b/tests/Bridge/Doctrine/MongoDbOdm/Filter/OrderFilterTest.php index d11e1fc1f7c..7e63d34509c 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/Filter/OrderFilterTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/Filter/OrderFilterTest.php @@ -19,6 +19,8 @@ use Doctrine\Common\Persistence\ManagerRegistry; /** + * @group mongodb + * * @author Alan Poulain */ class OrderFilterTest extends DoctrineMongoDbOdmFilterTestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/Filter/RangeFilterTest.php b/tests/Bridge/Doctrine/MongoDbOdm/Filter/RangeFilterTest.php index 8471a845e5a..57c1d102e34 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/Filter/RangeFilterTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/Filter/RangeFilterTest.php @@ -18,6 +18,8 @@ use ApiPlatform\Core\Tests\Bridge\Doctrine\Common\Filter\RangeFilterTestTrait; /** + * @group mongodb + * * @author Alan Poulain */ class RangeFilterTest extends DoctrineMongoDbOdmFilterTestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/Filter/SearchFilterTest.php b/tests/Bridge/Doctrine/MongoDbOdm/Filter/SearchFilterTest.php index e3554af85cf..a36d81cbffb 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/Filter/SearchFilterTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/Filter/SearchFilterTest.php @@ -24,6 +24,8 @@ use Prophecy\Argument; /** + * @group mongodb + * * @author Alan Poulain */ class SearchFilterTest extends DoctrineMongoDbOdmFilterTestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/ItemDataProviderTest.php b/tests/Bridge/Doctrine/MongoDbOdm/ItemDataProviderTest.php index 4399ef02de2..2f5cee9f086 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/ItemDataProviderTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/ItemDataProviderTest.php @@ -36,6 +36,8 @@ use PHPUnit\Framework\TestCase; /** + * @group mongodb + * * @author Alan Poulain */ class ItemDataProviderTest extends TestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/Metadata/Property/DoctrineMongoDbOdmPropertyMetadataFactoryTest.php b/tests/Bridge/Doctrine/MongoDbOdm/Metadata/Property/DoctrineMongoDbOdmPropertyMetadataFactoryTest.php index 391cb460ea2..bdf3c958a83 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/Metadata/Property/DoctrineMongoDbOdmPropertyMetadataFactoryTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/Metadata/Property/DoctrineMongoDbOdmPropertyMetadataFactoryTest.php @@ -23,6 +23,8 @@ use PHPUnit\Framework\TestCase; /** + * @group mongodb + * * @author Alan Poulain */ class DoctrineMongoDbOdmPropertyMetadataFactoryTest extends TestCase diff --git a/tests/Bridge/Doctrine/MongoDbOdm/PaginatorTest.php b/tests/Bridge/Doctrine/MongoDbOdm/PaginatorTest.php index 2d6277e9321..21bb588c83c 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/PaginatorTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/PaginatorTest.php @@ -20,6 +20,9 @@ use Doctrine\ODM\MongoDB\UnitOfWork; use PHPUnit\Framework\TestCase; +/** + * @group mongodb + */ class PaginatorTest extends TestCase { /** diff --git a/tests/Bridge/Doctrine/MongoDbOdm/PropertyInfo/DoctrineExtractorTest.php b/tests/Bridge/Doctrine/MongoDbOdm/PropertyInfo/DoctrineExtractorTest.php index 1babc515bad..2106410577a 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/PropertyInfo/DoctrineExtractorTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/PropertyInfo/DoctrineExtractorTest.php @@ -27,6 +27,8 @@ use Symfony\Component\PropertyInfo\Type; /** + * @group mongodb + * * @author Kévin Dunglas * @author Alan Poulain */ diff --git a/tests/Bridge/Doctrine/MongoDbOdm/SubresourceDataProviderTest.php b/tests/Bridge/Doctrine/MongoDbOdm/SubresourceDataProviderTest.php index df3346588a6..301843efa60 100644 --- a/tests/Bridge/Doctrine/MongoDbOdm/SubresourceDataProviderTest.php +++ b/tests/Bridge/Doctrine/MongoDbOdm/SubresourceDataProviderTest.php @@ -39,6 +39,8 @@ use Prophecy\Argument; /** + * @group mongodb + * * @author Alan Poulain */ class SubresourceDataProviderTest extends TestCase diff --git a/tests/Bridge/Symfony/Bundle/DependencyInjection/ApiPlatformExtensionTest.php b/tests/Bridge/Symfony/Bundle/DependencyInjection/ApiPlatformExtensionTest.php index a2d2b5d1186..9aa7bd35301 100644 --- a/tests/Bridge/Symfony/Bundle/DependencyInjection/ApiPlatformExtensionTest.php +++ b/tests/Bridge/Symfony/Bundle/DependencyInjection/ApiPlatformExtensionTest.php @@ -126,6 +126,9 @@ class ApiPlatformExtensionTest extends TestCase ], ], ]], + 'doctrine_mongodb_odm' => [ + 'enabled' => false, + ], ]]; private $extension; @@ -219,6 +222,23 @@ public function testLoadDefaultConfig() $this->extension->load(self::DEFAULT_CONFIG, $containerBuilder); } + /** + * @group mongodb + */ + public function testLoadDefaultConfigWithOdm() + { + $containerBuilderProphecy = $this->getBaseContainerBuilderProphecy(['odm']); + $containerBuilderProphecy->setParameter('api_platform.enable_swagger', '1')->shouldBeCalled(); + $containerBuilderProphecy->hasParameter('kernel.debug')->willReturn(true); + $containerBuilderProphecy->getParameter('kernel.debug')->willReturn(false); + $containerBuilder = $containerBuilderProphecy->reveal(); + + $config = self::DEFAULT_CONFIG; + $config['api_platform']['doctrine_mongodb_odm']['enabled'] = true; + + $this->extension->load($config, $containerBuilder); + } + public function testSetNameConverter() { $nameConverterId = 'test.name_converter'; @@ -231,7 +251,10 @@ public function testSetNameConverter() $containerBuilder = $containerBuilderProphecy->reveal(); - $this->extension->load(array_merge_recursive(self::DEFAULT_CONFIG, ['api_platform' => ['name_converter' => $nameConverterId]]), $containerBuilder); + $config = self::DEFAULT_CONFIG; + $config['api_platform']['name_converter'] = $nameConverterId; + + $this->extension->load($config, $containerBuilder); } public function testEnableFosUser() @@ -248,7 +271,10 @@ public function testEnableFosUser() $containerBuilder = $containerBuilderProphecy->reveal(); - $this->extension->load(array_merge_recursive(self::DEFAULT_CONFIG, ['api_platform' => ['enable_fos_user' => true]]), $containerBuilder); + $config = self::DEFAULT_CONFIG; + $config['api_platform']['enable_fos_user'] = true; + + $this->extension->load($config, $containerBuilder); } public function testDisableProfiler() @@ -257,7 +283,10 @@ public function testDisableProfiler() $containerBuilder = $containerBuilderProphecy->reveal(); $containerBuilderProphecy->setDefinition('api_platform.data_collector.request', Argument::type(Definition::class))->shouldNotBeCalled(); - $this->extension->load(array_merge_recursive(self::DEFAULT_CONFIG, ['api_platform' => ['enable_profiler' => false]]), $containerBuilder); + $config = self::DEFAULT_CONFIG; + $config['api_platform']['enable_profiler'] = false; + + $this->extension->load($config, $containerBuilder); } public function testEnableProfilerWithDebug() @@ -271,7 +300,10 @@ public function testEnableProfilerWithDebug() $containerBuilderProphecy->setDefinition('debug.api_platform.data_persister', Argument::type(Definition::class))->shouldBeCalled(); $containerBuilder = $containerBuilderProphecy->reveal(); - $this->extension->load(array_merge_recursive(self::DEFAULT_CONFIG, ['api_platform' => ['enable_profiler' => true]]), $containerBuilder); + $config = self::DEFAULT_CONFIG; + $config['api_platform']['enable_profiler'] = true; + + $this->extension->load($config, $containerBuilder); } public function testFosUserPriority() @@ -310,7 +342,11 @@ public function testEnableNelmioApiDoc() $containerBuilder = $containerBuilderProphecy->reveal(); - $this->extension->load(array_merge_recursive(self::DEFAULT_CONFIG, ['api_platform' => ['enable_nelmio_api_doc' => true]]), $containerBuilder); + $config = self::DEFAULT_CONFIG; + $config['api_platform']['doctrine_mongodb_odm']['enabled'] = false; + $config['api_platform']['enable_nelmio_api_doc'] = true; + + $this->extension->load($config, $containerBuilder); } public function testDisableGraphQl() @@ -332,7 +368,10 @@ public function testDisableGraphQl() $containerBuilder = $containerBuilderProphecy->reveal(); - $this->extension->load(array_merge_recursive(self::DEFAULT_CONFIG, ['api_platform' => ['graphql' => ['enabled' => false]]]), $containerBuilder); + $config = self::DEFAULT_CONFIG; + $config['api_platform']['graphql']['enabled'] = false; + + $this->extension->load($config, $containerBuilder); } public function testEnableSecurity() @@ -370,7 +409,10 @@ public function testAddResourceClassDirectories() }))->shouldBeCalled(); $containerBuilder = $containerBuilderProphecy->reveal(); - $this->extension->load(array_merge_recursive(self::DEFAULT_CONFIG, ['api_platform' => ['resource_class_directories' => ['foobar']]]), $containerBuilder); + $config = self::DEFAULT_CONFIG; + $config['api_platform']['resource_class_directories'] = ['foobar']; + + $this->extension->load($config, $containerBuilder); } public function testResourcesToWatchWithUnsupportedMappingType() @@ -378,8 +420,11 @@ public function testResourcesToWatchWithUnsupportedMappingType() $this->expectException(RuntimeException::class); $this->expectExceptionMessageRegExp('/Unsupported mapping type in ".+", supported types are XML & Yaml\\./'); + $config = self::DEFAULT_CONFIG; + $config['api_platform']['mapping']['paths'] = [__FILE__]; + $this->extension->load( - array_merge_recursive(self::DEFAULT_CONFIG, ['api_platform' => ['mapping' => ['paths' => [__FILE__]]]]), + $config, $this->getPartialContainerBuilderProphecy()->reveal() ); } @@ -389,8 +434,11 @@ public function testResourcesToWatchWithNonExistentFile() $this->expectException(RuntimeException::class); $this->expectExceptionMessage('Could not open file or directory "fake_file.xml".'); + $config = self::DEFAULT_CONFIG; + $config['api_platform']['mapping']['paths'] = ['fake_file.xml']; + $this->extension->load( - array_merge_recursive(self::DEFAULT_CONFIG, ['api_platform' => ['mapping' => ['paths' => ['fake_file.xml']]]]), + $config, $this->getPartialContainerBuilderProphecy()->reveal() ); } @@ -404,7 +452,11 @@ public function testDisableEagerLoadingExtension() $containerBuilderProphecy->removeDefinition('api_platform.doctrine.orm.query_extension.eager_loading')->shouldBeCalled(); $containerBuilderProphecy->removeDefinition('api_platform.doctrine.orm.query_extension.filter_eager_loading')->shouldBeCalled(); $containerBuilder = $containerBuilderProphecy->reveal(); - $this->extension->load(array_merge_recursive(self::DEFAULT_CONFIG, ['api_platform' => ['eager_loading' => ['enabled' => false]]]), $containerBuilder); + + $config = self::DEFAULT_CONFIG; + $config['api_platform']['eager_loading']['enabled'] = false; + + $this->extension->load($config, $containerBuilder); } public function testNotRegisterHttpCacheWhenEnabledWithNoVarnishServer() @@ -478,7 +530,20 @@ public function testDisabledMessenger() public function testDisableDoctrine() { - $containerBuilderProphecy = $this->getBaseContainerBuilderProphecy(); + $this->runDisableDoctrineTests(); + } + + /** + * @group mongodb + */ + public function testDisableDoctrineWithMongoDbOdm() + { + $this->runDisableDoctrineTests(); + } + + private function runDisableDoctrineTests() + { + $containerBuilderProphecy = $this->getBaseContainerBuilderProphecy([]); $containerBuilderProphecy->registerForAutoconfiguration(QueryItemExtensionInterface::class)->shouldNotBeCalled(); $this->childDefinitionProphecy->addTag('api_platform.doctrine.orm.query_extension.item')->shouldNotBeCalled(); $containerBuilderProphecy->registerForAutoconfiguration(QueryCollectionExtensionInterface::class)->shouldNotBeCalled(); @@ -521,9 +586,15 @@ public function testDisableDoctrine() $containerBuilderProphecy->setAlias(ExistsFilter::class, 'api_platform.doctrine.orm.exists_filter')->shouldNotBeCalled(); $containerBuilder = $containerBuilderProphecy->reveal(); - $this->extension->load(array_merge_recursive(self::DEFAULT_CONFIG, ['api_platform' => ['doctrine' => ['enabled' => false]]]), $containerBuilder); + $config = self::DEFAULT_CONFIG; + $config['api_platform']['doctrine']['enabled'] = false; + + $this->extension->load($config, $containerBuilder); } + /** + * @group mongodb + */ public function testDisableDoctrineMongoDbOdm() { $containerBuilderProphecy = $this->getBaseContainerBuilderProphecy(); @@ -564,7 +635,7 @@ public function testDisableDoctrineMongoDbOdm() $containerBuilderProphecy->setAlias(MongoDbOdmRangeFilter::class, 'api_platform.doctrine_mongodb.odm.range_filter')->shouldNotBeCalled(); $containerBuilder = $containerBuilderProphecy->reveal(); - $this->extension->load(array_merge_recursive(self::DEFAULT_CONFIG, ['api_platform' => ['doctrine_mongodb_odm' => ['enabled' => false]]]), $containerBuilder); + $this->extension->load(self::DEFAULT_CONFIG, $containerBuilder); } public function testEnableElasticsearch() @@ -901,7 +972,7 @@ private function getPartialContainerBuilderProphecy() return $containerBuilderProphecy; } - private function getBaseContainerBuilderProphecy() + private function getBaseContainerBuilderProphecy(array $doctrineIntegrationsToLoad = ['orm']) { $containerBuilderProphecy = $this->getPartialContainerBuilderProphecy(); @@ -917,17 +988,19 @@ private function getBaseContainerBuilderProphecy() ->willReturn($this->childDefinitionProphecy)->shouldBeCalledTimes(1); $this->childDefinitionProphecy->setBindings(['$requestStack' => null])->shouldBeCalledTimes(1); - $containerBuilderProphecy->registerForAutoconfiguration(AggregationItemExtensionInterface::class) - ->willReturn($this->childDefinitionProphecy)->shouldBeCalledTimes(1); - $this->childDefinitionProphecy->addTag('api_platform.doctrine.mongodb.aggregation_extension.item')->shouldBeCalledTimes(1); + if (\in_array('odm', $doctrineIntegrationsToLoad, true)) { + $containerBuilderProphecy->registerForAutoconfiguration(AggregationItemExtensionInterface::class) + ->willReturn($this->childDefinitionProphecy)->shouldBeCalledTimes(1); + $this->childDefinitionProphecy->addTag('api_platform.doctrine.mongodb.aggregation_extension.item')->shouldBeCalledTimes(1); - $containerBuilderProphecy->registerForAutoconfiguration(AggregationCollectionExtensionInterface::class) - ->willReturn($this->childDefinitionProphecy)->shouldBeCalledTimes(1); - $this->childDefinitionProphecy->addTag('api_platform.doctrine.mongodb.aggregation_extension.collection')->shouldBeCalledTimes(1); + $containerBuilderProphecy->registerForAutoconfiguration(AggregationCollectionExtensionInterface::class) + ->willReturn($this->childDefinitionProphecy)->shouldBeCalledTimes(1); + $this->childDefinitionProphecy->addTag('api_platform.doctrine.mongodb.aggregation_extension.collection')->shouldBeCalledTimes(1); - $containerBuilderProphecy->registerForAutoconfiguration(DoctrineMongoDbOdmAbstractFilter::class) - ->willReturn($this->childDefinitionProphecy)->shouldBeCalledTimes(1); - $this->childDefinitionProphecy->setBindings(Argument::allOf(Argument::withEntry('$managerRegistry', Argument::type(Reference::class))))->shouldBeCalledTimes(1); + $containerBuilderProphecy->registerForAutoconfiguration(DoctrineMongoDbOdmAbstractFilter::class) + ->willReturn($this->childDefinitionProphecy)->shouldBeCalledTimes(1); + $this->childDefinitionProphecy->setBindings(Argument::allOf(Argument::withEntry('$managerRegistry', Argument::type(Reference::class))))->shouldBeCalledTimes(1); + } $containerBuilderProphecy->registerForAutoconfiguration(DataTransformerInterface::class) ->willReturn($this->childDefinitionProphecy)->shouldBeCalledTimes(1); @@ -969,7 +1042,6 @@ private function getBaseContainerBuilderProphecy() 'api_platform.data_collector.request', 'api_platform.doctrine.listener.http_cache.purge', 'api_platform.doctrine.listener.mercure.publish', - 'api_platform.doctrine.metadata_factory', 'api_platform.doctrine.orm.boolean_filter', 'api_platform.doctrine.orm.collection_data_provider', 'api_platform.doctrine.orm.data_persister', @@ -990,25 +1062,6 @@ private function getBaseContainerBuilderProphecy() 'api_platform.doctrine.orm.range_filter', 'api_platform.doctrine.orm.search_filter', 'api_platform.doctrine.orm.subresource_data_provider', - 'api_platform.doctrine_mongodb.odm.aggregation_extension.filter', - 'api_platform.doctrine_mongodb.odm.aggregation_extension.order', - 'api_platform.doctrine_mongodb.odm.aggregation_extension.pagination', - 'api_platform.doctrine_mongodb.odm.boolean_filter', - 'api_platform.doctrine_mongodb.odm.collection_data_provider', - 'api_platform.doctrine_mongodb.odm.data_persister', - 'api_platform.doctrine_mongodb.odm.date_filter', - 'api_platform.doctrine_mongodb.odm.default.collection_data_provider', - 'api_platform.doctrine_mongodb.odm.default.item_data_provider', - 'api_platform.doctrine_mongodb.odm.default.subresource_data_provider', - 'api_platform.doctrine_mongodb.odm.default_document_manager.property_info_extractor', - 'api_platform.doctrine_mongodb.odm.exists_filter', - 'api_platform.doctrine_mongodb.odm.item_data_provider', - 'api_platform.doctrine_mongodb.odm.metadata.property.metadata_factory', - 'api_platform.doctrine_mongodb.odm.numeric_filter', - 'api_platform.doctrine_mongodb.odm.order_filter', - 'api_platform.doctrine_mongodb.odm.range_filter', - 'api_platform.doctrine_mongodb.odm.search_filter', - 'api_platform.doctrine_mongodb.odm.subresource_data_provider', 'api_platform.graphql.action.entrypoint', 'api_platform.graphql.executor', 'api_platform.graphql.schema_builder', @@ -1067,6 +1120,34 @@ private function getBaseContainerBuilderProphecy() 'api_platform.validator', ]; + if (\in_array('odm', $doctrineIntegrationsToLoad, true)) { + $definitions = array_merge($definitions, [ + 'api_platform.doctrine_mongodb.odm.aggregation_extension.filter', + 'api_platform.doctrine_mongodb.odm.aggregation_extension.order', + 'api_platform.doctrine_mongodb.odm.aggregation_extension.pagination', + 'api_platform.doctrine_mongodb.odm.boolean_filter', + 'api_platform.doctrine_mongodb.odm.collection_data_provider', + 'api_platform.doctrine_mongodb.odm.data_persister', + 'api_platform.doctrine_mongodb.odm.date_filter', + 'api_platform.doctrine_mongodb.odm.default.collection_data_provider', + 'api_platform.doctrine_mongodb.odm.default.item_data_provider', + 'api_platform.doctrine_mongodb.odm.default.subresource_data_provider', + 'api_platform.doctrine_mongodb.odm.default_document_manager.property_info_extractor', + 'api_platform.doctrine_mongodb.odm.exists_filter', + 'api_platform.doctrine_mongodb.odm.item_data_provider', + 'api_platform.doctrine_mongodb.odm.metadata.property.metadata_factory', + 'api_platform.doctrine_mongodb.odm.numeric_filter', + 'api_platform.doctrine_mongodb.odm.order_filter', + 'api_platform.doctrine_mongodb.odm.range_filter', + 'api_platform.doctrine_mongodb.odm.search_filter', + 'api_platform.doctrine_mongodb.odm.subresource_data_provider', + ]); + } + + if (0 !== \count($doctrineIntegrationsToLoad)) { + $definitions[] = 'api_platform.doctrine.metadata_factory'; + } + foreach ($definitions as $definition) { $containerBuilderProphecy->setDefinition($definition, Argument::type(Definition::class))->shouldBeCalled(); } @@ -1077,9 +1158,6 @@ private function getBaseContainerBuilderProphecy() EagerLoadingExtension::class => 'api_platform.doctrine.orm.query_extension.eager_loading', FilterExtension::class => 'api_platform.doctrine.orm.query_extension.filter', FilterEagerLoadingExtension::class => 'api_platform.doctrine.orm.query_extension.filter_eager_loading', - MongoDbOdmFilterExtension::class => 'api_platform.doctrine_mongodb.odm.aggregation_extension.filter', - MongoDbOdmOrderExtension::class => 'api_platform.doctrine_mongodb.odm.aggregation_extension.order', - MongoDbOdmPaginationExtension::class => 'api_platform.doctrine_mongodb.odm.aggregation_extension.pagination', PaginationExtension::class => 'api_platform.doctrine.orm.query_extension.pagination', OrderExtension::class => 'api_platform.doctrine.orm.query_extension.order', ValidatorInterface::class => 'api_platform.validator', @@ -1090,15 +1168,23 @@ private function getBaseContainerBuilderProphecy() BooleanFilter::class => 'api_platform.doctrine.orm.boolean_filter', NumericFilter::class => 'api_platform.doctrine.orm.numeric_filter', ExistsFilter::class => 'api_platform.doctrine.orm.exists_filter', - MongoDbOdmSearchFilter::class => 'api_platform.doctrine_mongodb.odm.search_filter', - MongoDbOdmBooleanFilter::class => 'api_platform.doctrine_mongodb.odm.boolean_filter', - MongoDbOdmDateFilter::class => 'api_platform.doctrine_mongodb.odm.date_filter', - MongoDbOdmExistsFilter::class => 'api_platform.doctrine_mongodb.odm.exists_filter', - MongoDbOdmNumericFilter::class => 'api_platform.doctrine_mongodb.odm.numeric_filter', - MongoDbOdmOrderFilter::class => 'api_platform.doctrine_mongodb.odm.order_filter', - MongoDbOdmRangeFilter::class => 'api_platform.doctrine_mongodb.odm.range_filter', ]; + if (\in_array('odm', $doctrineIntegrationsToLoad, true)) { + $aliases += [ + MongoDbOdmSearchFilter::class => 'api_platform.doctrine_mongodb.odm.search_filter', + MongoDbOdmBooleanFilter::class => 'api_platform.doctrine_mongodb.odm.boolean_filter', + MongoDbOdmDateFilter::class => 'api_platform.doctrine_mongodb.odm.date_filter', + MongoDbOdmExistsFilter::class => 'api_platform.doctrine_mongodb.odm.exists_filter', + MongoDbOdmNumericFilter::class => 'api_platform.doctrine_mongodb.odm.numeric_filter', + MongoDbOdmOrderFilter::class => 'api_platform.doctrine_mongodb.odm.order_filter', + MongoDbOdmRangeFilter::class => 'api_platform.doctrine_mongodb.odm.range_filter', + MongoDbOdmFilterExtension::class => 'api_platform.doctrine_mongodb.odm.aggregation_extension.filter', + MongoDbOdmOrderExtension::class => 'api_platform.doctrine_mongodb.odm.aggregation_extension.order', + MongoDbOdmPaginationExtension::class => 'api_platform.doctrine_mongodb.odm.aggregation_extension.pagination', + ]; + } + foreach ($aliases as $alias => $service) { $containerBuilderProphecy->setAlias($alias, $service)->shouldBeCalled(); } diff --git a/tests/Bridge/Symfony/Bundle/DependencyInjection/ConfigurationTest.php b/tests/Bridge/Symfony/Bundle/DependencyInjection/ConfigurationTest.php index f5542f381e8..d96110b6343 100644 --- a/tests/Bridge/Symfony/Bundle/DependencyInjection/ConfigurationTest.php +++ b/tests/Bridge/Symfony/Bundle/DependencyInjection/ConfigurationTest.php @@ -49,9 +49,34 @@ protected function setUp() } public function testDefaultConfig() + { + $this->runDefaultConfigTests(); + } + + /** + * @group mongodb + */ + public function testDefaultConfigWithMongoDbOdm() + { + $this->runDefaultConfigTests(['orm', 'odm']); + } + + private function runDefaultConfigTests(array $doctrineIntegrationsToLoad = ['orm']) { $treeBuilder = $this->configuration->getConfigTreeBuilder(); - $config = $this->processor->processConfiguration($this->configuration, ['api_platform' => ['title' => 'title', 'description' => 'description', 'version' => '1.0.0']]); + $config = $this->processor->processConfiguration($this->configuration, [ + 'api_platform' => [ + 'title' => 'title', + 'description' => 'description', + 'version' => '1.0.0', + 'doctrine' => [ + 'enabled' => \in_array('orm', $doctrineIntegrationsToLoad, true), + ], + 'doctrine_mongodb_odm' => [ + 'enabled' => \in_array('odm', $doctrineIntegrationsToLoad, true), + ], + ], + ]); $this->assertInstanceOf(ConfigurationInterface::class, $this->configuration); $this->assertInstanceOf(TreeBuilder::class, $treeBuilder); @@ -152,10 +177,10 @@ public function testDefaultConfig() 'public' => null, ], 'doctrine' => [ - 'enabled' => true, + 'enabled' => \in_array('orm', $doctrineIntegrationsToLoad, true), ], 'doctrine_mongodb_odm' => [ - 'enabled' => true, + 'enabled' => \in_array('odm', $doctrineIntegrationsToLoad, true), ], 'messenger' => [ 'enabled' => true, diff --git a/tests/Bridge/Symfony/Bundle/Twig/ApiPlatformProfilerPanelTest.php b/tests/Bridge/Symfony/Bundle/Twig/ApiPlatformProfilerPanelTest.php index 5c17bb0b1b2..0d1d1b301fb 100644 --- a/tests/Bridge/Symfony/Bundle/Twig/ApiPlatformProfilerPanelTest.php +++ b/tests/Bridge/Symfony/Bundle/Twig/ApiPlatformProfilerPanelTest.php @@ -97,7 +97,7 @@ public function testDebugBarContent() // Check extra info content $this->assertContains('sf-toolbar-status-default', $block->attr('class'), 'The toolbar block should have the default color.'); - $this->assertSame('test_mongodb' === $this->env ? DocumentDummy::class : Dummy::class, $block->filter('.sf-toolbar-info-piece span')->html()); + $this->assertSame('mongodb' === $this->env ? DocumentDummy::class : Dummy::class, $block->filter('.sf-toolbar-info-piece span')->html()); } public function testProfilerGeneralLayoutNotResourceClass() @@ -136,7 +136,7 @@ public function testProfilerGeneralLayout() $metrics = $crawler->filter('.metrics'); $this->assertCount(1, $metrics->filter('.metric'), 'The should be one metric displayed (resource class).'); - $this->assertSame('test_mongodb' === $this->env ? DocumentDummy::class : Dummy::class, $metrics->filter('span.value')->html()); + $this->assertSame('mongodb' === $this->env ? DocumentDummy::class : Dummy::class, $metrics->filter('span.value')->html()); $this->assertCount(3, $crawler->filter('.sf-tabs .tab'), 'Tabs must be presents on the panel.'); @@ -177,7 +177,7 @@ public function testGetCollectionProfiler() // Data provider tab $tabContent = $crawler->filter('.tab:nth-of-type(2) .tab-content'); $this->assertSame('TRUE', $tabContent->filter('table tbody .status-success')->html()); - $this->assertContains('test_mongodb' === $this->env ? OdmCollectionDataProvider::class : CollectionDataProvider::class, $tabContent->filter('table tbody')->html()); + $this->assertContains('mongodb' === $this->env ? OdmCollectionDataProvider::class : CollectionDataProvider::class, $tabContent->filter('table tbody')->html()); $this->assertContains('No calls to item data provider have been recorded.', $tabContent->html()); $this->assertContains('No calls to subresource data provider have been recorded.', $tabContent->html()); @@ -241,7 +241,7 @@ public function testGetItemProfiler() $this->assertSame(ContainNonResourceItemDataProvider::class, $tabContent->filter('table tbody tr:first-of-type td:nth-of-type(3)')->html()); $this->assertSame('TRUE', $tabContent->filter('table tbody .status-success')->html()); - $this->assertContains('test_mongodb' === $this->env ? OdmItemDataProvider::class : ItemDataProvider::class, $tabContent->filter('table tbody')->html()); + $this->assertContains('mongodb' === $this->env ? OdmItemDataProvider::class : ItemDataProvider::class, $tabContent->filter('table tbody')->html()); $this->assertContains('No calls to collection data provider have been recorded.', $tabContent->html()); $this->assertContains('No calls to subresource data provider have been recorded.', $tabContent->html()); diff --git a/tests/Fixtures/app/config/config_common.yml b/tests/Fixtures/app/config/config_common.yml index c23d8d963da..9f341542937 100644 --- a/tests/Fixtures/app/config/config_common.yml +++ b/tests/Fixtures/app/config/config_common.yml @@ -30,13 +30,6 @@ doctrine: auto_generate_proxy_classes: '%kernel.debug%' auto_mapping: true -doctrine_mongodb: - connections: - default: ~ - document_managers: - default: - auto_mapping: true - twig: strict_variables: '%kernel.debug%' diff --git a/tests/Fixtures/app/config/config_mongodb.yml b/tests/Fixtures/app/config/config_mongodb.yml index b98821a1d5c..0a61f72a445 100644 --- a/tests/Fixtures/app/config/config_mongodb.yml +++ b/tests/Fixtures/app/config/config_mongodb.yml @@ -1,6 +1,6 @@ imports: - { resource: parameters_mongodb.yml } - - { resource: config_test_mongodb.yml } + - { resource: config_common.yml } doctrine_mongodb: connections: @@ -8,3 +8,81 @@ doctrine_mongodb: server: '%server%' options: {} default_database: '%dbname%' + document_managers: + default: + auto_mapping: true + +api_platform: + doctrine: false + mapping: + paths: ['%kernel.project_dir%/config/api_platform_mongodb_odm'] + +fos_user: + db_driver: 'mongodb' + firewall_name: 'api' + user_class: 'ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\User' + from_email: + address: 'no-reply@les-tilleuls.coop' + sender_name: 'Kévin Dunglas' + +services: + app.my_dummy_resource.mongodb.boolean_filter: + parent: 'api_platform.doctrine_mongodb.odm.boolean_filter' + arguments: [ { 'dummyBoolean': ~, 'embeddedDummy.dummyBoolean': ~, 'relatedDummy.embeddedDummy.dummyBoolean': ~ } ] + tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.boolean' } ] + app.my_dummy_resource.mongodb.date_filter: + parent: 'api_platform.doctrine_mongodb.odm.date_filter' + arguments: [ { 'dummyDate': ~, 'relatedDummy.dummyDate': ~, 'embeddedDummy.dummyDate': ~ } ] + tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.date' } ] + app.my_dummy_resource.mongodb.exists_filter: + parent: 'api_platform.doctrine_mongodb.odm.exists_filter' + arguments: [ { 'description': ~, 'relatedDummy.name': ~, 'dummyBoolean': ~, 'relatedDummy': ~ } ] + tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.exists' } ] + app.my_dummy_resource.mongodb.numeric_filter: + parent: 'api_platform.doctrine_mongodb.odm.numeric_filter' + arguments: [ { 'dummyFloat': ~, 'dummyPrice': ~ } ] + tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.numeric' } ] + app.my_dummy_resource.mongodb.order_filter: + parent: 'api_platform.doctrine_mongodb.odm.order_filter' + arguments: [ { 'id': ~, 'name': 'desc', 'description': ~, 'relatedDummy.name': ~, 'embeddedDummy.dummyName': 'desc', 'relatedDummy.symfony': ~, 'dummyDate': ~ } ] + tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.order' } ] + app.my_dummy_resource.mongodb.range_filter: + parent: 'api_platform.doctrine_mongodb.odm.range_filter' + arguments: [ { 'dummyFloat': ~, 'dummyPrice': ~ } ] + tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.range' } ] + app.my_dummy_resource.mongodb.search_filter: + parent: 'api_platform.doctrine_mongodb.odm.search_filter' + arguments: [ { 'id': 'exact', 'name': 'partial', 'alias': 'start', 'description': 'word_start', 'relatedDummy.name': 'exact', 'relatedDummies': 'exact', 'dummy': 'ipartial', 'relatedDummies.name': 'start', 'embeddedDummy.dummyName': 'partial', 'relatedDummy.thirdLevel.level': 'exact', 'relatedDummy.thirdLevel.fourthLevel.level': 'exact', 'relatedDummy.thirdLevel.badFourthLevel.level': 'exact', 'relatedDummy.thirdLevel.fourthLevel.badThirdLevel.level': 'exact' } ] + tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.search' } ] + app.related_dummy_resource.mongodb.search_filter: + parent: 'api_platform.doctrine_mongodb.odm.search_filter' + arguments: [ { 'relatedToDummyFriend.dummyFriend': 'exact', 'name': 'partial' } ] + tags: [ { name: 'api_platform.filter', id: 'related_dummy.mongodb.friends' } ] + app.my_dummy_date_resource.mongodb.date_filter: + parent: 'api_platform.doctrine_mongodb.odm.date_filter' + arguments: [ { 'dummyDate': ~ } ] + tags: [ { name: 'api_platform.filter', id: 'my_dummy_date.mongodb.date' } ] + app.related_dummy_to_friend_resource.mongodb.search_filter: + parent: 'api_platform.doctrine_mongodb.odm.search_filter' + arguments: [ { 'name': 'ipartial', 'description': 'ipartial' } ] + tags: [ { name: 'api_platform.filter', id: 'related_to_dummy_friend.mongodb.name' } ] + + dummy_dto_no_input.data_provider: + class: 'ApiPlatform\Core\Tests\Fixtures\TestBundle\DataProvider\DummyDtoNoInputCollectionDataProvider' + public: false + arguments: ['@doctrine_mongodb'] + tags: + - { name: 'api_platform.collection_data_provider' } + + app.dummy_dto_no_output_data_persister: + class: ApiPlatform\Core\Tests\Fixtures\TestBundle\DataPersister\DummyDtoNoOutputDataPersister + arguments: ['@doctrine_mongodb'] + public: false + tags: + - { name: 'api_platform.data_persister' } + + app.messenger_handler.messenger_with_inputs: + class: 'ApiPlatform\Core\Tests\Fixtures\TestBundle\MessengerHandler\Document\MessengerWithInputHandler' + public: false + tags: + - { name: 'messenger.message_handler' } diff --git a/tests/Fixtures/app/config/config_services_mongodb.yml b/tests/Fixtures/app/config/config_services_mongodb.yml deleted file mode 100644 index 6fd5b848ac3..00000000000 --- a/tests/Fixtures/app/config/config_services_mongodb.yml +++ /dev/null @@ -1,64 +0,0 @@ -imports: - - { resource: config_common.yml } - -services: - app.my_dummy_resource.mongodb.boolean_filter: - parent: 'api_platform.doctrine_mongodb.odm.boolean_filter' - arguments: [ { 'dummyBoolean': ~, 'embeddedDummy.dummyBoolean': ~, 'relatedDummy.embeddedDummy.dummyBoolean': ~ } ] - tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.boolean' } ] - app.my_dummy_resource.mongodb.date_filter: - parent: 'api_platform.doctrine_mongodb.odm.date_filter' - arguments: [ { 'dummyDate': ~, 'relatedDummy.dummyDate': ~, 'embeddedDummy.dummyDate': ~ } ] - tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.date' } ] - app.my_dummy_resource.mongodb.exists_filter: - parent: 'api_platform.doctrine_mongodb.odm.exists_filter' - arguments: [ { 'description': ~, 'relatedDummy.name': ~, 'dummyBoolean': ~, 'relatedDummy': ~ } ] - tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.exists' } ] - app.my_dummy_resource.mongodb.numeric_filter: - parent: 'api_platform.doctrine_mongodb.odm.numeric_filter' - arguments: [ { 'dummyFloat': ~, 'dummyPrice': ~ } ] - tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.numeric' } ] - app.my_dummy_resource.mongodb.order_filter: - parent: 'api_platform.doctrine_mongodb.odm.order_filter' - arguments: [ { 'id': ~, 'name': 'desc', 'description': ~, 'relatedDummy.name': ~, 'embeddedDummy.dummyName': 'desc', 'relatedDummy.symfony': ~, 'dummyDate': ~ } ] - tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.order' } ] - app.my_dummy_resource.mongodb.range_filter: - parent: 'api_platform.doctrine_mongodb.odm.range_filter' - arguments: [ { 'dummyFloat': ~, 'dummyPrice': ~ } ] - tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.range' } ] - app.my_dummy_resource.mongodb.search_filter: - parent: 'api_platform.doctrine_mongodb.odm.search_filter' - arguments: [ { 'id': 'exact', 'name': 'partial', 'alias': 'start', 'description': 'word_start', 'relatedDummy.name': 'exact', 'relatedDummies': 'exact', 'dummy': 'ipartial', 'relatedDummies.name': 'start', 'embeddedDummy.dummyName': 'partial', 'relatedDummy.thirdLevel.level': 'exact', 'relatedDummy.thirdLevel.fourthLevel.level': 'exact', 'relatedDummy.thirdLevel.badFourthLevel.level': 'exact', 'relatedDummy.thirdLevel.fourthLevel.badThirdLevel.level': 'exact' } ] - tags: [ { name: 'api_platform.filter', id: 'my_dummy.mongodb.search' } ] - app.related_dummy_resource.mongodb.search_filter: - parent: 'api_platform.doctrine_mongodb.odm.search_filter' - arguments: [ { 'relatedToDummyFriend.dummyFriend': 'exact', 'name': 'partial' } ] - tags: [ { name: 'api_platform.filter', id: 'related_dummy.mongodb.friends' } ] - app.my_dummy_date_resource.mongodb.date_filter: - parent: 'api_platform.doctrine_mongodb.odm.date_filter' - arguments: [ { 'dummyDate': ~ } ] - tags: [ { name: 'api_platform.filter', id: 'my_dummy_date.mongodb.date' } ] - app.related_dummy_to_friend_resource.mongodb.search_filter: - parent: 'api_platform.doctrine_mongodb.odm.search_filter' - arguments: [ { 'name': 'ipartial', 'description': 'ipartial' } ] - tags: [ { name: 'api_platform.filter', id: 'related_to_dummy_friend.mongodb.name' } ] - - dummy_dto_no_input.data_provider: - class: 'ApiPlatform\Core\Tests\Fixtures\TestBundle\DataProvider\DummyDtoNoInputCollectionDataProvider' - public: false - arguments: ['@doctrine_mongodb'] - tags: - - { name: 'api_platform.collection_data_provider' } - - app.dummy_dto_no_output_data_persister: - class: ApiPlatform\Core\Tests\Fixtures\TestBundle\DataPersister\DummyDtoNoOutputDataPersister - arguments: ['@doctrine_mongodb'] - public: false - tags: - - { name: 'api_platform.data_persister' } - - app.messenger_handler.messenger_with_inputs: - class: 'ApiPlatform\Core\Tests\Fixtures\TestBundle\MessengerHandler\Document\MessengerWithInputHandler' - public: false - tags: - - { name: 'messenger.message_handler' } diff --git a/tests/Fixtures/app/config/config_test_mongodb.yml b/tests/Fixtures/app/config/config_test_mongodb.yml deleted file mode 100644 index cb39ce23c31..00000000000 --- a/tests/Fixtures/app/config/config_test_mongodb.yml +++ /dev/null @@ -1,15 +0,0 @@ -imports: - - { resource: config_services_mongodb.yml } - -api_platform: - doctrine: false - mapping: - paths: ['%kernel.project_dir%/config/api_platform_mongodb_odm'] - -fos_user: - db_driver: 'mongodb' - firewall_name: 'api' - user_class: 'ApiPlatform\Core\Tests\Fixtures\TestBundle\Document\User' - from_email: - address: 'no-reply@les-tilleuls.coop' - sender_name: 'Kévin Dunglas' diff --git a/tests/Fixtures/app/config/routing_mongodb.yml b/tests/Fixtures/app/config/routing_mongodb.yml index 9cf105260f9..85c7cccf021 100644 --- a/tests/Fixtures/app/config/routing_mongodb.yml +++ b/tests/Fixtures/app/config/routing_mongodb.yml @@ -1,2 +1,14 @@ _main: - resource: routing_test_mongodb.yml + resource: routing_common.yml + +controller: + resource: '@TestBundle/Controller/MongoDbOdm' + type: annotation + +web_profiler_wdt: + resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' + prefix: /_wdt + +web_profiler_profiler: + resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' + prefix: /_profiler diff --git a/tests/Fixtures/app/config/routing_test_mongodb.yml b/tests/Fixtures/app/config/routing_test_mongodb.yml deleted file mode 100644 index 85c7cccf021..00000000000 --- a/tests/Fixtures/app/config/routing_test_mongodb.yml +++ /dev/null @@ -1,14 +0,0 @@ -_main: - resource: routing_common.yml - -controller: - resource: '@TestBundle/Controller/MongoDbOdm' - type: annotation - -web_profiler_wdt: - resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml' - prefix: /_wdt - -web_profiler_profiler: - resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml' - prefix: /_profiler