API models fully tested

This commit is contained in:
Matthew Ross 2016-05-02 20:13:43 -04:00
parent e58c48dad0
commit 678c6614d2
5 changed files with 72 additions and 21 deletions

View File

@ -1,6 +1,6 @@
<?php <?php
class UserOptions extends BaseModel { class UserOptions extends BaseModel {
public $id; public $id = 0;
public $new_tasks_at_bottom = true; public $new_tasks_at_bottom = true;
public $show_animations = true; public $show_animations = true;
public $show_assignee = true; public $show_assignee = true;
@ -30,7 +30,7 @@ class UserOptions extends BaseModel {
$this->loadPropertiesFrom($bean); $this->loadPropertiesFrom($bean);
} }
public function loadFromJson($obj) { public function loadFromJson($json) {
$obj = json_decode($json); $obj = json_decode($json);
if (!isset($obj->id) || $obj->id === 0) { if (!isset($obj->id) || $obj->id === 0) {

View File

@ -2,7 +2,7 @@
<html lang="en"> <html lang="en">
<head> <head>
<title>TaskBoard</title> <title>TaskBoard</title>
<base href=""> <base href="/web/TaskBoard/dist/">
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
@ -32,3 +32,4 @@
</div> </div>
</body> </body>
</html> </html>

48
test/api/ApiJsonTest.php Normal file
View File

@ -0,0 +1,48 @@
<?php
class ApiJsonTest extends PHPUnit_Framework_TestCase {
public function testCreateApiJson() {
$apiJson = new ApiJson();
$this->assertTrue($apiJson->status === 'failure');
$this->assertArraySubset($apiJson->data, []);
$this->assertArraySubset($apiJson->alerts, []);
}
public function testSetSuccess() {
$apiJson = new ApiJson();
$this->assertTrue($apiJson->status === 'failure');
$apiJson->setSuccess();
$this->assertTrue($apiJson->status === 'success');
}
public function testSetFailure() {
$apiJson = new ApiJson();
$apiJson->setSuccess();
$this->assertTrue($apiJson->status === 'success');
$apiJson->setFailure();
$this->assertTrue($apiJson->status === 'failure');
}
public function testAddData() {
$apiJson = new ApiJson();
$obj = new stdClass();
$obj->id = 1;
$apiJson->addData($obj);
$this->assertArraySubset($apiJson->data, [$obj]);
}
public function testAddAlert() {
$apiJson = new ApiJson();
$alert = new stdClass();
$alert->type = 'success';
$alert->text = 'Test message.';
$this->assertArraySubset($apiJson->alerts, [$alert]);
}
}

View File

@ -20,7 +20,7 @@ class UserOptionsTest extends PHPUnit_Framework_TestCase {
$options = DataMock::getUserOptions(); $options = DataMock::getUserOptions();
$this->json = json_encode($options); $this->json = json_encode($options);
$this->bean = $user; $this->bean = $options;
} }
public function testCreateUserOptions() { public function testCreateUserOptions() {
@ -52,27 +52,29 @@ class UserOptionsTest extends PHPUnit_Framework_TestCase {
$options->updateBean(); $options->updateBean();
$bean = $options->getBean(); $bean = $options->getBean();
$this->assertTrue($bean->id === $user->id); $this->assertTrue($bean->id === $options->id);
$this->assertTrue($bean->new_tasks_at_bottom === $user->new_tasks_at_bottom); $this->assertTrue((bool) $bean->new_tasks_at_bottom ===
$this->assertTrue($bean->show_animations === $user->show_animations); $options->new_tasks_at_bottom);
$this->assertTrue($bean->show_assignee === $user->show_assignee); $this->assertTrue((bool) $bean->show_animations === $options->show_animations);
$this->assertTrue($bean->multiple_tasks_per_row === $user->multiple_tasks_per_row); $this->assertTrue((bool) $bean->show_assignee === $options->show_assignee);
$this->assertTrue((bool) $bean->multiple_tasks_per_row ===
$options->multiple_tasks_per_row);
} }
private function assertDefaultProperties($user) { private function assertDefaultProperties($options) {
$this->assertTrue($user->id === 0); $this->assertTrue($options->id === 0);
$this->assertTrue($user->security_level == SecurityLevel::User); $this->assertTrue($options->new_tasks_at_bottom === true);
$this->assertTrue($user->username === ''); $this->assertTrue($options->show_animations === true);
$this->assertTrue($user->salt === ''); $this->assertTrue($options->show_assignee === true);
$this->assertTrue($user->password_hash === ''); $this->assertTrue($options->multiple_tasks_per_row === false);
} }
private function assertMockProperties($user) { private function assertMockProperties($options) {
$this->assertTrue($user->id === 1); $this->assertTrue($options->id === 1);
$this->assertTrue($user->salt === 'salty1234'); $this->assertTrue($options->new_tasks_at_bottom === false);
$this->assertTrue($user->password_hash === 'hashpass1234'); $this->assertTrue($options->show_animations === false);
$this->assertTrue($user->email === 'user@example.com'); $this->assertTrue($options->show_assignee === false);
$this->assertTrue($user->default_board_id === 1); $this->assertTrue($options->multiple_tasks_per_row === true);
} }
} }

BIN
tests.db

Binary file not shown.