mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-09 02:59:27 +03:00
Updated deprecated MinLength assertion to Length Updated array of object parsing Handled deprecated calls because of using AbstractType (not sure if it is the best way, though)
323 lines
4.4 KiB
PHP
323 lines
4.4 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the NelmioApiDocBundle.
|
|
*
|
|
* (c) Nelmio <hello@nelm.io>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Nelmio\ApiDocBundle\Tests\Formatter;
|
|
|
|
use Nelmio\ApiDocBundle\Tests\WebTestCase;
|
|
|
|
class MarkdownFormatterTest extends WebTestCase
|
|
{
|
|
public function testFormat()
|
|
{
|
|
$container = $this->getContainer();
|
|
|
|
$extractor = $container->get('nelmio_api_doc.extractor.api_doc_extractor');
|
|
set_error_handler(array('Symfony\Component\Form\Test\DeprecationErrorHandler', 'handle'));
|
|
$data = $extractor->all();
|
|
restore_error_handler();
|
|
$result = $container->get('nelmio_api_doc.formatter.markdown_formatter')->format($data);
|
|
|
|
$expected = <<<MARKDOWN
|
|
# /tests #
|
|
|
|
### `GET` /tests.{_format} ###
|
|
|
|
_index action_
|
|
|
|
#### Requirements ####
|
|
|
|
**_format**
|
|
|
|
|
|
#### Filters ####
|
|
|
|
a:
|
|
|
|
* DataType: integer
|
|
|
|
b:
|
|
|
|
* DataType: string
|
|
* Arbitrary: ["arg1","arg2"]
|
|
|
|
|
|
### `GET` /tests.{_format} ###
|
|
|
|
_index action_
|
|
|
|
#### Requirements ####
|
|
|
|
**_format**
|
|
|
|
|
|
#### Filters ####
|
|
|
|
a:
|
|
|
|
* DataType: integer
|
|
|
|
b:
|
|
|
|
* DataType: string
|
|
* Arbitrary: ["arg1","arg2"]
|
|
|
|
|
|
### `POST` /tests.{_format} ###
|
|
|
|
_create test_
|
|
|
|
#### Requirements ####
|
|
|
|
**_format**
|
|
|
|
|
|
#### Parameters ####
|
|
|
|
a:
|
|
|
|
* type: string
|
|
* required: true
|
|
* description: A nice description
|
|
|
|
b:
|
|
|
|
* type: string
|
|
* required: false
|
|
|
|
c:
|
|
|
|
* type: boolean
|
|
* required: true
|
|
|
|
|
|
### `POST` /tests.{_format} ###
|
|
|
|
_create test_
|
|
|
|
#### Requirements ####
|
|
|
|
**_format**
|
|
|
|
|
|
#### Parameters ####
|
|
|
|
a:
|
|
|
|
* type: string
|
|
* required: true
|
|
* description: A nice description
|
|
|
|
b:
|
|
|
|
* type: string
|
|
* required: false
|
|
|
|
c:
|
|
|
|
* type: boolean
|
|
* required: true
|
|
|
|
|
|
|
|
# others #
|
|
|
|
### `POST` /another-post ###
|
|
|
|
_create another test_
|
|
|
|
#### Parameters ####
|
|
|
|
a:
|
|
|
|
* type: string
|
|
* required: true
|
|
* description: A nice description
|
|
|
|
|
|
### `ANY` /any ###
|
|
|
|
_Action without HTTP verb_
|
|
|
|
|
|
### `ANY` /any/{foo} ###
|
|
|
|
_Action without HTTP verb_
|
|
|
|
#### Requirements ####
|
|
|
|
**foo**
|
|
|
|
|
|
|
|
### `POST` /jms-input-test ###
|
|
|
|
_Testing JMS_
|
|
|
|
#### Parameters ####
|
|
|
|
foo:
|
|
|
|
* type: string
|
|
* required: false
|
|
* description: No description.
|
|
|
|
number:
|
|
|
|
* type: double
|
|
* required: false
|
|
* description: No description.
|
|
|
|
arr:
|
|
|
|
* type: array
|
|
* required: false
|
|
* description: No description.
|
|
|
|
nested:
|
|
|
|
* type: object (JmsNested)
|
|
* required: false
|
|
* description: No description.
|
|
|
|
nested[bar]:
|
|
|
|
* type: string
|
|
* required: false
|
|
* description: No description.
|
|
|
|
nested[baz][]:
|
|
|
|
* type: array of integers
|
|
* required: false
|
|
* description: Epic description.
|
|
|
|
With multiple lines.
|
|
|
|
nestedArray[]:
|
|
|
|
* type: array of objects (JmsNested)
|
|
* required: false
|
|
* description: No description.
|
|
|
|
nestedArray[][bar]:
|
|
|
|
* type: string
|
|
* required: false
|
|
* description: No description.
|
|
|
|
nestedArray[][baz][]:
|
|
|
|
* type: array of integers
|
|
* required: false
|
|
* description: Epic description.
|
|
|
|
With multiple lines.
|
|
|
|
|
|
### `GET` /jms-return-test ###
|
|
|
|
_Testing return_
|
|
|
|
#### Response ####
|
|
|
|
a:
|
|
|
|
* type: string
|
|
* description: A nice description
|
|
|
|
|
|
### `ANY` /my-commented/{id}/{page} ###
|
|
|
|
_This method is useful to test if the getDocComment works._
|
|
|
|
#### Requirements ####
|
|
|
|
**id**
|
|
|
|
- Type: int
|
|
- Description: A nice comment
|
|
**page**
|
|
|
|
- Type: int
|
|
|
|
|
|
### `ANY` /yet-another/{id} ###
|
|
|
|
|
|
#### Requirements ####
|
|
|
|
**id**
|
|
|
|
- Requirement: \d+
|
|
|
|
|
|
### `GET` /z-action-with-query-param ###
|
|
|
|
|
|
#### Filters ####
|
|
|
|
page:
|
|
|
|
* Requirement: \d+
|
|
* Description: Page of the overview.
|
|
|
|
|
|
### `POST` /z-action-with-request-param ###
|
|
|
|
|
|
#### Parameters ####
|
|
|
|
param1:
|
|
|
|
* type: string
|
|
* required: true
|
|
* description: Param1 description.
|
|
MARKDOWN;
|
|
|
|
$this->assertEquals($expected, $result);
|
|
}
|
|
|
|
public function testFormatOne()
|
|
{
|
|
$container = $this->getContainer();
|
|
|
|
$extractor = $container->get('nelmio_api_doc.extractor.api_doc_extractor');
|
|
$annotation = $extractor->get('Nelmio\ApiDocBundle\Tests\Fixtures\Controller\TestController::indexAction', 'test_route_1');
|
|
$result = $container->get('nelmio_api_doc.formatter.markdown_formatter')->formatOne($annotation);
|
|
|
|
$expected = <<<MARKDOWN
|
|
### `GET` /tests.{_format} ###
|
|
|
|
_index action_
|
|
|
|
#### Requirements ####
|
|
|
|
**_format**
|
|
|
|
|
|
#### Filters ####
|
|
|
|
a:
|
|
|
|
* DataType: integer
|
|
|
|
b:
|
|
|
|
* DataType: string
|
|
* Arbitrary: ["arg1","arg2"]
|
|
|
|
|
|
MARKDOWN;
|
|
|
|
$this->assertEquals($expected, $result);
|
|
}
|
|
}
|