PHP code example of litvinab / rest-api-test
1. Go to this page and download the library: Download litvinab/rest-api-test library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
litvinab / rest-api-test example snippets
class AppKernel extends Kernel
{
public function registerBundles()
{
// ...
$bundles = [
...
new Litvinab\Bundle\RestApiTestBundle\RestApiTestBundle()
];
// ...
}
}
getContainer()
getEntityManager()
getRepository($name)
getJson($endpoint, $headers = array())
postJson($endpoint, $json, array $headers = array())
putJson($endpoint, $json, array $headers = array())
deleteJson($endpoint, array $headers = array())
reloadDb() - reload data fixtures by prompt without db recreation and schema update
assertResponse(Response $response, $expectedStatusCode, $expectedContent)
assertJsonResponse(Response $response, $expectedStatusCode, $expectedJson)
assertResponseCode(Response $response, $expectedStatusCode)
namespace Project\Infrastructure\Repository;
use Litvinab\Bundle\RestApiTestBundle\TestCase\FixturesWebTestCase;
use Project\Domain\Entity\Attribute;
class AttributeRepositoryTest extends FixturesWebTestCase
{
public function setUp()
{
parent::setUp();
$this->reloadDb();
}
public function test_get_by_slug__success()
{
$repo = $this->getRepository('ProjectDomain:Attribute');
$attr = $repo->getBySlug('currency');
$this->assertInstanceOf(Attribute::class, $attr);
$this->assertEquals(2, $attr->getId());
$this->assertEquals('Product Currency', $attr->getCaption());
}
}
namespace Project\Application\Controller;
use Litvinab\Bundle\RestApiTestBundle\TestCase\RestFixturesWebTestCase;
use Symfony\Component\HttpFoundation\Response;
class AttributeControllerTest extends RestFixturesWebTestCase
{
public function test_get_task__success()
{
$this->reloadDb();
$response = $this->getJson('/api/attributes/currency');
$expectedJson = '{"caption":"Product Currency","slug":"currency"}';
$this->assertJsonResponse($response, Response::HTTP_OK, $expectedJson);
}
public function test_get_task__failure_with_integer_id()
{
$response = $this->getJson('/api/attributes/3');
$this->assertResponseCode($response, Response::HTTP_NOT_FOUND);
}
}