From 4ecf03ce8acabad5a080266868985220ff19893d Mon Sep 17 00:00:00 2001 From: William DURAND Date: Fri, 13 Apr 2012 15:00:46 +0200 Subject: [PATCH] Added more tests --- Tests/Extractor/ApiDocExtratorTest.php | 2 +- Tests/Fixtures/Controller/TestController.php | 7 ++++ Tests/Fixtures/app/config/routing.yml | 4 ++ Tests/Formatter/MarkdownFormatterTest.php | 38 ++++++++++++++++++ Tests/Formatter/SimpleFormatterTest.php | 42 +++++++++++++++++++- 5 files changed, 90 insertions(+), 3 deletions(-) diff --git a/Tests/Extractor/ApiDocExtratorTest.php b/Tests/Extractor/ApiDocExtratorTest.php index 359332e..e1a4050 100644 --- a/Tests/Extractor/ApiDocExtratorTest.php +++ b/Tests/Extractor/ApiDocExtratorTest.php @@ -22,7 +22,7 @@ class ApiDocExtractorTest extends WebTestCase $data = $extractor->all(); $this->assertTrue(is_array($data)); - $this->assertCount(2, $data); + $this->assertCount(3, $data); foreach ($data as $d) { $this->assertTrue(is_array($d)); diff --git a/Tests/Fixtures/Controller/TestController.php b/Tests/Fixtures/Controller/TestController.php index 1210867..3227bba 100644 --- a/Tests/Fixtures/Controller/TestController.php +++ b/Tests/Fixtures/Controller/TestController.php @@ -42,4 +42,11 @@ class TestController public function anotherAction() { } + + /** + * @ApiDoc(description="Action without HTTP verb") + */ + public function anyAction() + { + } } diff --git a/Tests/Fixtures/app/config/routing.yml b/Tests/Fixtures/app/config/routing.yml index bb73099..d0d9b9b 100644 --- a/Tests/Fixtures/app/config/routing.yml +++ b/Tests/Fixtures/app/config/routing.yml @@ -14,6 +14,10 @@ test_route_3: pattern: /another defaults: { _controller: NelmioApiDocTestBundle:Test:another } +test_route_4: + pattern: /any + defaults: { _controller: NelmioApiDocTestBundle:Test:any, _format: json } + NelmioApiDocBundle: resource: "@NelmioApiDocBundle/Resources/config/routing.yml" prefix: / diff --git a/Tests/Formatter/MarkdownFormatterTest.php b/Tests/Formatter/MarkdownFormatterTest.php index 5eb2418..8479b66 100644 --- a/Tests/Formatter/MarkdownFormatterTest.php +++ b/Tests/Formatter/MarkdownFormatterTest.php @@ -58,6 +58,44 @@ b: * type: string * required: true + + + +# others # + +### `ANY` /any ### + +_Action without HTTP verb_ +MARKDOWN; + + $this->assertEquals($expected, $result); + } + + public function testFormatOne() + { + $container = $this->getContainer(); + + $extractor = $container->get('nelmio_api_doc.extractor.api_doc_extractor'); + $data = $extractor->get('Nelmio\ApiDocBundle\Tests\Fixtures\Controller\TestController::indexAction', 'test_route_1'); + $result = $container->get('nelmio_api_doc.formatter.markdown_formatter')->formatOne($data['annotation'], $data['route']); + + $expected = <<assertEquals($expected, $result); diff --git a/Tests/Formatter/SimpleFormatterTest.php b/Tests/Formatter/SimpleFormatterTest.php index 8ca8731..8e01b06 100644 --- a/Tests/Formatter/SimpleFormatterTest.php +++ b/Tests/Formatter/SimpleFormatterTest.php @@ -20,10 +20,18 @@ class SimpleFormatterTest extends WebTestCase $container = $this->getContainer(); $extractor = $container->get('nelmio_api_doc.extractor.api_doc_extractor'); - $data = $extractor->all(); - $result = $container->get('nelmio_api_doc.formatter.simple_formatter')->format($data); + $data = $extractor->all(); + $result = $container->get('nelmio_api_doc.formatter.simple_formatter')->format($data); $expected = array( + 'others' => array( + array( + 'method' => 'ANY', + 'uri' => '/any', + 'requirements' => array(), + 'description' => 'Action without HTTP verb' + ) + ), '/tests' => array( array( 'method' => 'GET', @@ -66,4 +74,34 @@ class SimpleFormatterTest extends WebTestCase $this->assertEquals($expected, $result); } + + public function testFormatOne() + { + $container = $this->getContainer(); + + $extractor = $container->get('nelmio_api_doc.extractor.api_doc_extractor'); + $data = $extractor->get('Nelmio\ApiDocBundle\Tests\Fixtures\Controller\TestController::indexAction', 'test_route_1'); + $result = $container->get('nelmio_api_doc.formatter.simple_formatter')->formatOne($data['annotation'], $data['route']); + + $expected = array( + 'method' => 'GET', + 'uri' => '/tests', + 'requirements' => array(), + 'filters' => array( + 'a' => array( + 'dataType' => 'integer', + ), + 'b' => array( + 'dataType' => 'string', + 'arbitrary' => array( + 'arg1', + 'arg2', + ), + ), + ), + 'description' => 'index action' + ); + + $this->assertEquals($expected, $result); + } }