Fixed unit tests for newletter templates

- changed null to false for default value of id in nltemplates endpoint
This commit is contained in:
Jonathan Labreuille
2016-08-10 16:51:04 +02:00
parent 52da08abb2
commit 3d4defd563
2 changed files with 34 additions and 27 deletions

View File

@ -8,9 +8,8 @@ use MailPoet\Models\NewsletterTemplate;
if(!defined('ABSPATH')) exit; if(!defined('ABSPATH')) exit;
class NewsletterTemplates extends APIEndpoint { class NewsletterTemplates extends APIEndpoint {
function get($data = array()) { function get($data = array()) {
$id = (isset($data['id']) ? (int)$data['id'] : null); $id = (isset($data['id']) ? (int)$data['id'] : false);
$template = NewsletterTemplate::findOne($id); $template = NewsletterTemplate::findOne($id);
if($template === false) { if($template === false) {
return $this->errorResponse(array( return $this->errorResponse(array(
@ -46,7 +45,7 @@ class NewsletterTemplates extends APIEndpoint {
} }
function delete($data = array()) { function delete($data = array()) {
$id = (isset($data['id']) ? (int)$data['id'] : null); $id = (isset($data['id']) ? (int)$data['id'] : false);
$template = NewsletterTemplate::findOne($id); $template = NewsletterTemplate::findOne($id);
if($template === false) { if($template === false) {
return $this->errorResponse(array( return $this->errorResponse(array(
@ -54,7 +53,7 @@ class NewsletterTemplates extends APIEndpoint {
)); ));
} else { } else {
$template->delete(); $template->delete();
$this->successResponse(null); return $this->successResponse(null, array('count' => 1));
} }
} }
} }

View File

@ -1,4 +1,6 @@
<?php <?php
use \MailPoet\API\Response as APIResponse;
use \MailPoet\API\Error as APIError;
use \MailPoet\API\Endpoints\NewsletterTemplates; use \MailPoet\API\Endpoints\NewsletterTemplates;
use \MailPoet\Models\NewsletterTemplate; use \MailPoet\Models\NewsletterTemplate;
@ -22,29 +24,32 @@ class NewsletterTemplatesTest extends MailPoetTest {
$router = new NewsletterTemplates(); $router = new NewsletterTemplates();
$response = $router->get(/* missing id */); $response = $router->get(/* missing id */);
expect($response)->false(); expect($response->status)->equals(APIResponse::STATUS_NOT_FOUND);
expect($response->errors[0]['message'])
->equals('This template does not exist.');
$response = $router->get('not_an_id'); $response = $router->get(array('id' => 'not_an_id'));
expect($response)->false(); expect($response->status)->equals(APIResponse::STATUS_NOT_FOUND);
expect($response->errors[0]['message'])
->equals('This template does not exist.');
$response = $router->get($template->id()); $response = $router->get(array('id' => $template->id));
expect($response['name'])->equals('Template #1'); expect($response->status)->equals(APIResponse::STATUS_OK);
expect($response['body']['key1'])->equals('value1'); expect($response->data)->equals(
$template->asArray()
);
} }
function testItCanGetAllNewsletterTemplates() { function testItCanGetAllNewsletterTemplates() {
$templates = NewsletterTemplate::findArray(); $templates = array_map(function($template) {
return $template->asArray();
}, NewsletterTemplate::findMany());
$router = new NewsletterTemplates(); $router = new NewsletterTemplates();
$response = $router->getAll(); $response = $router->getAll();
expect($response)->count(2); expect($response->status)->equals(APIResponse::STATUS_OK);
expect($response->data)->equals($templates);
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() { function testItCanSaveANewsletterTemplate() {
@ -56,12 +61,10 @@ class NewsletterTemplatesTest extends MailPoetTest {
$router = new NewsletterTemplates(); $router = new NewsletterTemplates();
$response = $router->save($template_data); $response = $router->save($template_data);
expect($response)->true(); expect($response->status)->equals(APIResponse::STATUS_OK);
expect($response->data)->equals(
$template = NewsletterTemplate::where('name', 'Template #3')->findOne(); NewsletterTemplate::findOne($response->data['id'])->asArray()
expect($template->name)->equals('Template #3'); );
expect($template->description)->equals('My Third Template');
expect($template->body)->equals('{"key3": "value3"}');
} }
function testItCanDeleteANewsletterTemplate() { function testItCanDeleteANewsletterTemplate() {
@ -69,10 +72,15 @@ class NewsletterTemplatesTest extends MailPoetTest {
expect($template->deleted_at)->null(); expect($template->deleted_at)->null();
$router = new NewsletterTemplates(); $router = new NewsletterTemplates();
$response = $router->delete($template->id()); $response = $router->delete(/* missing id */);
expect($response)->true(); expect($response->status)->equals(APIResponse::STATUS_NOT_FOUND);
expect($response->errors[0]['message'])
->equals('This template does not exist.');
$deleted_template = NewsletterTemplate::findOne($template->id()); $response = $router->delete(array('id' => $template->id));
expect($response->status)->equals(APIResponse::STATUS_OK);
$deleted_template = NewsletterTemplate::findOne($template->id);
expect($deleted_template)->false(); expect($deleted_template)->false();
} }