mirror of
https://framagit.org/tykayn/date-poll-api
synced 2023-08-25 08:23:11 +02:00
131 lines
4.0 KiB
PHP
131 lines
4.0 KiB
PHP
<?php
|
|
|
|
namespace App\Tests\Functional;
|
|
|
|
use Liip\TestFixturesBundle\Test\FixturesTrait;
|
|
use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
|
|
|
|
class PollControllerTest extends WebTestCase {
|
|
use FixturesTrait;
|
|
|
|
// Test getting all polls
|
|
public function testGetAllPolls() {
|
|
$client = static::createClient();
|
|
|
|
$this->loadFixtures(array(
|
|
'App\DataFixtures\AppPollFixtures'
|
|
));
|
|
|
|
$client->request('GET', '/api/v1/poll/');
|
|
|
|
$response = $client->getResponse();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$body = $response->getContent();
|
|
$json = json_decode($body, true);
|
|
$this->assertEquals(4, count($json['poll']));
|
|
}
|
|
|
|
// Test getting one poll (we should try to check all poll property)
|
|
public function testGetOnePoll() {
|
|
$client = static::createClient();
|
|
|
|
$this->loadFixtures(array(
|
|
'App\DataFixtures\AppPollFixtures'
|
|
));
|
|
|
|
$client->request('GET', '/api/v1/poll/1');
|
|
|
|
$response = $client->getResponse();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$body = $response->getContent();
|
|
$json = json_decode($body, true);
|
|
$this->assertEquals("citron ou orange", $json['poll']['title']);
|
|
}
|
|
|
|
// Test Put some data on a poll
|
|
public function testPutOnePoll() {
|
|
$client = static::createClient();
|
|
|
|
$this->loadFixtures(array(
|
|
'App\DataFixtures\AppPollFixtures'
|
|
));
|
|
|
|
$client->request('PUT', '/api/v1/poll/1/notTheToken', [
|
|
'body' => "{
|
|
\"id\": 1,
|
|
\"title\": \"Fromage ou dessert ? \",
|
|
\"description\": \"Votre plat préféré\",
|
|
\"creation_date\": \"2048-04-25T16:19:48+02:00\",
|
|
\"expiracy_date\": \"2048-04-25T16:19:48+02:00\",
|
|
\"kind\": \"text\",
|
|
\"allowed_answers\": [
|
|
\"yes\"
|
|
],
|
|
\"modification_policy\": \"nobody\",
|
|
\"mail_on_vote\": true,
|
|
\"choices\": [
|
|
{
|
|
\"id\": 1,
|
|
\"name\": \"fromage\"
|
|
},
|
|
{
|
|
\"id\": 2,
|
|
\"name\": \"dessert\"
|
|
}
|
|
],
|
|
\"default_expiracy_days_from_now\": 365
|
|
}"
|
|
]);
|
|
$response = $client->getResponse();
|
|
$this->assertEquals(403, $response->getStatusCode());
|
|
|
|
//Same request but with admin key
|
|
$client->request('PUT', '/api/v1/poll/1/5eb5ade73ec4f', [
|
|
'body' => "{
|
|
\"id\": 1,
|
|
\"title\": \"Fromage ou dessert ? \",
|
|
\"description\": \"Votre plat préféré\",
|
|
\"creation_date\": \"2048-04-25T16:19:48+02:00\",
|
|
\"expiracy_date\": \"2048-04-25T16:19:48+02:00\",
|
|
\"kind\": \"text\",
|
|
\"allowed_answers\": [
|
|
\"yes\"
|
|
],
|
|
\"modification_policy\": \"nobody\",
|
|
\"mail_on_vote\": true,
|
|
\"choices\": [
|
|
{
|
|
\"id\": 1,
|
|
\"name\": \"fromage\"
|
|
},
|
|
{
|
|
\"id\": 2,
|
|
\"name\": \"dessert\"
|
|
}
|
|
],
|
|
\"default_expiracy_days_from_now\": 365
|
|
}"
|
|
]);
|
|
|
|
$response = $client->getResponse();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
|
|
//Checking the result of modification
|
|
$client->request('GET', '/api/v1/poll/1');
|
|
|
|
$response = $client->getResponse();
|
|
$this->assertEquals(200, $response->getStatusCode());
|
|
$body = $response->getContent();
|
|
$json = json_decode($body, true);
|
|
$this->assertEquals("Fromage ou dessert ?", $json['poll']['title']);
|
|
|
|
}
|
|
|
|
// Test Post new poll
|
|
public function testPostOnePoll() {
|
|
//TODO
|
|
|
|
}
|
|
|
|
}
|