mirror of
https://github.com/retailcrm/NelmioApiDocBundle.git
synced 2025-02-02 23:59:26 +03:00
Added tests for the ApiDoc annotation
This commit is contained in:
parent
4ecf03ce8a
commit
45bbb09d02
@ -61,7 +61,7 @@ class ApiDoc
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return array|null
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function getFilters()
|
public function getFilters()
|
||||||
{
|
{
|
||||||
|
168
Tests/Annotation/ApiDocTest.php
Normal file
168
Tests/Annotation/ApiDocTest.php
Normal file
@ -0,0 +1,168 @@
|
|||||||
|
<?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\Annotation;
|
||||||
|
|
||||||
|
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
|
||||||
|
use Nelmio\ApiDocBundle\Tests\TestCase;
|
||||||
|
|
||||||
|
class ApiDocTest extends TestCase
|
||||||
|
{
|
||||||
|
public function testConstructWithoutData()
|
||||||
|
{
|
||||||
|
$data = array();
|
||||||
|
|
||||||
|
$annot = new ApiDoc($data);
|
||||||
|
|
||||||
|
$this->assertTrue(is_array($annot->getFilters()));
|
||||||
|
$this->assertCount(0, $annot->getFilters());
|
||||||
|
$this->assertFalse($annot->isResource());
|
||||||
|
$this->assertNull($annot->getDescription());
|
||||||
|
$this->assertNull($annot->getFormType());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testConstructWithInvalidData()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'unknown' => 'foo',
|
||||||
|
'array' => array('bar' => 'bar'),
|
||||||
|
);
|
||||||
|
|
||||||
|
$annot = new ApiDoc($data);
|
||||||
|
|
||||||
|
$this->assertTrue(is_array($annot->getFilters()));
|
||||||
|
$this->assertCount(0, $annot->getFilters());
|
||||||
|
$this->assertFalse($annot->isResource());
|
||||||
|
$this->assertNull($annot->getDescription());
|
||||||
|
$this->assertNull($annot->getFormType());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testConstruct()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'description' => 'Heya',
|
||||||
|
);
|
||||||
|
|
||||||
|
$annot = new ApiDoc($data);
|
||||||
|
|
||||||
|
$this->assertTrue(is_array($annot->getFilters()));
|
||||||
|
$this->assertCount(0, $annot->getFilters());
|
||||||
|
$this->assertFalse($annot->isResource());
|
||||||
|
$this->assertEquals($data['description'], $annot->getDescription());
|
||||||
|
$this->assertNull($annot->getFormType());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testConstructDefinesAFormType()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'description' => 'Heya',
|
||||||
|
'formType' => 'My\Form\Type',
|
||||||
|
);
|
||||||
|
|
||||||
|
$annot = new ApiDoc($data);
|
||||||
|
|
||||||
|
$this->assertTrue(is_array($annot->getFilters()));
|
||||||
|
$this->assertCount(0, $annot->getFilters());
|
||||||
|
$this->assertFalse($annot->isResource());
|
||||||
|
$this->assertEquals($data['description'], $annot->getDescription());
|
||||||
|
$this->assertEquals($data['formType'], $annot->getFormType());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testConstructMethodIsResource()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'resource' => true,
|
||||||
|
'description' => 'Heya',
|
||||||
|
'formType' => 'My\Form\Type',
|
||||||
|
);
|
||||||
|
|
||||||
|
$annot = new ApiDoc($data);
|
||||||
|
|
||||||
|
$this->assertTrue(is_array($annot->getFilters()));
|
||||||
|
$this->assertCount(0, $annot->getFilters());
|
||||||
|
$this->assertTrue($annot->isResource());
|
||||||
|
$this->assertEquals($data['description'], $annot->getDescription());
|
||||||
|
$this->assertEquals($data['formType'], $annot->getFormType());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testConstructMethodResourceIsFalse()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'resource' => false,
|
||||||
|
'description' => 'Heya',
|
||||||
|
'formType' => 'My\Form\Type',
|
||||||
|
);
|
||||||
|
|
||||||
|
$annot = new ApiDoc($data);
|
||||||
|
|
||||||
|
$this->assertTrue(is_array($annot->getFilters()));
|
||||||
|
$this->assertCount(0, $annot->getFilters());
|
||||||
|
$this->assertFalse($annot->isResource());
|
||||||
|
$this->assertEquals($data['description'], $annot->getDescription());
|
||||||
|
$this->assertEquals($data['formType'], $annot->getFormType());
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testConstructMethodHasFilters()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'resource' => true,
|
||||||
|
'description' => 'Heya',
|
||||||
|
'filters' => array(
|
||||||
|
array('name' => 'a-filter'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$annot = new ApiDoc($data);
|
||||||
|
|
||||||
|
$this->assertTrue(is_array($annot->getFilters()));
|
||||||
|
$this->assertCount(1, $annot->getFilters());
|
||||||
|
$this->assertEquals(array('a-filter' => array()), $annot->getFilters());
|
||||||
|
$this->assertTrue($annot->isResource());
|
||||||
|
$this->assertEquals($data['description'], $annot->getDescription());
|
||||||
|
$this->assertNull($annot->getFormType());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @expectedException \InvalidArgumentException
|
||||||
|
*/
|
||||||
|
public function testConstructMethodHasFiltersWithoutName()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'description' => 'Heya',
|
||||||
|
'filters' => array(
|
||||||
|
array('parameter' => 'foo'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$annot = new ApiDoc($data);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function testConstructNoFiltersIfFormTypeDefined()
|
||||||
|
{
|
||||||
|
$data = array(
|
||||||
|
'resource' => true,
|
||||||
|
'description' => 'Heya',
|
||||||
|
'formType' => 'My\Form\Type',
|
||||||
|
'filters' => array(
|
||||||
|
array('name' => 'a-filter'),
|
||||||
|
),
|
||||||
|
);
|
||||||
|
|
||||||
|
$annot = new ApiDoc($data);
|
||||||
|
|
||||||
|
$this->assertTrue(is_array($annot->getFilters()));
|
||||||
|
$this->assertCount(0, $annot->getFilters());
|
||||||
|
$this->assertEquals(array(), $annot->getFilters());
|
||||||
|
$this->assertTrue($annot->isResource());
|
||||||
|
$this->assertEquals($data['description'], $annot->getDescription());
|
||||||
|
$this->assertEquals($data['formType'], $annot->getFormType());
|
||||||
|
}
|
||||||
|
}
|
16
Tests/TestCase.php
Normal file
16
Tests/TestCase.php
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Nelmio\ApiDocBundle\Tests;
|
||||||
|
|
||||||
|
class TestCase extends \PHPUnit_Framework_TestCase
|
||||||
|
{
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user