NelmioApiDocBundle/Tests/Formatter/MarkdownFormatterTest.php

337 lines
4.5 KiB
PHP
Raw Normal View History

2012-04-13 14:27:51 +02:00
<?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');
2013-02-15 13:33:05 +01:00
set_error_handler(array($this, 'handleDeprecation'));
2012-04-13 14:27:51 +02:00
$data = $extractor->all();
restore_error_handler();
2012-04-13 14:27:51 +02:00
$result = $container->get('nelmio_api_doc.formatter.markdown_formatter')->format($data);
$expected = <<<MARKDOWN
# /tests #
### `GET` /tests.{_format} ###
2012-04-13 14:27:51 +02:00
_index action_
#### Requirements ####
**_format**
2012-04-13 14:27:51 +02:00
#### Filters ####
a:
* DataType: integer
2012-04-13 14:27:51 +02:00
b:
* DataType: string
* Arbitrary: ["arg1","arg2"]
2012-04-13 14:27:51 +02:00
### `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
2012-06-20 23:19:34 +02:00
* required: false
2012-07-12 12:13:24 +02:00
c:
* type: boolean
* required: true
### `POST` /tests.{_format} ###
2012-04-13 14:27:51 +02:00
_create test_
#### Requirements ####
**_format**
2012-04-13 14:27:51 +02:00
#### Parameters ####
a:
* type: string
* required: true
* description: A nice description
b:
* type: string
2012-06-20 23:19:34 +02:00
* required: false
2012-07-12 12:13:24 +02:00
c:
* type: boolean
* required: true
2012-04-13 15:00:46 +02:00
# 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} ###
2012-04-13 15:00:46 +02:00
_Action without HTTP verb_
2012-04-19 17:05:59 +02:00
#### Requirements ####
**foo**
2012-04-19 17:05:59 +02:00
### `ANY` /authenticated ###
### `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.
2012-08-27 13:25:03 -04:00
### `GET` /jms-return-test ###
_Testing return_
#### Response ####
a:
* type: string
* description: A nice description
### `ANY` /my-commented/{id}/{page} ###
2012-04-19 17:05:59 +02:00
2012-07-13 16:04:29 +02:00
_This method is useful to test if the getDocComment works._
#### Requirements ####
**id**
- Type: int
- Description: A nice comment
**page**
- Type: int
### `ANY` /secure-route ###
#### Requirements ####
**_scheme**
- Requirement: https
### `ANY` /yet-another/{id} ###
#### Requirements ####
**id**
2012-07-18 12:46:22 +02:00
- 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.
2012-04-13 15:00:46 +02:00
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);
2012-04-13 15:00:46 +02:00
$expected = <<<MARKDOWN
### `GET` /tests.{_format} ###
2012-04-13 15:00:46 +02:00
_index action_
#### Requirements ####
**_format**
2012-04-13 15:00:46 +02:00
#### Filters ####
a:
* DataType: integer
2012-04-13 15:00:46 +02:00
b:
* DataType: string
* Arbitrary: ["arg1","arg2"]
2012-04-13 15:00:46 +02:00
2012-04-13 14:27:51 +02:00
MARKDOWN;
$this->assertEquals($expected, $result);
}
}