From abb100b29b54ae0167fc0cfbea5a3db762d56c8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=A9vin=20Dunglas?= <dunglas@gmail.com>
Date: Thu, 4 Feb 2016 08:32:13 +0100
Subject: [PATCH] Handle circular references in DunglasApiParser. Close #678.

---
 Parser/DunglasApiParser.php               |  2 +-
 Tests/Fixtures/app/config/dunglas_api.yml | 18 +++++++++---------
 2 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/Parser/DunglasApiParser.php b/Parser/DunglasApiParser.php
index b83b53d..b3d8142 100644
--- a/Parser/DunglasApiParser.php
+++ b/Parser/DunglasApiParser.php
@@ -181,7 +181,7 @@ class DunglasApiParser implements ParserInterface
 
             $data['actualType'] = DataTypes::MODEL;
             $data['subType'] = $class;
-            $data['children'] = $this->parseClass($resource, $class, $io);
+            $data['children'] = $resource->getEntityClass() === $class ? [] : $this->parseClass($resource, $class, $io);
 
             return $data;
         }
diff --git a/Tests/Fixtures/app/config/dunglas_api.yml b/Tests/Fixtures/app/config/dunglas_api.yml
index f490b75..f663b52 100644
--- a/Tests/Fixtures/app/config/dunglas_api.yml
+++ b/Tests/Fixtures/app/config/dunglas_api.yml
@@ -1,22 +1,22 @@
 doctrine:
     dbal:
-        driver:                      "pdo_sqlite"
-        path:                        "%kernel.cache_dir%/db.sqlite"
-        charset:                     "UTF8"
+        driver:                      'pdo_sqlite'
+        path:                        '%kernel.cache_dir%/db.sqlite'
+        charset:                     'UTF8'
 
     orm:
-        auto_generate_proxy_classes: "%kernel.debug%"
+        auto_generate_proxy_classes: '%kernel.debug%'
         auto_mapping:                true
 
 framework:
-    router:        { resource: "%kernel.root_dir%/config/dunglas_api_routing.yml" }
+    router:        { resource: '%kernel.root_dir%/config/dunglas_api_routing.yml' }
 
 dunglas_api:
     title:       API
     description: Test API
 
 services:
-    dunglas_json_ld_api.popo:
-        parent:    "api.resource"
-        arguments: [ "Nelmio\\ApiDocBundle\\Tests\\Fixtures\\Model\\Popo" ]
-        tags:      [ { name: "api.resource" } ]
+    dunglas_api.popo:
+        parent:    'api.resource'
+        arguments: [ 'Nelmio\ApiDocBundle\Tests\Fixtures\Model\Popo' ]
+        tags:      [ { name: 'api.resource' } ]