Files
piratepoet/tests/unit/API/NewsletterTemplatesTest.php
Jonathan Labreuille 2e88d7cce0 Added API/Endpoint abstract class
- (re)Added Endpoints folder to both API and Router
- fixed syntax in namespaces
- xhr.responseJSON is returned to the fail()
- fixed Router endpoints (view in browser, cron,...)
2016-08-02 17:08:43 +02:00

82 lines
2.4 KiB
PHP

<?php
use \MailPoet\API\Endpoints\NewsletterTemplates;
use \MailPoet\Models\NewsletterTemplate;
class NewsletterTemplatesTest extends MailPoetTest {
function _before() {
NewsletterTemplate::createOrUpdate(array(
'name' => 'Template #1',
'description' => 'My First Template',
'body' => '{"key1": "value1"}'
));
NewsletterTemplate::createOrUpdate(array(
'name' => 'Template #2',
'description' => 'My Second Template',
'body' => '{"key2": "value2"}'
));
}
function testItCanGetANewsletterTemplate() {
$template = NewsletterTemplate::where('name', 'Template #1')->findOne();
$router = new NewsletterTemplates();
$response = $router->get(/* missing id */);
expect($response)->false();
$response = $router->get('not_an_id');
expect($response)->false();
$response = $router->get($template->id());
expect($response['name'])->equals('Template #1');
expect($response['body']['key1'])->equals('value1');
}
function testItCanGetAllNewsletterTemplates() {
$templates = NewsletterTemplate::findArray();
$router = new NewsletterTemplates();
$response = $router->getAll();
expect($response)->count(2);
expect($response[0]['name'])->equals('Template #1');
expect($response[0]['body']['key1'])->equals('value1');
expect($response[1]['name'])->equals('Template #2');
expect($response[1]['body']['key2'])->equals('value2');
}
function testItCanSaveANewsletterTemplate() {
$template_data = array(
'name' => 'Template #3',
'description' => 'My Third Template',
'body' => '{"key3": "value3"}'
);
$router = new NewsletterTemplates();
$response = $router->save($template_data);
expect($response)->true();
$template = NewsletterTemplate::where('name', 'Template #3')->findOne();
expect($template->name)->equals('Template #3');
expect($template->description)->equals('My Third Template');
expect($template->body)->equals('{"key3": "value3"}');
}
function testItCanDeleteANewsletterTemplate() {
$template = NewsletterTemplate::where('name', 'Template #2')->findOne();
expect($template->deleted_at)->null();
$router = new NewsletterTemplates();
$response = $router->delete($template->id());
expect($response)->true();
$deleted_template = NewsletterTemplate::findOne($template->id());
expect($deleted_template)->false();
}
function _after() {
NewsletterTemplate::deleteMany();
}
}